diff options
| -rw-r--r-- | drivers/input/serio/ct82c710.c | 3 | ||||
| -rw-r--r-- | drivers/input/serio/i8042.c | 9 | ||||
| -rw-r--r-- | drivers/input/serio/parkbd.c | 6 | ||||
| -rw-r--r-- | drivers/input/serio/rpckbd.c | 3 | ||||
| -rw-r--r-- | drivers/input/serio/serport.c | 3 | ||||
| -rw-r--r-- | include/linux/serio.h | 9 |
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 |
