diff options
Diffstat (limited to 'packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input.diff')
-rw-r--r-- | packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input.diff | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input.diff b/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input.diff deleted file mode 100644 index 6bf27bfdc0..0000000000 --- a/packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-switches-input.diff +++ /dev/null @@ -1,126 +0,0 @@ ---- /mnt/bdisk/openembedded/oetmp/base/opensimpad-2.4.25-vrs2-pxa1-jpm1-r5/linux-2.4.25/drivers/misc/switches.h 2004-07-01 21:10:30.000000000 +0200 -+++ drivers/misc/switches.h 2004-07-03 23:45:46.000000000 +0200 -@@ -25,4 +25,14 @@ - extern int switches_ucb1x00_init(void); - extern void switches_ucb1x00_exit(void); - -+#ifdef CONFIG_SA1100_SIMPAD -+#define SIMPAD_KEY_SUSPEND 0x0002 -+#define SIMPAD_KEY_WWW 0x0008 -+#define SIMPAD_KEY_ENTER 0x0010 -+#define SIMPAD_KEY_UP 0x0020 -+#define SIMPAD_KEY_DOWN 0x0040 -+#define SIMPAD_KEY_LEFT 0x0080 -+#define SIMPAD_KEY_RIGHT 0x0100 -+#endif -+ - #endif /* !defined(_SWITCHES_H) */ ---- /mnt/bdisk/openembedded/oetmp/base/opensimpad-2.4.25-vrs2-pxa1-jpm1-r5/linux-2.4.25/drivers/misc/switches-core.c 2004-07-01 21:10:30.000000000 +0200 -+++ drivers/misc/switches-core.c 2004-07-04 17:57:37.000000000 +0200 -@@ -16,6 +16,9 @@ - * 11 September 2001 - UCB1200 driver framework support added. - * - * 19 December 2001 - separated out SA-1100 and UCB1x00 code. -+ * -+ * 3 July 2004 - Added generating of keyboard events. -+ * Florian Boor <florian@handhelds.org> - */ - - #include <linux/config.h> -@@ -30,7 +33,11 @@ - #include <linux/slab.h> - #include <linux/wait.h> - -+#include <linux/input.h> -+ - #include <asm/uaccess.h> -+#include <asm/hardware.h> -+#include <asm/keyboard.h> - - #include "switches.h" - -@@ -53,6 +60,19 @@ - DECLARE_WAIT_QUEUE_HEAD(switches_wait); - LIST_HEAD(switches_event_queue); - -+#ifdef CONFIG_INPUT -+static struct input_dev idev; -+ -+int -+dummy_k_translate(unsigned char scancode, unsigned char *keycode, char raw_mode) -+{ -+ *keycode = scancode; -+ return 1; -+} -+ -+extern int (*k_translate)(unsigned char, unsigned char *, char); -+ -+#endif - - static ssize_t switches_read(struct file *file, char *buffer, - size_t count, loff_t *pos) -@@ -148,6 +168,31 @@ - { - struct switches_action *action; - -+#ifdef CONFIG_INPUT -+ /* create input events, the events to send depends on the platform */ -+#ifdef CONFIG_SA1100_SIMPAD -+ if (machine_is_simpad()) { -+ if (SWITCHES_COUNT(mask) > 0) -+ { -+ if (mask->events[0] & SIMPAD_KEY_SUSPEND) -+ 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) -+ input_report_key(&idev, KEY_UP, (mask->states[0] & SIMPAD_KEY_UP) ? 1 : 0); -+ if (mask->events[0] & SIMPAD_KEY_DOWN) -+ input_report_key(&idev, KEY_DOWN, (mask->states[0] & SIMPAD_KEY_DOWN) ? 1 : 0); -+ if (mask->events[0] & SIMPAD_KEY_LEFT) -+ input_report_key(&idev, KEY_LEFT, (mask->states[0] & SIMPAD_KEY_LEFT) ? 1 : 0); -+ if (mask->events[0] & SIMPAD_KEY_RIGHT) -+ input_report_key(&idev, KEY_RIGHT, (mask->states[0] & SIMPAD_KEY_RIGHT) ? 1 : 0); -+ if (mask->events[0] & SIMPAD_KEY_WWW) -+ input_report_key(&idev, KEY_F10, (mask->states[0] & SIMPAD_KEY_WWW) ? 1 : 0); -+ } -+ } -+#endif -+#endif -+ /* take care of switches device */ - if ((switches_users > 0) && (SWITCHES_COUNT(mask) > 0)) { - - if ((action = (struct switches_action *) -@@ -197,6 +242,21 @@ - return -EIO; - } - -+#ifdef CONFIG_INPUT -+ /* init input driver stuff */ -+ k_translate = dummy_k_translate; -+ idev.evbit[0] = BIT(EV_KEY); /* handle key events */ -+ -+ idev.keybit[LONG(KEY_POWER)] |= BIT(KEY_POWER); -+ idev.keybit[LONG(KEY_UP)] |= BIT(KEY_UP); -+ idev.keybit[LONG(KEY_DOWN)] |= BIT(KEY_DOWN); -+ idev.keybit[LONG(KEY_LEFT)] |= BIT(KEY_LEFT); -+ idev.keybit[LONG(KEY_RIGHT)] |= BIT(KEY_RIGHT); -+ idev.keybit[LONG(KEY_ENTER)] |= BIT(KEY_ENTER); -+ idev.keybit[LONG(KEY_F10)] |= BIT(KEY_F10); -+ -+ input_register_device(&idev); -+#endif - printk("Console switches initialized\n"); - - return 0; -@@ -214,6 +274,10 @@ - switches_ucb1x00_exit(); - #endif - -+#ifdef CONFIG_INPUT -+ input_unregister_device(&idev); -+#endif -+ - if (misc_deregister(&switches_misc) < 0) - printk(KERN_ERR "%s: unable to deregister misc device\n", - SWITCHES_NAME); |