Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
cb4169bc
Commit
cb4169bc
authored
May 13, 2003
by
Russell King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] Update a variety of ARM drivers to use irqreturn_t.
parent
d2480494
Changes
20
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
113 additions
and
48 deletions
+113
-48
arch/arm/kernel/irq.c
arch/arm/kernel/irq.c
+21
-2
arch/arm/mach-footbridge/dc21285.c
arch/arm/mach-footbridge/dc21285.c
+15
-5
arch/arm/mach-rpc/dma.c
arch/arm/mach-rpc/dma.c
+4
-2
drivers/acorn/net/ether1.c
drivers/acorn/net/ether1.c
+5
-3
drivers/acorn/net/ether3.c
drivers/acorn/net/ether3.c
+6
-3
drivers/acorn/scsi/acornscsi.c
drivers/acorn/scsi/acornscsi.c
+3
-7
drivers/acorn/scsi/cumana_2.c
drivers/acorn/scsi/cumana_2.c
+2
-2
drivers/acorn/scsi/eesox.c
drivers/acorn/scsi/eesox.c
+2
-2
drivers/acorn/scsi/fas216.c
drivers/acorn/scsi/fas216.c
+4
-1
drivers/acorn/scsi/fas216.h
drivers/acorn/scsi/fas216.h
+2
-2
drivers/acorn/scsi/powertec.c
drivers/acorn/scsi/powertec.c
+2
-2
drivers/char/nwbutton.c
drivers/char/nwbutton.c
+3
-1
drivers/input/mouse/rpcmouse.c
drivers/input/mouse/rpcmouse.c
+3
-1
drivers/input/serio/ambakmi.c
drivers/input/serio/ambakmi.c
+5
-1
drivers/input/serio/rpckbd.c
drivers/input/serio/rpckbd.c
+6
-2
drivers/input/serio/sa1111ps2.c
drivers/input/serio/sa1111ps2.c
+9
-2
drivers/pcmcia/sa11xx_core.c
drivers/pcmcia/sa11xx_core.c
+3
-2
drivers/serial/21285.c
drivers/serial/21285.c
+11
-5
drivers/serial/amba.c
drivers/serial/amba.c
+3
-1
drivers/serial/sa1100.c
drivers/serial/sa1100.c
+4
-2
No files found.
arch/arm/kernel/irq.c
View file @
cb4169bc
...
...
@@ -58,6 +58,11 @@ void dummy_mask_unmask_irq(unsigned int irq)
{
}
irqreturn_t
no_action
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
return
IRQ_NONE
;
}
void
do_bad_IRQ
(
unsigned
int
irq
,
struct
irqdesc
*
desc
,
struct
pt_regs
*
regs
)
{
irq_err_count
+=
1
;
...
...
@@ -222,6 +227,7 @@ static void
__do_irq
(
unsigned
int
irq
,
struct
irqaction
*
action
,
struct
pt_regs
*
regs
)
{
unsigned
int
status
;
int
retval
=
0
;
spin_unlock
(
&
irq_controller_lock
);
...
...
@@ -231,7 +237,7 @@ __do_irq(unsigned int irq, struct irqaction *action, struct pt_regs *regs)
status
=
0
;
do
{
status
|=
action
->
flags
;
action
->
handler
(
irq
,
action
->
dev_id
,
regs
);
retval
|=
action
->
handler
(
irq
,
action
->
dev_id
,
regs
);
action
=
action
->
next
;
}
while
(
action
);
...
...
@@ -239,6 +245,19 @@ __do_irq(unsigned int irq, struct irqaction *action, struct pt_regs *regs)
add_interrupt_randomness
(
irq
);
spin_lock_irq
(
&
irq_controller_lock
);
if
(
retval
!=
1
)
{
static
int
count
=
100
;
if
(
count
)
{
count
--
;
if
(
retval
)
{
printk
(
"irq event %d: bogus retval mask %x
\n
"
,
irq
,
retval
);
}
else
{
printk
(
"irq %d: nobody cared
\n
"
,
irq
);
}
}
}
}
/*
...
...
@@ -606,7 +625,7 @@ int setup_irq(unsigned int irq, struct irqaction *new)
* SA_SAMPLE_RANDOM The interrupt can be used for entropy
*
*/
int
request_irq
(
unsigned
int
irq
,
void
(
*
handler
)(
int
,
void
*
,
struct
pt_regs
*
),
int
request_irq
(
unsigned
int
irq
,
irqreturn_t
(
*
handler
)(
int
,
void
*
,
struct
pt_regs
*
),
unsigned
long
irq_flags
,
const
char
*
devname
,
void
*
dev_id
)
{
unsigned
long
retval
;
...
...
arch/arm/mach-footbridge/dc21285.c
View file @
cb4169bc
...
...
@@ -154,7 +154,7 @@ static void dc21285_enable_error(unsigned long __data)
/*
* Warn on PCI errors.
*/
static
void
dc21285_abort_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
dc21285_abort_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
unsigned
int
cmd
;
unsigned
int
status
;
...
...
@@ -180,9 +180,11 @@ static void dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs)
}
*
CSR_PCICMD
=
cmd
;
return
IRQ_HANDLED
;
}
static
void
dc21285_serr_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
dc21285_serr_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
timer_list
*
timer
=
dev_id
;
unsigned
int
cntl
;
...
...
@@ -200,15 +202,19 @@ static void dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
disable_irq
(
irq
);
timer
->
expires
=
jiffies
+
HZ
;
add_timer
(
timer
);
return
IRQ_HANDLED
;
}
static
void
dc21285_discard_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
dc21285_discard_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
printk
(
KERN_DEBUG
"PCI: discard timer expired
\n
"
);
*
CSR_SA110_CNTL
&=
0xffffde07
;
return
IRQ_HANDLED
;
}
static
void
dc21285_dparity_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
dc21285_dparity_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
unsigned
int
cmd
;
...
...
@@ -218,9 +224,11 @@ static void dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *regs)
cmd
=
*
CSR_PCICMD
&
0xffff
;
*
CSR_PCICMD
=
cmd
|
1
<<
24
;
return
IRQ_HANDLED
;
}
static
void
dc21285_parity_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
dc21285_parity_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
timer_list
*
timer
=
dev_id
;
unsigned
int
cmd
;
...
...
@@ -238,6 +246,8 @@ static void dc21285_parity_irq(int irq, void *dev_id, struct pt_regs *regs)
disable_irq
(
irq
);
timer
->
expires
=
jiffies
+
HZ
;
add_timer
(
timer
);
return
IRQ_HANDLED
;
}
int
__init
dc21285_setup
(
int
nr
,
struct
pci_sys_data
*
sys
)
...
...
arch/arm/mach-rpc/dma.c
View file @
cb4169bc
...
...
@@ -83,7 +83,7 @@ static void iomd_get_next_sg(struct scatterlist *sg, dma_t *dma)
sg
->
length
|=
flags
;
}
static
void
iomd_dma_handle
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
iomd_dma_handle
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
dma_t
*
dma
=
(
dma_t
*
)
dev_id
;
unsigned
long
base
=
dma
->
dma_base
;
...
...
@@ -93,7 +93,7 @@ static void iomd_dma_handle(int irq, void *dev_id, struct pt_regs *regs)
status
=
iomd_readb
(
base
+
ST
);
if
(
!
(
status
&
DMA_ST_INT
))
return
;
return
IRQ_HANDLED
;
if
(
status
&
DMA_ST_OFL
&&
!
dma
->
sg
)
break
;
...
...
@@ -117,6 +117,8 @@ static void iomd_dma_handle(int irq, void *dev_id, struct pt_regs *regs)
iomd_writeb
(
0
,
dma
->
dma_base
+
CR
);
disable_irq
(
irq
);
return
IRQ_HANDLED
;
}
static
int
iomd_request_dma
(
dmach_t
channel
,
dma_t
*
dma
)
...
...
drivers/acorn/net/ether1.c
View file @
cb4169bc
...
...
@@ -68,7 +68,7 @@ static unsigned int net_debug = NET_DEBUG;
static
int
ether1_open
(
struct
net_device
*
dev
);
static
int
ether1_sendpacket
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
);
static
void
ether1_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
static
irqreturn_t
ether1_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
static
int
ether1_close
(
struct
net_device
*
dev
);
static
struct
net_device_stats
*
ether1_getstats
(
struct
net_device
*
dev
);
static
void
ether1_setmulticastlist
(
struct
net_device
*
dev
);
...
...
@@ -908,7 +908,7 @@ ether1_recv_done (struct net_device *dev)
}
while
(
1
);
}
static
void
static
irqreturn_t
ether1_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
...
...
@@ -954,6 +954,8 @@ ether1_interrupt (int irq, void *dev_id, struct pt_regs *regs)
}
}
else
outb
(
CTRL_ACK
,
REG_CONTROL
);
return
IRQ_HANDLED
;
}
static
int
...
...
drivers/acorn/net/ether3.c
View file @
cb4169bc
...
...
@@ -82,7 +82,7 @@ static int ether3_rx(struct net_device *dev, struct dev_priv *priv, unsigned int
static
void
ether3_tx
(
struct
net_device
*
dev
,
struct
dev_priv
*
priv
);
static
int
ether3_open
(
struct
net_device
*
dev
);
static
int
ether3_sendpacket
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
);
static
void
ether3_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
static
irqreturn_t
ether3_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
static
int
ether3_close
(
struct
net_device
*
dev
);
static
struct
net_device_stats
*
ether3_getstats
(
struct
net_device
*
dev
);
static
void
ether3_setmulticastlist
(
struct
net_device
*
dev
);
...
...
@@ -576,12 +576,12 @@ ether3_sendpacket(struct sk_buff *skb, struct net_device *dev)
return
0
;
}
static
void
static
irqreturn_t
ether3_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
struct
dev_priv
*
priv
;
unsigned
int
status
;
unsigned
int
status
,
handled
=
IRQ_NONE
;
#if NET_DEBUG > 1
if
(
net_debug
&
DEBUG_INT
)
...
...
@@ -595,17 +595,20 @@ ether3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
if
(
status
&
STAT_INTRX
)
{
ether3_outw
(
CMD_ACKINTRX
|
priv
->
regs
.
command
,
REG_COMMAND
);
ether3_rx
(
dev
,
priv
,
12
);
handled
=
IRQ_HANDLED
;
}
if
(
status
&
STAT_INTTX
)
{
ether3_outw
(
CMD_ACKINTTX
|
priv
->
regs
.
command
,
REG_COMMAND
);
ether3_tx
(
dev
,
priv
);
handled
=
IRQ_HANDLED
;
}
#if NET_DEBUG > 1
if
(
net_debug
&
DEBUG_INT
)
printk
(
"done
\n
"
);
#endif
return
handled
;
}
/*
...
...
drivers/acorn/scsi/acornscsi.c
View file @
cb4169bc
...
...
@@ -2466,18 +2466,14 @@ intr_ret_t acornscsi_sbicintr(AS_Host *host, int in_irq)
* dev_id - device specific data (AS_Host structure)
* regs - processor registers when interrupt occurred
*/
static
void
acornscsi_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
acornscsi_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
AS_Host
*
host
=
(
AS_Host
*
)
dev_id
;
intr_ret_t
ret
;
int
iostatus
;
int
in_irq
=
0
;
if
(
host
->
scsi
.
interrupt
)
printk
(
"scsi%d: interrupt re-entered
\n
"
,
host
->
host
->
host_no
);
host
->
scsi
.
interrupt
=
1
;
do
{
ret
=
INTR_IDLE
;
...
...
@@ -2505,7 +2501,7 @@ void acornscsi_intr(int irq, void *dev_id, struct pt_regs *regs)
in_irq
=
1
;
}
while
(
ret
!=
INTR_IDLE
);
host
->
scsi
.
interrupt
=
0
;
return
IRQ_HANDLED
;
}
/*=============================================================================================
...
...
drivers/acorn/scsi/cumana_2.c
View file @
cb4169bc
...
...
@@ -141,12 +141,12 @@ cumanascsi_2_terminator_ctl(struct Scsi_Host *host, int on_off)
* dev_id - user-defined (Scsi_Host structure)
* regs - processor registers at interrupt
*/
static
void
static
irqreturn_t
cumanascsi_2_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
cumanascsi2_info
*
info
=
dev_id
;
fas216_intr
(
&
info
->
info
);
return
fas216_intr
(
&
info
->
info
);
}
/* Prototype: fasdmatype_t cumanascsi_2_dma_setup(host, SCpnt, direction, min_type)
...
...
drivers/acorn/scsi/eesox.c
View file @
cb4169bc
...
...
@@ -141,12 +141,12 @@ eesoxscsi_terminator_ctl(struct Scsi_Host *host, int on_off)
* dev_id - user-defined (Scsi_Host structure)
* regs - processor registers at interrupt
*/
static
void
static
irqreturn_t
eesoxscsi_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
eesoxscsi_info
*
info
=
dev_id
;
fas216_intr
(
&
info
->
info
);
return
fas216_intr
(
&
info
->
info
);
}
/* Prototype: fasdmatype_t eesoxscsi_dma_setup(host, SCpnt, direction, min_type)
...
...
drivers/acorn/scsi/fas216.c
View file @
cb4169bc
...
...
@@ -1824,9 +1824,10 @@ static void fas216_bus_reset(FAS216_Info *info)
*
* Handle interrupts from the interface to progress a command
*/
void
fas216_intr
(
FAS216_Info
*
info
)
irqreturn_t
fas216_intr
(
FAS216_Info
*
info
)
{
unsigned
char
isr
,
ssr
,
stat
;
int
handled
=
IRQ_NONE
;
fas216_checkmagic
(
info
);
...
...
@@ -1857,7 +1858,9 @@ void fas216_intr(FAS216_Info *info)
fas216_log
(
info
,
0
,
"unknown interrupt received:"
" phase %s isr %02X ssr %02X stat %02X"
,
fas216_drv_phase
(
info
),
isr
,
ssr
,
stat
);
handled
=
IRQ_HANDLED
;
}
return
handled
;
}
static
void
__fas216_start_command
(
FAS216_Info
*
info
,
Scsi_Cmnd
*
SCpnt
)
...
...
drivers/acorn/scsi/fas216.h
View file @
cb4169bc
...
...
@@ -351,11 +351,11 @@ extern int fas216_queue_command (Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
*/
extern
int
fas216_command
(
Scsi_Cmnd
*
);
/* Function:
void
fas216_intr (FAS216_Info *info)
/* Function:
irqreturn_t
fas216_intr (FAS216_Info *info)
* Purpose : handle interrupts from the interface to progress a command
* Params : info - interface to service
*/
extern
void
fas216_intr
(
FAS216_Info
*
info
);
extern
irqreturn_t
fas216_intr
(
FAS216_Info
*
info
);
extern
void
fas216_remove
(
struct
Scsi_Host
*
instance
);
...
...
drivers/acorn/scsi/powertec.c
View file @
cb4169bc
...
...
@@ -113,12 +113,12 @@ powertecscsi_terminator_ctl(struct Scsi_Host *host, int on_off)
* dev_id - user-defined (Scsi_Host structure)
* regs - processor registers at interrupt
*/
static
void
static
irqreturn_t
powertecscsi_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
powertec_info
*
info
=
dev_id
;
fas216_intr
(
&
info
->
info
);
return
fas216_intr
(
&
info
->
info
);
}
/* Prototype: fasdmatype_t powertecscsi_dma_setup(host, SCpnt, direction, min_type)
...
...
drivers/char/nwbutton.c
View file @
cb4169bc
...
...
@@ -146,7 +146,7 @@ static void button_sequence_finished (unsigned long parameters)
* increments the counter.
*/
static
void
button_handler
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
button_handler
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
if
(
button_press_count
)
{
del_timer
(
&
button_timer
);
...
...
@@ -156,6 +156,8 @@ static void button_handler (int irq, void *dev_id, struct pt_regs *regs)
button_timer
.
function
=
button_sequence_finished
;
button_timer
.
expires
=
(
jiffies
+
bdelay
);
add_timer
(
&
button_timer
);
return
IRQ_HANDLED
;
}
/*
...
...
drivers/input/mouse/rpcmouse.c
View file @
cb4169bc
...
...
@@ -49,7 +49,7 @@ static struct input_dev rpcmouse_dev = {
},
};
static
void
rpcmouse_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
rpcmouse_irq
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
input_dev
*
dev
=
dev_id
;
short
x
,
y
,
dx
,
dy
,
b
;
...
...
@@ -74,6 +74,8 @@ static void rpcmouse_irq(int irq, void *dev_id, struct pt_regs *regs)
input_report_key
(
dev
,
BTN_RIGHT
,
b
&
0x10
);
input_sync
(
dev
);
return
IRQ_HANDLED
;
}
static
int
__init
rpcmouse_init
(
void
)
...
...
drivers/input/serio/ambakmi.c
View file @
cb4169bc
...
...
@@ -35,15 +35,19 @@ struct amba_kmi_port {
char
phys
[
16
];
};
static
void
amba_kmi_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
amba_kmi_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
amba_kmi_port
*
kmi
=
dev_id
;
unsigned
int
status
=
__raw_readb
(
KMIIR
);
int
handled
=
IRQ_NONE
;
while
(
status
&
KMIIR_RXINTR
)
{
serio_interrupt
(
&
kmi
->
io
,
__raw_readb
(
KMIDATA
),
0
,
regs
);
status
=
__raw_readb
(
KMIIR
);
handled
=
IRQ_HANDLED
;
}
return
handled
;
}
static
int
amba_kmi_write
(
struct
serio
*
io
,
unsigned
char
val
)
...
...
drivers/input/serio/rpckbd.c
View file @
cb4169bc
...
...
@@ -54,20 +54,24 @@ static int rpckbd_write(struct serio *port, unsigned char val)
return
0
;
}
static
void
rpckbd_rx
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
rpckbd_rx
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
serio
*
port
=
dev_id
;
unsigned
int
byte
;
int
handled
=
IRQ_NONE
;
while
(
iomd_readb
(
IOMD_KCTRL
)
&
(
1
<<
5
))
{
byte
=
iomd_readb
(
IOMD_KARTRX
);
serio_interrupt
(
port
,
byte
,
0
,
regs
);
handled
=
IRQ_HANDLED
;
}
return
handled
;
}
static
void
rpckbd_tx
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
rpckbd_tx
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
return
IRQ_HANDLED
;
}
static
int
rpckbd_open
(
struct
serio
*
port
)
...
...
drivers/input/serio/sa1111ps2.c
View file @
cb4169bc
...
...
@@ -41,10 +41,11 @@ struct ps2if {
* at the most one, but we loop for safety. If there was a
* framing error, we have to manually clear the status.
*/
static
void
ps2_rxint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
ps2_rxint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
ps2if
*
ps2if
=
dev_id
;
unsigned
int
scancode
,
flag
,
status
;
int
handled
=
IRQ_NONE
;
status
=
sa1111_readl
(
ps2if
->
base
+
SA1111_PS2STAT
);
while
(
status
&
PS2STAT_RXF
)
{
...
...
@@ -62,13 +63,17 @@ static void ps2_rxint(int irq, void *dev_id, struct pt_regs *regs)
serio_interrupt
(
&
ps2if
->
io
,
scancode
,
flag
,
regs
);
status
=
sa1111_readl
(
ps2if
->
base
+
SA1111_PS2STAT
);
handled
=
IRQ_HANDLED
;
}
return
handled
;
}
/*
* Completion of ps2 write
*/
static
void
ps2_txint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
ps2_txint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
ps2if
*
ps2if
=
dev_id
;
unsigned
int
status
;
...
...
@@ -83,6 +88,8 @@ static void ps2_txint(int irq, void *dev_id, struct pt_regs *regs)
ps2if
->
tail
=
(
ps2if
->
tail
+
1
)
&
(
sizeof
(
ps2if
->
buf
)
-
1
);
}
spin_unlock
(
&
ps2if
->
lock
);
return
IRQ_HANDLED
;
}
/*
...
...
drivers/pcmcia/sa11xx_core.c
View file @
cb4169bc
...
...
@@ -120,7 +120,6 @@ sa1100_pcmcia_set_mecr(struct sa1100_pcmcia_socket *skt, unsigned int cpu_clock)
unsigned
long
flags
;
unsigned
short
speed
;
unsigned
int
bs_io
,
bs_mem
,
bs_attr
;
int
i
;
speed
=
calc_speed
(
skt
->
spd_io
,
MAX_IO_WIN
,
SA1100_PCMCIA_IO_ACCESS
);
bs_io
=
skt
->
ops
->
socket_get_timing
(
skt
,
cpu_clock
,
speed
);
...
...
@@ -324,13 +323,15 @@ static void sa1100_pcmcia_poll_event(unsigned long dummy)
* handling code performs scheduling operations which cannot be
* executed from within an interrupt context.
*/
static
void
sa1100_pcmcia_interrupt
(
int
irq
,
void
*
dev
,
struct
pt_regs
*
regs
)
static
irqreturn_t
sa1100_pcmcia_interrupt
(
int
irq
,
void
*
dev
,
struct
pt_regs
*
regs
)
{
struct
sa1100_pcmcia_socket
*
skt
=
dev
;
DEBUG
(
3
,
"%s(): servicing IRQ %d
\n
"
,
__FUNCTION__
,
irq
);
schedule_work
(
&
skt
->
work
);
return
IRQ_HANDLED
;
}
/* sa1100_pcmcia_register_callback()
...
...
drivers/serial/21285.c
View file @
cb4169bc
...
...
@@ -85,7 +85,7 @@ static void serial21285_enable_ms(struct uart_port *port)
{
}
static
void
serial21285_rx_chars
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
serial21285_rx_chars
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
uart_port
*
port
=
dev_id
;
struct
tty_struct
*
tty
=
port
->
info
->
tty
;
...
...
@@ -97,7 +97,7 @@ static void serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
tty
->
flip
.
work
.
func
((
void
*
)
tty
);
if
(
tty
->
flip
.
count
>=
TTY_FLIPBUF_SIZE
)
{
printk
(
KERN_WARNING
"TTY_DONT_FLIP set
\n
"
);
return
;
goto
out
;
}
}
...
...
@@ -143,9 +143,12 @@ static void serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
status
=
*
CSR_UARTFLG
;
}
tty_flip_buffer_push
(
tty
);
out:
return
IRQ_HANDLED
;
}
static
void
serial21285_tx_chars
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
serial21285_tx_chars
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
uart_port
*
port
=
dev_id
;
struct
circ_buf
*
xmit
=
&
port
->
info
->
xmit
;
...
...
@@ -155,11 +158,11 @@ static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
*
CSR_UARTDR
=
port
->
x_char
;
port
->
icount
.
tx
++
;
port
->
x_char
=
0
;
return
;
goto
out
;
}
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
port
))
{
serial21285_stop_tx
(
port
,
0
);
return
;
goto
out
;
}
do
{
...
...
@@ -175,6 +178,9 @@ static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
if
(
uart_circ_empty
(
xmit
))
serial21285_stop_tx
(
port
,
0
);
out:
return
IRQ_HANDLED
;
}
static
unsigned
int
serial21285_tx_empty
(
struct
uart_port
*
port
)
...
...
drivers/serial/amba.c
View file @
cb4169bc
...
...
@@ -278,7 +278,7 @@ static void ambauart_modem_status(struct uart_port *port)
wake_up_interruptible
(
&
uap
->
port
.
info
->
delta_msr_wait
);
}
static
void
ambauart_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
ambauart_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
uart_port
*
port
=
dev_id
;
unsigned
int
status
,
pass_counter
=
AMBA_ISR_PASS_LIMIT
;
...
...
@@ -302,6 +302,8 @@ static void ambauart_int(int irq, void *dev_id, struct pt_regs *regs)
status
=
UART_GET_INT_STATUS
(
port
);
}
while
(
status
&
(
AMBA_UARTIIR_RTIS
|
AMBA_UARTIIR_RIS
|
AMBA_UARTIIR_TIS
));
return
IRQ_HANDLED
;
}
static
unsigned
int
ambauart_tx_empty
(
struct
uart_port
*
port
)
...
...
drivers/serial/sa1100.c
View file @
cb4169bc
...
...
@@ -312,7 +312,7 @@ static void sa1100_tx_chars(struct sa1100_port *sport)
sa1100_stop_tx
(
&
sport
->
port
,
0
);
}
static
void
sa1100_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
sa1100_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
sa1100_port
*
sport
=
dev_id
;
unsigned
int
status
,
pass_counter
=
0
;
...
...
@@ -347,6 +347,8 @@ static void sa1100_int(int irq, void *dev_id, struct pt_regs *regs)
~
UTSR0_TFS
;
}
while
(
status
&
(
UTSR0_TFS
|
UTSR0_RFS
|
UTSR0_RID
));
spin_unlock
(
&
sport
->
port
.
lock
);
return
IRQ_HANDLED
;
}
/*
...
...
@@ -830,7 +832,7 @@ static struct console sa1100_console = {
.
setup
=
sa1100_console_setup
,
.
flags
=
CON_PRINTBUFFER
,
.
index
=
-
1
,
.
data
=
sa1100_reg
,
.
data
=
&
sa1100_reg
,
};
static
int
__init
sa1100_rs_console_init
(
void
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment