summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2003-01-15 16:11:12 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-01-15 16:11:12 -0800
commitd1a7e90385288d140574bd01e89e0611e2099df5 (patch)
tree98f18cc25525eebdcaec98d5980f7dcc0c3dcbb3 /drivers/input
parentd1143c126f3e7f195e372f9afadcf60911c1cdde (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.c16
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);