aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/keyboard/jornada720_kbd.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/input/keyboard/jornada720_kbd.c b/drivers/input/keyboard/jornada720_kbd.c
index dd8a037f7281..e6696b3c9416 100644
--- a/drivers/input/keyboard/jornada720_kbd.c
+++ b/drivers/input/keyboard/jornada720_kbd.c
@@ -59,7 +59,8 @@ static irqreturn_t jornada720_kbd_interrupt(int irq, void *dev_id)
59{ 59{
60 struct platform_device *pdev = dev_id; 60 struct platform_device *pdev = dev_id;
61 struct jornadakbd *jornadakbd = platform_get_drvdata(pdev); 61 struct jornadakbd *jornadakbd = platform_get_drvdata(pdev);
62 u8 count, kbd_data; 62 struct input_dev *input = jornadakbd->input;
63 u8 count, kbd_data, scan_code;
63 64
64 /* startup ssp with spinlock */ 65 /* startup ssp with spinlock */
65 jornada_ssp_start(); 66 jornada_ssp_start();
@@ -77,11 +78,12 @@ static irqreturn_t jornada720_kbd_interrupt(int irq, void *dev_id)
77 while (count--) { 78 while (count--) {
78 /* Exchange TxDummy for location (keymap[kbddata]) */ 79 /* Exchange TxDummy for location (keymap[kbddata]) */
79 kbd_data = jornada_ssp_byte(TXDUMMY); 80 kbd_data = jornada_ssp_byte(TXDUMMY);
81 scan_code = kbd_data & 0x7f;
80 82
81 input_report_key(jornadakbd->input, 83 input_event(input, EV_MSC, MSC_SCAN, scan_code);
82 jornadakbd->keymap[kbd_data & 0x7f], 84 input_report_key(input, jornadakbd->keymap[scan_code],
83 !(kbd_data & 0x80)); 85 !(kbd_data & 0x80));
84 input_sync(jornadakbd->input); 86 input_sync(input);
85 } 87 }
86 } 88 }
87 89
@@ -123,6 +125,8 @@ static int __devinit jornada720_kbd_probe(struct platform_device *pdev)
123 __set_bit(jornadakbd->keymap[i], input_dev->keybit); 125 __set_bit(jornadakbd->keymap[i], input_dev->keybit);
124 __clear_bit(KEY_RESERVED, input_dev->keybit); 126 __clear_bit(KEY_RESERVED, input_dev->keybit);
125 127
128 input_set_capability(input_dev, EV_MSC, MSC_SCAN);
129
126 err = request_irq(IRQ_GPIO0, 130 err = request_irq(IRQ_GPIO0,
127 jornada720_kbd_interrupt, 131 jornada720_kbd_interrupt,
128 IRQF_DISABLED | IRQF_TRIGGER_FALLING, 132 IRQF_DISABLED | IRQF_TRIGGER_FALLING,