aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/keyboard/atakbd.c64
1 files changed, 26 insertions, 38 deletions
diff --git a/drivers/input/keyboard/atakbd.c b/drivers/input/keyboard/atakbd.c
index 6f62da2909ec..e989574a2e20 100644
--- a/drivers/input/keyboard/atakbd.c
+++ b/drivers/input/keyboard/atakbd.c
@@ -75,8 +75,7 @@ MODULE_LICENSE("GPL");
75 */ 75 */
76 76
77 77
78static unsigned char atakbd_keycode[0x72] = { /* American layout */ 78static unsigned char atakbd_keycode[0x73] = { /* American layout */
79 [0] = KEY_GRAVE,
80 [1] = KEY_ESC, 79 [1] = KEY_ESC,
81 [2] = KEY_1, 80 [2] = KEY_1,
82 [3] = KEY_2, 81 [3] = KEY_2,
@@ -117,9 +116,9 @@ static unsigned char atakbd_keycode[0x72] = { /* American layout */
117 [38] = KEY_L, 116 [38] = KEY_L,
118 [39] = KEY_SEMICOLON, 117 [39] = KEY_SEMICOLON,
119 [40] = KEY_APOSTROPHE, 118 [40] = KEY_APOSTROPHE,
120 [41] = KEY_BACKSLASH, /* FIXME, '#' */ 119 [41] = KEY_GRAVE,
121 [42] = KEY_LEFTSHIFT, 120 [42] = KEY_LEFTSHIFT,
122 [43] = KEY_GRAVE, /* FIXME: '~' */ 121 [43] = KEY_BACKSLASH,
123 [44] = KEY_Z, 122 [44] = KEY_Z,
124 [45] = KEY_X, 123 [45] = KEY_X,
125 [46] = KEY_C, 124 [46] = KEY_C,
@@ -145,45 +144,34 @@ static unsigned char atakbd_keycode[0x72] = { /* American layout */
145 [66] = KEY_F8, 144 [66] = KEY_F8,
146 [67] = KEY_F9, 145 [67] = KEY_F9,
147 [68] = KEY_F10, 146 [68] = KEY_F10,
148 [69] = KEY_ESC, 147 [71] = KEY_HOME,
149 [70] = KEY_DELETE, 148 [72] = KEY_UP,
150 [71] = KEY_KP7,
151 [72] = KEY_KP8,
152 [73] = KEY_KP9,
153 [74] = KEY_KPMINUS, 149 [74] = KEY_KPMINUS,
154 [75] = KEY_KP4, 150 [75] = KEY_LEFT,
155 [76] = KEY_KP5, 151 [77] = KEY_RIGHT,
156 [77] = KEY_KP6,
157 [78] = KEY_KPPLUS, 152 [78] = KEY_KPPLUS,
158 [79] = KEY_KP1, 153 [80] = KEY_DOWN,
159 [80] = KEY_KP2, 154 [82] = KEY_INSERT,
160 [81] = KEY_KP3, 155 [83] = KEY_DELETE,
161 [82] = KEY_KP0,
162 [83] = KEY_KPDOT,
163 [90] = KEY_KPLEFTPAREN,
164 [91] = KEY_KPRIGHTPAREN,
165 [92] = KEY_KPASTERISK, /* FIXME */
166 [93] = KEY_KPASTERISK,
167 [94] = KEY_KPPLUS,
168 [95] = KEY_HELP,
169 [96] = KEY_102ND, 156 [96] = KEY_102ND,
170 [97] = KEY_KPASTERISK, /* FIXME */ 157 [97] = KEY_UNDO,
171 [98] = KEY_KPSLASH, 158 [98] = KEY_HELP,
172 [99] = KEY_KPLEFTPAREN, 159 [99] = KEY_KPLEFTPAREN,
173 [100] = KEY_KPRIGHTPAREN, 160 [100] = KEY_KPRIGHTPAREN,
174 [101] = KEY_KPSLASH, 161 [101] = KEY_KPSLASH,
175 [102] = KEY_KPASTERISK, 162 [102] = KEY_KPASTERISK,
176 [103] = KEY_UP, 163 [103] = KEY_KP7,
177 [104] = KEY_KPASTERISK, /* FIXME */ 164 [104] = KEY_KP8,
178 [105] = KEY_LEFT, 165 [105] = KEY_KP9,
179 [106] = KEY_RIGHT, 166 [106] = KEY_KP4,
180 [107] = KEY_KPASTERISK, /* FIXME */ 167 [107] = KEY_KP5,
181 [108] = KEY_DOWN, 168 [108] = KEY_KP6,
182 [109] = KEY_KPASTERISK, /* FIXME */ 169 [109] = KEY_KP1,
183 [110] = KEY_KPASTERISK, /* FIXME */ 170 [110] = KEY_KP2,
184 [111] = KEY_KPASTERISK, /* FIXME */ 171 [111] = KEY_KP3,
185 [112] = KEY_KPASTERISK, /* FIXME */ 172 [112] = KEY_KP0,
186 [113] = KEY_KPASTERISK /* FIXME */ 173 [113] = KEY_KPDOT,
174 [114] = KEY_KPENTER,
187}; 175};
188 176
189static struct input_dev *atakbd_dev; 177static struct input_dev *atakbd_dev;
@@ -191,7 +179,7 @@ static struct input_dev *atakbd_dev;
191static void atakbd_interrupt(unsigned char scancode, char down) 179static void atakbd_interrupt(unsigned char scancode, char down)
192{ 180{
193 181
194 if (scancode < 0x72) { /* scancodes < 0xf2 are keys */ 182 if (scancode < 0x73) { /* scancodes < 0xf3 are keys */
195 183
196 // report raw events here? 184 // report raw events here?
197 185
@@ -205,7 +193,7 @@ static void atakbd_interrupt(unsigned char scancode, char down)
205 input_report_key(atakbd_dev, scancode, down); 193 input_report_key(atakbd_dev, scancode, down);
206 input_sync(atakbd_dev); 194 input_sync(atakbd_dev);
207 } 195 }
208 } else /* scancodes >= 0xf2 are mouse data, most likely */ 196 } else /* scancodes >= 0xf3 are mouse data, most likely */
209 printk(KERN_INFO "atakbd: unhandled scancode %x\n", scancode); 197 printk(KERN_INFO "atakbd: unhandled scancode %x\n", scancode);
210 198
211 return; 199 return;