diff options
Diffstat (limited to 'recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch')
-rw-r--r-- | recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch deleted file mode 100644 index 7392355..0000000 --- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch +++ /dev/null @@ -1,204 +0,0 @@ ---- linux-2.6.17-linuxsh/drivers/input/keyboard/hp680_keyb.c 2006-12-06 21:56:06.000000000 +0000 -+++ linux-2.6.17/drivers/input/keyboard/hp680_keyb.c 2007-01-10 21:00:34.000000000 +0000 -@@ -5,6 +5,7 @@ - * - * Copyright (C) 2005 Andriy Skulysh - * Copyright (C) 2006 Paul Mundt -+ * Copyright (C) 2007 Kristoffer Ericson - * - * Splited from drivers/input/keyboard/hp600_keyb.c - * -@@ -20,6 +21,10 @@ - #include <asm/io.h> - #include "scan_keyb.h" - -+#define PCCR 0xa4000104 -+#define PDCR 0xa4000106 -+#define PECR 0xa4000108 -+#define PFCR 0xa400010a - #define PCDR 0xa4000124 - #define PDDR 0xa4000126 - #define PEDR 0xa4000128 -@@ -30,6 +35,24 @@ - #define PKDR 0xa4000132 - #define PLDR 0xa4000134 - -+/*************************************************************** -+HP Jornada 680(SWEDISH version) keyboard -+[!] indicates Special Characters -+ -+_______________________________________________________________________ -+| ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 POWER| -+| 1 2 3 4 5 6 7 8 9 0 + ` BKPSPACE| -+|* Q W E R T Y U I O P ! ^ ENTER| -+| TAB A S D F G H J K L ! ! ' ENTER| -+| SHIFT Z X C V B N M , . - UP SHIFT| -+| CTRL WIN ALT ? =======SPACE======== ALTG DEL LEF DO RI ] -+----------------------------------------------------------------------- -+ -+ -+****************************************************************/ -+ -+ -+ - /**************************************************************** - HP Jornada 690(Japanese version) keyboard scan matrix - -@@ -71,31 +94,56 @@ - ****************************************************************/ - - static const unsigned char hp680_japanese_table[] = { -- /* PTD1 */ -+/* -+ /* PTD1 */ -+ /* ? ? ? ? Esc ? ? ? */ - 0x3a, 0x70, 0x29, 0x00, 0x01, 0x00, 0x00, 0x00, -+ /* F1 F2 F3 F8 F7 F6 F4 F5 */ - 0x3b, 0x3c, 0x3d, 0x42, 0x41, 0x40, 0x3e, 0x3f, -- /* PTD5 */ -+ -+ /* PTD5 */ -+ /* / : Enter ? Z ? ? ? */ - 0x35, 0x28, 0x1c, 0x00, 0x2c, 0x00, 0x00, 0x00, -+ /* X C V . , M B N */ - 0x2d, 0x2e, 0x2f, 0x34, 0x33, 0x32, 0x30, 0x31, -- /* PTD7 */ -- 0x50, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x38, 0x7b, -- /* PTE0 */ -+ -+ /* PTD7 */ -+ /* Down Right ? ? ? ? ? ? */ -+ 0x50, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ /* ? ? ? Left ? ? Alt ? */ -+ 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x38, 0x7b, -+ -+ /* PTE0 */ -+ /* ? ? ? ? Win ? ? ? */ - 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, -+ /* Ctrl ? Space Del _ ? ? ? */ - 0x1d, 0x00, 0x39, 0x53, 0x73, 0xf9, 0x00, 0x00, -- /* PTE1 */ -+ -+ /* PTE1 */ -+ /* ; [ ] ? A ? ? ? */ - 0x27, 0x1b, 0x2b, 0x00, 0x1e, 0x00, 0x00, 0x00, -+ /* S D F L K J G H */ - 0x1f, 0x20, 0x21, 0x26, 0x25, 0x24, 0x22, 0x23, -- /* PTE3 */ -- 0x48, 0x7d, 0x36, 0x00, 0x0f, 0x00, 0x00, 0x00, -- 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- /* PTE6 */ -+ -+ /* PTE3 */ -+ /* Up \ ShiftR ? Q ? ? ? */ -+ 0x48, 0x7d, 0x36, 0x00, 0x0f, 0x00, 0x00, 0x00, -+ /* ? ShiftL ? ? ? ? ? ? */ -+ 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ -+ /* PTE6 */ -+ /* P @ BS ? Q ? ? ? */ - 0x19, 0x1a, 0x0e, 0x00, 0x10, 0x00, 0x00, 0x00, -+ /* W E R O I U T Y */ - 0x11, 0x12, 0x13, 0x18, 0x17, 0x16, 0x14, 0x15, -- /* PTE7 */ -- 0x0b, 0x0c, 0x0d, 0x00, 0x02, 0x00, 0x00, 0x00, -- 0x03, 0x04, 0x05, 0x0a, 0x09, 0x08, 0x06, 0x07, -- /* **** */ -+ -+ /* PTE7 */ -+ /* 0 + = ? 1 ? ? ? */ -+ 0x0b, 0x0c, 0x0d, 0x00, 0x02, 0x00, 0x00, 0x00, -+ /* 2 3 4 9 8 7 5 6 */ -+ 0x03, 0x04, 0x05, 0x0a, 0x09, 0x08, 0x06, 0x07, -+ -+ /* **** */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }; -@@ -103,37 +151,72 @@ - static int hp680_japanese_scan_kbd(unsigned char *s) - { - int i; -- unsigned char matrix_switch[] = { -- 0xfd, 0xff, /* PTD1 */ -- 0xdf, 0xff, /* PTD5 */ -- 0x7f, 0xff, /* PTD7 */ -- 0xff, 0xfe, /* PTE0 */ -- 0xff, 0xfd, /* PTE1 */ -- 0xff, 0xf7, /* PTE3 */ -- 0xff, 0xbf, /* PTE6 */ -- 0xff, 0x7f, /* PTE7 */ -+ unsigned short ec_static,dc_static; /* = UINT16_t */ -+ unsigned char matrix_switch[] = { -+ 0xfd, 0xff, /* PTD1 PD(1) */ -+ 0xdf, 0xff, /* PTD5 PD(5) */ -+ 0x7f, 0xff, /* PTD7 PD(7) */ -+ 0xff, 0xfe, /* PTE0 PE(0) */ -+ 0xff, 0xfd, /* PTE1 PE(1) */ -+ 0xff, 0xf7, /* PTE3 PE(3) */ -+ 0xff, 0xbf, /* PTE6 PE(6) */ -+ 0xff, 0x7f, /* PTE7 PE(7) */ - }, *t=matrix_switch; -+ /* PD(x) : -+ 1. 0xcc0c & (1~(1 << (2*(x)+1))))) -+ 2. (0xf0cf & 0xfffff) */ -+ /* PE(x) : -+ 1. 0xcc0c & 0xffff -+ 2. 0xf0cf & (1~(1 << (2*(x)+1))))) */ -+ unsigned short matrix_PDE[] = { -+ 0xcc04, 0xf0cf, /* PD(1) */ -+ 0xc40c, 0xf0cf, /* PD(5) */ -+ 0x4c0c, 0xf0cf, /* PD(7) */ -+ 0xcc0c, 0xf0cd, /* PE(0) */ -+ 0xcc0c, 0xf0c7, /* PE(1) */ -+ 0xcc0c, 0xf04f, /* PE(3) */ -+ 0xcc0c, 0xd0cf, /* PE(6) */ -+ 0xcc0c, 0x70cf, /* PE(7) */ -+ } -+ , *y=matrix_PDE; -+ /* Save these control reg bits */ -+ dc_static = (ctrl_inw(PDCR) & (~0xcc0c)); -+ ec_static = (ctrl_inw(PECR) & (~0xf0cf)); - - for(i=0; i<8; i++) { -- ctrl_outb(*t++, PDDR); -+ /* disable output for all but the one we want to scan */ -+ ctrl_outw((dc_static | *y++), PDCR); -+ ctrl_outw((ec_static | *y++), PECR); -+ udelay(5); -+ -+ /* Get scanline row */ -+ ctrl_outb(*t++, PDDR); - ctrl_outb(*t++, PEDR); -+ udelay(50); -+ -+ /* Read data */ - *s++=ctrl_inb(PCDR); - *s++=ctrl_inb(PFDR); - } -- -+ /* Scan no lines */ - ctrl_outb(0xff, PDDR); - ctrl_outb(0xff, PEDR); -+ -+ /* Enable all scanlines */ -+ ctrl_outw((dc_static | (0x5555 & 0xcc0c)),PDCR); -+ ctrl_outw((ec_static | (0x5555 & 0xf0cf)),PECR); -+ /* Ignore extra keys and events */ - - *s++=ctrl_inb(PGDR); - *s++=ctrl_inb(PHDR); -- -+ - return 0; - } - - static struct scan_keyboard hp680_kbd = { - .scan = hp680_japanese_scan_kbd, - .table = hp680_japanese_table, -- .length = 18, -+ .length = 16, - }; - - static int __init hp680_kbd_init_hw(void) |