Re: [PATCH v3] input/keyboard: new OpenCores Keyboard Controller driver

From: Mike Frysinger
Date: Tue Sep 15 2009 - 07:16:55 EST


On Tue, Sep 15, 2009 at 01:52, Dmitry Torokhov wrote:
> On Mon, Sep 14, 2009 at 08:18:48PM +0200, Javier Herrero wrote:
>> It has a bit long since last time I touched the driver, so I should also
>> try to refresh my memory about it :). I suppose that you're right in the
>> double allocation issue (I took another keyboard driver as a starting
>> point and probably the double allocation was already there...), so feel
>> free to introduce the change and I will test it as soon as I can.
>>
>> About the exact scancode - key mapping, the reason is that since the
>> FPGA opencores device already implements a translation table, I found
>> that another translation table sounded a bit redundant.
>
> OK, below is what I have now... One concern though - don't we need to do
> request_mem_region/ioremap for the addr_res?

i think so ... these operations are nops on a Blackfin CPU which is
probably why it "just works".

> +struct opencores_kbd {
> + Â Â Â struct input_dev *input;
> + Â Â Â void __iomem *addr;
> + Â Â Â int irq;
> + Â Â Â struct resource *irq_res;

the irq_res member is no longer needed

+#define NUM_KEYS 128
> + Â Â Â unsigned short keycodes[NUM_KEYS];

since this is the only usage of NUM_KEYS, could just inline it now ...

> + Â Â Â error = request_irq(irq, &opencores_kbd_isr,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â IRQF_TRIGGER_RISING, pdev->name, opencores_kbd);
> + Â Â Â if (error) {
> + Â Â Â Â Â Â Â dev_err(&pdev->dev, "unable to claim irq %d\n", irq);
> + Â Â Â Â Â Â Â goto err_free_mem;
> + Â Â Â }
> +
> + Â Â Â error = input_register_device(input);
> + Â Â Â if (error) {
> + Â Â Â Â Â Â Â dev_err(&pdev->dev, "unable to register input device\n");
> + Â Â Â Â Â Â Â goto err_free_irq;
> + Â Â Â }

the input layer can handle input even if it's not registered ?
-mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/