summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/linux/linux-ezx/defconfig-a7804
-rw-r--r--packages/linux/linux-ezx/defconfig-e6804
-rw-r--r--packages/linux/linux-ezx/e680-fix-keypad.patch18
-rw-r--r--packages/linux/linux-ezx/pxakbd-fix-directkeys.patch74
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;
+ }
+