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
Kirill Smelkov
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