On Thu, Jan 31, 2008 at 01:18:22AM +0800, Bryan Wu wrote:

> +static irqreturn_t opencores_kbd_isr(int irq, void *dev_id)
> +{
> +     unsigned char c;
> +     struct platform_device *pdev = dev_id;
> +     struct opencores_kbd *opencores_kbd = platform_get_drvdata(pdev);
> +     struct input_dev *input = opencores_kbd->input;
> +
> +     c = readb(opencores_kbd->addr_res->start);
> +     input_report_key(input, c & 0x7f, c & 0x80 ? 0 : 1);
> +     input_sync(input);
> +
> +     return IRQ_HANDLED;
> +}
 
This looks utterly wrong: It assumes 1:1 mapping between Linux keycodes
and what the keyboard sends, which I can't believe is the case.

-- 
Vojtech Pavlik
Director SuSE Labs

Reply via email to