diff options
| author | Geert Uytterhoeven <geert@linux-m68k.org> | 2003-01-15 16:11:12 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-01-15 16:11:12 -0800 |
| commit | d1a7e90385288d140574bd01e89e0611e2099df5 (patch) | |
| tree | 98f18cc25525eebdcaec98d5980f7dcc0c3dcbb3 /drivers/input | |
| parent | d1143c126f3e7f195e372f9afadcf60911c1cdde (diff) | |
[PATCH] Q40/Q60 keyboard fixes
Q40/Q60 keyboard fixes:
- IRQ definitions were prepended with Q40_
- <asm/keyboard.h> no longer exists
- Let q40kbd_init() fails if not running on a Q40/Q60
- q40kbd_init() must return an error code
- Make q40kbd_{init,exit}() static
Diffstat (limited to 'drivers/input')
| -rw-r--r-- | drivers/input/serio/q40kbd.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/input/serio/q40kbd.c b/drivers/input/serio/q40kbd.c index ad69eedf557e..a2312e0265b2 100644 --- a/drivers/input/serio/q40kbd.c +++ b/drivers/input/serio/q40kbd.c @@ -36,7 +36,6 @@ #include <linux/serio.h> #include <linux/interrupt.h> -#include <asm/keyboard.h> #include <asm/bitops.h> #include <asm/io.h> #include <asm/uaccess.h> @@ -69,33 +68,38 @@ static struct serio q40kbd_port = static void q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - if (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)) + if (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)) if (q40kbd_port.dev) q40kbd_port.dev->interrupt(&q40kbd_port, master_inb(KEYCODE_REG), 0); master_outb(-1, KEYBOARD_UNLOCK_REG); } -void __init q40kbd_init(void) +static int __init q40kbd_init(void) { int maxread = 100; + if (!MACH_IS_Q40) + return -EIO; + /* allocate the IRQ */ request_irq(Q40_IRQ_KEYBOARD, q40kbd_interrupt, 0, "q40kbd", NULL); /* flush any pending input */ - while (maxread-- && (IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))) + while (maxread-- && (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))) master_inb(KEYCODE_REG); - + /* off we go */ master_outb(-1,KEYBOARD_UNLOCK_REG); master_outb(1,KEY_IRQ_ENABLE_REG); serio_register_port(&q40kbd_port); printk(KERN_INFO "serio: Q40 kbd registered\n"); + + return 0; } -void __exit q40kbd_exit(void) +static void __exit q40kbd_exit(void) { master_outb(0,KEY_IRQ_ENABLE_REG); master_outb(-1,KEYBOARD_UNLOCK_REG); |
