summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2003-05-24 20:57:08 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-05-24 20:57:08 -0700
commit0b0c67c71fcab5ac4022c1ca73153bbe5c433991 (patch)
tree76be24ff69b05aabd161d505cef39a9e157c479b /drivers
parentdbac8f1a1c1aaf7a9067925f2dab7c1607217b18 (diff)
[PATCH] M68k IRQ API updates [15/20]
M68k input drivers: Update to the new irq API (from Roman Zippel and me) [15/20]
Diffstat (limited to 'drivers')
-rw-r--r--drivers/input/joystick/amijoy.c3
-rw-r--r--drivers/input/keyboard/amikbd.c16
-rw-r--r--drivers/input/mouse/amimouse.c4
3 files changed, 12 insertions, 11 deletions
diff --git a/drivers/input/joystick/amijoy.c b/drivers/input/joystick/amijoy.c
index 7dd5ce20f4ce..c84662f60ba1 100644
--- a/drivers/input/joystick/amijoy.c
+++ b/drivers/input/joystick/amijoy.c
@@ -52,7 +52,7 @@ static char *amijoy_phys[2] = { "amijoy/input0", "amijoy/input1" };
static char *amijoy_name = "Amiga joystick";
-static void amijoy_interrupt(int irq, void *dummy, struct pt_regs *fp)
+static irqreturn_t amijoy_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
int i, data = 0, button = 0;
@@ -74,6 +74,7 @@ static void amijoy_interrupt(int irq, void *dummy, struct pt_regs *fp)
input_sync(amijoy_dev + i);
}
+ return IRQ_HANDLED;
}
static int amijoy_open(struct input_dev *dev)
diff --git a/drivers/input/keyboard/amikbd.c b/drivers/input/keyboard/amikbd.c
index e1832cc082e8..4357ca9393d2 100644
--- a/drivers/input/keyboard/amikbd.c
+++ b/drivers/input/keyboard/amikbd.c
@@ -71,7 +71,7 @@ static struct input_dev amikbd_dev;
static char *amikbd_name = "Amiga keyboard";
static char *amikbd_phys = "amikbd/input0";
-static void amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp)
+static irqreturn_t amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
unsigned char scancode, down;
@@ -93,16 +93,14 @@ static void amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp)
input_report_key(&amikbd_dev, scancode, 1);
input_report_key(&amikbd_dev, scancode, 0);
input_sync(&amikbd_dev);
- return;
+ } else {
+ input_report_key(&amikbd_dev, scancode, down);
+ input_sync(&amikbd_dev);
}
+ } else /* scancodes >= 0x78 are error codes */
+ printk(amikbd_messages[scancode - 0x78]);
- input_report_key(&amikbd_dev, scancode, down);
- input_sync(&amikbd_dev);
-
- return;
- }
-
- printk(amikbd_messages[scancode - 0x78]); /* scancodes >= 0x78 are error codes */
+ return IRQ_HANDLED;
}
static int __init amikbd_init(void)
diff --git a/drivers/input/mouse/amimouse.c b/drivers/input/mouse/amimouse.c
index 05bf73dbf86d..7baa09cca7c5 100644
--- a/drivers/input/mouse/amimouse.c
+++ b/drivers/input/mouse/amimouse.c
@@ -40,7 +40,7 @@ static struct input_dev amimouse_dev;
static char *amimouse_name = "Amiga mouse";
static char *amimouse_phys = "amimouse/input0";
-static void amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp)
+static irqreturn_t amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
unsigned short joy0dat, potgor;
int nx, ny, dx, dy;
@@ -73,6 +73,8 @@ static void amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp)
input_report_key(&amimouse_dev, BTN_RIGHT, potgor & 0x0400);
input_sync(&amimouse_dev);
+
+ return IRQ_HANDLED;
}
static int amimouse_open(struct input_dev *dev)