summaryrefslogtreecommitdiff
path: root/recipes/snes232/snes232-2.6.patch
blob: cfefe488adf4fe9acaa939e4b48a88c0593d54ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
--- snes232.c~snes232-2.6.patch	2002-11-18 00:18:44.000000000 +0000
+++ snes232.c	2004-10-10 01:15:10.000000000 +0100
@@ -60,7 +60,7 @@
 	BTN_B,	/* 15 */
 };
 
-static void snes232_interrupt(struct serio *serio, unsigned char data, unsigned int flags)
+static irqreturn_t snes232_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs)
 {
 	struct snes232* snes232 = serio->private;
 	struct input_dev *dev = (data & 0x40) ? &snes232->dev[1] : &snes232->dev[0];
@@ -85,6 +85,10 @@
 		input_report_key(dev, button_map[btn], down);
 		break;
 	}
+
+	input_sync(dev);
+
+	return IRQ_HANDLED;
 }
 
 /*
@@ -133,10 +137,10 @@
 		snes232->dev[d].absbit[0] = BIT(ABS_X) | BIT(ABS_Y);
 		
 		snes232->dev[d].name = snes232_name;
-		snes232->dev[d].idbus = BUS_RS232;
-		snes232->dev[d].idvendor = SERIO_SNES232;
-		snes232->dev[d].idproduct = 0x0001;
-		snes232->dev[d].idversion = 0x0100;
+		snes232->dev[d].id.bustype = BUS_RS232;
+		snes232->dev[d].id.vendor = SERIO_SNES232;
+		snes232->dev[d].id.product = 0x0001;
+		snes232->dev[d].id.version = 0x0100;
 		
 		for (i = 0; i < 2; i++) {
 			snes232->dev[d].absmax[ABS_X+i] =  64;
@@ -148,7 +152,7 @@
 		
 		input_register_device(&snes232->dev[d]);
 
-		printk(KERN_INFO "input%d: %s on serio%d\n", snes232->dev[d].number, snes232_name, serio->number);
+		printk(KERN_INFO "%s: %s on %s\n", snes232->dev[d].name, snes232_name, serio->name);
 	}
 }