summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input2.diff52
1 files changed, 52 insertions, 0 deletions
diff --git a/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input2.diff b/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input2.diff
index e69de29bb2..9531cf1b43 100644
--- a/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input2.diff
+++ b/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input2.diff
@@ -0,0 +1,52 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- drivers/misc/switches-core.c~Fooo
++++ drivers/misc/switches-core.c
+@@ -66,7 +66,32 @@
+ int
+ dummy_k_translate(unsigned char scancode, unsigned char *keycode, char raw_mode)
+ {
+- *keycode = scancode;
++ if (scancode == KEY_UP)
++ *keycode = 144;
++ else if (scancode == KEY_LEFT)
++ *keycode = 146;
++ else if (scancode == KEY_RIGHT)
++ *keycode = 151;
++ else if (scancode == KEY_DOWN)
++ *keycode = 161;
++ else if (scancode == 144)
++ *keycode = KEY_UP;
++ else if (scancode == 146)
++ *keycode = KEY_LEFT;
++ else if (scancode == 151)
++ *keycode = KEY_RIGHT;
++ else if (scancode == 161)
++ *keycode = KEY_DOWN;
++ else if (scancode == KEY_KP8)
++ *keycode = KEY_UP;
++ else if (scancode == KEY_KP4)
++ *keycode = KEY_LEFT;
++ else if (scancode == KEY_KP6)
++ *keycode = KEY_RIGHT;
++ else if (scancode == KEY_KP2)
++ *keycode = KEY_DOWN;
++ else
++ *keycode = scancode;
+ return 1;
+ }
+
+@@ -174,8 +199,9 @@
+ if (machine_is_simpad()) {
+ if (SWITCHES_COUNT(mask) > 0)
+ {
++// printk("st %04lx, ev: %04lx\n",mask->states[0],mask->events[0]);
+ if (mask->events[0] & SIMPAD_KEY_SUSPEND)
+- input_report_key(&idev, KEY_POWER, (mask->states[0] & SIMPAD_KEY_SUSPEND) ? 1 : 0);
++ input_report_key(&idev, KEY_POWER, (mask->states[0] & SIMPAD_KEY_SUSPEND) ? 0 : 1);
+ if (mask->events[0] & SIMPAD_KEY_ENTER)
+ input_report_key(&idev, KEY_ENTER, (mask->states[0] & SIMPAD_KEY_ENTER) ? 1 : 0);
+ if (mask->events[0] & SIMPAD_KEY_UP)