diff options
-rw-r--r-- | packages/linux/linux-ezx/defconfig-a780 | 4 | ||||
-rw-r--r-- | packages/linux/linux-ezx/defconfig-e680 | 4 | ||||
-rw-r--r-- | packages/linux/linux-ezx/e680-fix-keypad.patch | 18 | ||||
-rw-r--r-- | packages/linux/linux-ezx/pxakbd-fix-directkeys.patch | 74 |
4 files changed, 85 insertions, 15 deletions
diff --git a/packages/linux/linux-ezx/defconfig-a780 b/packages/linux/linux-ezx/defconfig-a780 index e90f125402..beb7a64cc1 100644 --- a/packages/linux/linux-ezx/defconfig-a780 +++ b/packages/linux/linux-ezx/defconfig-a780 @@ -736,8 +736,8 @@ CONFIG_SERIAL_PXA_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LEGACY_PTYS is not set +# CONFIG_LEGACY_PTY_COUNT is not set # # IPMI diff --git a/packages/linux/linux-ezx/defconfig-e680 b/packages/linux/linux-ezx/defconfig-e680 index 8a4a49cdb8..ef5fef395f 100644 --- a/packages/linux/linux-ezx/defconfig-e680 +++ b/packages/linux/linux-ezx/defconfig-e680 @@ -736,8 +736,8 @@ CONFIG_SERIAL_PXA_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LEGACY_PTYS is not set +# CONFIG_LEGACY_PTY_COUNT is not set # # IPMI diff --git a/packages/linux/linux-ezx/e680-fix-keypad.patch b/packages/linux/linux-ezx/e680-fix-keypad.patch index b40283f332..ca06052803 100644 --- a/packages/linux/linux-ezx/e680-fix-keypad.patch +++ b/packages/linux/linux-ezx/e680-fix-keypad.patch @@ -3,8 +3,8 @@ # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher # ---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~e680-fix-keypad 2006-06-09 01:55:06.000000000 +0200 -+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-09 03:09:26.000000000 +0200 +--- linux-2.6.16/arch/arm/mach-pxa/ezx.c~e680-fix-keypad.patch 2006-06-11 00:47:33.000000000 +0200 ++++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-12 16:13:28.000000000 +0200 @@ -341,71 +341,25 @@ }; #endif @@ -71,19 +71,19 @@ - /* col 3 */ - KEYPAD_HOME, KEYPAD_GAME_L, KEYPAD_CENTER, 0, 0, 0, 0, 0, + /* row 0 */ -+ KEY_UP, KEY_RIGHT, 0, KEY_PHONE, ++ KEY_UP, KEY_RIGHT, KEY_RESERVED, KEY_PHONE, + /* row 1 */ + KEY_DOWN, KEY_LEFT, KEY_VOLUMEUP, KEY_VOLUMEDOWN, + /* row 2 */ -+ 0, 0, 0, KEY_KPENTER, ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_KPENTER, }; static unsigned char ezx_direct_keycode[] = { KEY_CAMERA, - KEYPAD_NONE, - KEYPAD_NONE, - KEYPAD_A, -+ 0, -+ 0, ++ KEY_RESERVED, ++ KEY_RESERVED, + KEY_HOME, KEY_POWER, - KEYPAD_B, @@ -137,14 +137,16 @@ .cols = 4, .rows = 3, #elif defined(CONFIG_PXA_EZX_A780) -@@ -489,9 +430,7 @@ +@@ -489,10 +430,8 @@ }, .direct = { .keycode = &ezx_direct_keycode, -#if defined(CONFIG_PXA_EZX_E680_P4A) - .num = 4, -#elif defined(CONFIG_PXA_EZX_E680) +- .num = 5, +#if defined(CONFIG_PXA_EZX_E680) - .num = 5, ++ .num = 6, #elif defined(CONFIG_PXA_EZX_A780) .num = 1, + #endif diff --git a/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch b/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch index e1d0d7c26e..1dedb981bd 100644 --- a/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch +++ b/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch @@ -3,9 +3,62 @@ # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher # ---- linux-2.6.16/drivers/input/keyboard/pxakbd.c~pxakbd-fix-directkeys 2006-06-09 03:16:35.000000000 +0200 -+++ linux-2.6.16/drivers/input/keyboard/pxakbd.c 2006-06-09 03:21:04.000000000 +0200 -@@ -279,6 +279,7 @@ +--- linux-2.6.16/drivers/input/keyboard/pxakbd.c~pxakbd-fix-directkeys.patch 2006-06-11 00:47:25.000000000 +0200 ++++ linux-2.6.16/drivers/input/keyboard/pxakbd.c 2006-06-12 16:10:03.000000000 +0200 +@@ -20,7 +20,7 @@ + #include <asm/arch/irqs.h> + #include <asm/arch/pxa-regs.h> + +-#if 0 ++#if 1 + #define DEBUGP(x, args ...) printk(x, ## args) + #else + #define DEBUGP(x, args ...) +@@ -44,8 +44,7 @@ + unsigned int i; + int num_pressed = 0; + +- kpdk = KPDK & 0x0000000f; +- ++ kpdk = KPDK & 0x000000ff; + for (i = 0; i < pxakbd->pd->direct.num; i++) { + int pressed = 0; + +@@ -54,11 +53,12 @@ + num_pressed++; + DEBUGP("pxakbd: pressed: direct %u\n", i); + } +- +- input_report_key(pxakbd->input, pxakbd->pd->direct.keycode[i], +- pressed); ++ if (pxakbd->pd->direct.keycode[i] != KEY_RESERVED) { ++ DEBUGP( "pxakbd: sending to input layer: keycode = %d, pressed = %d\n", pxakbd->pd->direct.keycode[i], pressed ); ++ input_report_key(pxakbd->input, pxakbd->pd->direct.keycode[i], ++ pressed); ++ } + } +- + return num_pressed; + } + +@@ -248,16 +248,6 @@ + set_bit(pxakbd->pd->matrix.keycode[i], input_dev->keybit); + clear_bit(0, input_dev->keybit); + +-#if 0 +- input_dev2->evbit[0] = ; +- input_dev2->keycode = pxakbd->pd->direct.keycode; +- input_dev2->keycodesize = sizeof(unsigned char); +- input_dev2->keycodemax = pxakbd->pd->direct.num; +- +- for (i = 0; i < input_dev2->keycodemax; i++) +- set_bit(ezxkbd->keycode[i], input_dev2->keybit); +-#endif +- + if (request_irq(pxakbd->irq, pxakbd_interrupt, 0, "pxakbd", pxakbd)) { + printk(KERN_ERR "pxakbd: can't request irq %d\n", pxakbd->irq); + ret = -EBUSY; +@@ -279,6 +269,7 @@ KPC_ME | KPC_DE | /* matrix and direct keypad enabled */ ((pxakbd->pd->matrix.cols-1)<<23) | /* columns */ ((pxakbd->pd->matrix.rows-1)<<26) | /* rows */ @@ -13,3 +66,18 @@ KPC_MS_ALL); /* scan all columns */ pxa_set_cken(CKEN19_KEYPAD, 1); +@@ -375,13 +366,11 @@ + static int pxakbd_remove(struct platform_device *pdev) + { + struct pxakbd *pxakbd = platform_get_drvdata(pdev); +- ++ input_unregister_device(pxakbd->input); + platform_set_drvdata(pdev, NULL); + release_resource(pxakbd->res); + free_irq(pxakbd->irq, pxakbd); +- input_unregister_device(pxakbd->input); + kfree(pxakbd); +- + return 0; + } + |