--- 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); } }