summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/input/serio/ct82c710.c3
-rw-r--r--drivers/input/serio/i8042.c9
-rw-r--r--drivers/input/serio/parkbd.c6
-rw-r--r--drivers/input/serio/rpckbd.c3
-rw-r--r--drivers/input/serio/serport.c3
-rw-r--r--include/linux/serio.h9
6 files changed, 16 insertions, 17 deletions
diff --git a/drivers/input/serio/ct82c710.c b/drivers/input/serio/ct82c710.c
index 8202a64606bb..7bb79a2ee2ea 100644
--- a/drivers/input/serio/ct82c710.c
+++ b/drivers/input/serio/ct82c710.c
@@ -156,8 +156,7 @@ static struct serio ct82c710_port =
static void ct82c710_interrupt(int cpl, void *dev_id, struct pt_regs * regs)
{
- if (ct82c710_port.dev)
- ct82c710_port.dev->interrupt(&ct82c710_port, inb(ct82c710_data), 0);
+ serio_interrupt(&ct82c710_port, inb(ct82c710_data), 0);
}
/*
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index 5e222b2f2e31..a508b6a02619 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -387,14 +387,13 @@ static void i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs)
#endif
if (i8042_aux_values.exists && (str & I8042_STR_AUXDATA)) {
- if (i8042_aux_port.dev)
- i8042_aux_port.dev->interrupt(&i8042_aux_port, data, 0);
+ serio_interrupt(&i8042_aux_port, data, 0);
} else {
- if (i8042_kbd_values.exists && i8042_kbd_port.dev) {
+ if (i8042_kbd_values.exists) {
if (!i8042_direct) {
if (data > 0x7f) {
if (test_and_clear_bit(data & 0x7f, i8042_unxlate_seen)) {
- i8042_kbd_port.dev->interrupt(&i8042_kbd_port, 0xf0, 0);
+ serio_interrupt(&i8042_kbd_port, 0xf0, 0);
data = i8042_unxlate_table[data & 0x7f];
}
} else {
@@ -402,7 +401,7 @@ static void i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs)
data = i8042_unxlate_table[data];
}
}
- i8042_kbd_port.dev->interrupt(&i8042_kbd_port, data, 0);
+ serio_interrupt(&i8042_kbd_port, data, 0);
}
}
}
diff --git a/drivers/input/serio/parkbd.c b/drivers/input/serio/parkbd.c
index 18e8c51256f4..d957f5a056e0 100644
--- a/drivers/input/serio/parkbd.c
+++ b/drivers/input/serio/parkbd.c
@@ -135,10 +135,8 @@ static void parkbd_interrupt(int irq, void *dev_id, struct pt_regs *regs)
parkbd_buffer |= (parkbd_readlines() >> 1) << parkbd_counter++;
- if (parkbd_counter == parkbd_mode + 10) {
- if (parkbd_port.dev)
- parkbd_port.dev->interrupt(&parkbd_port, (parkbd_buffer >> (2 - parkbd_mode)) & 0xff, 0);
- }
+ if (parkbd_counter == parkbd_mode + 10)
+ serio_interrupt(&parkbd_port, (parkbd_buffer >> (2 - parkbd_mode)) & 0xff, 0);
}
parkbd_last = jiffies;
diff --git a/drivers/input/serio/rpckbd.c b/drivers/input/serio/rpckbd.c
index a90879b13047..c5a3dc1fc3d4 100644
--- a/drivers/input/serio/rpckbd.c
+++ b/drivers/input/serio/rpckbd.c
@@ -64,8 +64,7 @@ static void rpckbd_rx(int irq, void *dev_id, struct pt_regs *regs)
kbd_pt_regs = regs;
while (inb(IOMD_KCTRL) & (1 << 5))
- if (rpckbd_port.dev)
- rpckbd_port.dev->interrupt(&rpckbd_port, inb(IOMD_KARTRX), 0);
+ serio_interrupt(&rpckbd_port, inb(IOMD_KARTRX), 0);
}
diff --git a/drivers/input/serio/serport.c b/drivers/input/serio/serport.c
index 9970ca228e0c..4885a822a270 100644
--- a/drivers/input/serio/serport.c
+++ b/drivers/input/serio/serport.c
@@ -138,8 +138,7 @@ static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *c
struct serport *serport = (struct serport*) tty->disc_data;
int i;
for (i = 0; i < count; i++)
- if (serport->serio.dev)
- serport->serio.dev->interrupt(&serport->serio, cp[i], 0);
+ serio_interrupt(&serport->serio, cp[i], 0);
}
/*
diff --git a/include/linux/serio.h b/include/linux/serio.h
index fd5235309265..1e9de401018f 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -89,9 +89,14 @@ static __inline__ int serio_write(struct serio *serio, unsigned char data)
static __inline__ void serio_dev_write_wakeup(struct serio *serio)
{
- if (serio->dev && serio->dev->write_wakeup) {
+ if (serio->dev && serio->dev->write_wakeup)
serio->dev->write_wakeup(serio);
- }
+}
+
+static __inline__ void serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags)
+{
+ if (serio->dev && serio->dev->interrupt)
+ serio->dev->interrupt(serio, data, flags);
}
#define SERIO_TIMEOUT 1