# # Patch managed by http://www.holgerschurig.de/patcher.html # --- linux-2.4.27/drivers/misc/switches-core.c~simpad-switches-input2 +++ linux-2.4.27/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; }