summaryrefslogtreecommitdiff
path: root/packages/linux/linux-openzaurus-2.6.16/locomo-sysrq+keyrepeat.patch
blob: 94dabf43848b530c2ae0da1239e3451afaba9714 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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 for SysRQ */
+#define LOCOMO_KEY_HOME		KEY_SYSRQ	/* Needed for SysRQ */
 #define LOCOMO_KEY_MENU		KEY_F12
+#define LOCOMO_KEY_MAIL		KEY_F10
+#define LOCOMO_KEY_OK		KEY_F11		/* Don't hardwire to KEY_RETURN */
+#define LOCOMO_KEY_CANCEL	KEY_POWER
+#define LOCOMO_KEY_CENTER	KEY_F5		/* Don't hardwire to KEY_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 {