linux: Poodle / locomo: Enable SysRQ (Address+Home) and fix key-repeat rate
authorMatthias Hentges <oe@hentges.net>
Sat, 13 May 2006 21:38:48 +0000 (21:38 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Sat, 13 May 2006 21:38:48 +0000 (21:38 +0000)
packages/linux/linux-openzaurus-2.6.16/locomo-sysrq+keyrepeat.patch [new file with mode: 0644]
packages/linux/linux-openzaurus_2.6.16.bb

diff --git a/packages/linux/linux-openzaurus-2.6.16/locomo-sysrq+keyrepeat.patch b/packages/linux/linux-openzaurus-2.6.16/locomo-sysrq+keyrepeat.patch
new file mode 100644 (file)
index 0000000..365ee13
--- /dev/null
@@ -0,0 +1,66 @@
+--- linux-2.6.16/drivers/input/keyboard/locomokbd.c.orig       2006-05-13 22:53:33.810228656 +0200
++++ linux-2.6.16/drivers/input/keyboard/locomokbd.c    2006-05-13 22:56:56.544408376 +0200
+@@ -45,17 +45,20 @@
+ #define LOCOMOKBD_NUMKEYS     128
+-#define LOCOMO_KEY_CALENDER   KEY_F1
+-#define LOCOMO_KEY_ADDRESS    KEY_F2
+-#define LOCOMO_KEY_CANCEL     KEY_F4
+-#define LOCOMO_KEY_CENTER     KEY_F5
+-#define LOCOMO_KEY_MAIL               KEY_F10
+-#define LOCOMO_KEY_OK         KEY_F11
++#define LOCOMO_KEY_CALENDER   KEY_LEFTCTRL
++#define LOCOMO_KEY_ADDRESS    KEY_LEFTALT     /* Needed SysRQ */
++#define LOCOMO_KEY_HOME               KEY_SYSRQ       /* Need that for SysRQ */
+ #define LOCOMO_KEY_MENU               KEY_F12
++#define LOCOMO_KEY_MAIL               KEY_F10
++#define LOCOMO_KEY_OK         KEY_F11         /* Don't hardwire to KP_RETURN */
++#define LOCOMO_KEY_CANCEL     KEY_POWER
++#define LOCOMO_KEY_CENTER     KEY_F5          /* Don't hardwire to KP_RETURN */
++
++#define LOCOMO_KEY_FN         KEY_F9
+ static unsigned char locomokbd_keycode[LOCOMOKBD_NUMKEYS] = {
+-      0, LOCOMO_KEY_CANCEL, LOCOMO_KEY_CALENDER, KEY_HOME, 0, 0, 0, 0, 0, 0,          /* 0 - 9 */
+-      KEY_HOME, 0, 0, 0, 0, 0, 0, LOCOMO_KEY_MENU, KEY_HOME, LOCOMO_KEY_ADDRESS,      /* 10 - 19 */
++      0, LOCOMO_KEY_CANCEL, LOCOMO_KEY_CALENDER, LOCOMO_KEY_HOME, 0, 0, 0, 0, 0, 0,   /* 0 - 9 */
++      0, 0, 0, 0, 0, 0, 0, LOCOMO_KEY_MENU, 0, LOCOMO_KEY_ADDRESS,                    /* 10 - 19 */
+       0, 0, 0, 0, 0, LOCOMO_KEY_MAIL, 0, 0, 0, 0,                                     /* 20 - 29 */
+       0, 0, 0, LOCOMO_KEY_CENTER, 0, LOCOMO_KEY_MAIL, 0, 0, 0, 0,                     /* 30 - 39 */
+       0, 0, 0, 0, 0, 0, 0, 0, 0, KEY_RIGHT,                                           /* 40 - 49 */
+@@ -65,7 +68,7 @@
+       0, 0, 0, 0, 0, 0, KEY_ENTER, KEY_RIGHTSHIFT, KEY_K, KEY_J,                      /* 80 - 89 */
+       KEY_G, KEY_F, KEY_X, KEY_S, 0, 0, 0, 0, 0, 0,                                   /* 90 - 99 */
+       0, 0, KEY_DOT, 0, KEY_COMMA, KEY_N, KEY_B, KEY_C, KEY_Z, KEY_A,                 /* 100 - 109 */
+-      KEY_LEFTSHIFT, KEY_TAB, KEY_LEFTCTRL, 0, 0, 0, 0, 0, 0, 0,                      /* 110 - 119 */
++      KEY_LEFTSHIFT, KEY_TAB, LOCOMO_KEY_FN, 0, 0, 0, 0, 0, 0, 0,                     /* 110 - 119 */
+       KEY_M, KEY_SPACE, KEY_V, KEY_APOSTROPHE, KEY_SLASH, 0, 0, 0                     /* 120 - 128 */
+ };
+@@ -76,7 +79,7 @@
+ #define       NR_SCANCODES            128
+ #define KB_DELAY              8
+-#define SCAN_INTERVAL         (HZ/10)
++#define SCAN_INTERVAL         (HZ/20)
+ #define LOCOMOKBD_PRESSED     1
+ struct locomokbd {
+@@ -146,6 +149,7 @@
+       locomokbd_charge_all(membase);
+       num_pressed = 0;
++
+       for (col = 0; col < KB_COLS; col++) {
+               locomokbd_activate_col(membase, col);
+@@ -155,7 +159,7 @@
+               for (row = 0; row < KB_ROWS; row++) {
+                       scancode = SCANCODE(col, row);
+                       if (rowd & KB_ROWMASK(row)) {
+-                              /* printk(KERN_ERR "locomokbd: COL [%i] ROW [%i] scancode [%i] keycode [%i]\n",col,row,scancode,locomokbd->keycode[scancode]); */
++                              printk(KERN_ERR "locomokbd: ROW [%i] COL [%i] scancode [%i] keycode [%i]\n",row,col,scancode,locomokbd->keycode[scancode]);
+                               num_pressed += 1;
+                               input_report_key(locomokbd->input, locomokbd->keycode[scancode], 1);
+                       } else {
index 2692cac..3ad68d1 100644 (file)
@@ -1,6 +1,6 @@
 include linux-openzaurus.inc
 
-PR = "r22"
+PR = "r23"
 
 # Handy URLs
 # git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \
@@ -93,7 +93,8 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 \
            file://connectplus-remove-ide-HACK.patch;patch=1 \
            file://24-hostap_cs_id.diff;patch=1 \
            file://hrw-pcmcia-ids-r2.patch;patch=1 \
-          file://locomo-kbd-hotkeys.patch;patch=1 \       
+          file://locomo-kbd-hotkeys.patch;patch=1 \
+          file://locomo-sysrq+keyrepeat.patch;patch=1 \
            file://defconfig-c7x0 \
            file://defconfig-ipaq-pxa270 \
            file://defconfig-collie \