summaryrefslogtreecommitdiffstats
path: root/recipes/snes232
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/snes232')
-rw-r--r--recipes/snes232/Makefile-2.64
-rw-r--r--recipes/snes232/snes232-2.6.patch46
-rw-r--r--recipes/snes232/snes232_cvs.bb23
3 files changed, 73 insertions, 0 deletions
diff --git a/recipes/snes232/Makefile-2.6 b/recipes/snes232/Makefile-2.6
new file mode 100644
index 0000000000..0719a25d0a
--- /dev/null
+++ b/recipes/snes232/Makefile-2.6
@@ -0,0 +1,4 @@
+obj-m := snes232.o
+
+all:
+ make -C $(KERNEL_SOURCE) SUBDIRS=`pwd`
diff --git a/recipes/snes232/snes232-2.6.patch b/recipes/snes232/snes232-2.6.patch
new file mode 100644
index 0000000000..cfefe488ad
--- /dev/null
+++ b/recipes/snes232/snes232-2.6.patch
@@ -0,0 +1,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);
+ }
+ }
+
diff --git a/recipes/snes232/snes232_cvs.bb b/recipes/snes232/snes232_cvs.bb
new file mode 100644
index 0000000000..1424f86dfe
--- /dev/null
+++ b/recipes/snes232/snes232_cvs.bb
@@ -0,0 +1,23 @@
+SECTION = "unknown"
+PR = "r4"
+LICENSE = "GPL"
+INHIBIT_PACKAGE_STRIP = "1"
+
+RRECOMMENDS = "kernel-module-serport"
+
+SRC_URI = "${HANDHELDS_CVS};module=gpe/games/snes232 \
+ file://snes232-2.6.patch;patch=1;pnum=0 \
+ file://Makefile-2.6"
+
+S = "${WORKDIR}/snes232"
+
+inherit module
+
+do_configure() {
+ install -m 0644 ${WORKDIR}/Makefile-2.6 Makefile
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/snes232
+ install snes232.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/snes232/
+}