Re: [PATCH v3 1/6] hid: new driver for PicoLCD device
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2010-03-26 21:16:42
Also in:
linux-input, lkml
On Friday 26 March 2010 01:59:19 pm Jiri Kosina wrote:
On Fri, 26 Mar 2010, Bruno Prémont wrote:quoted
quoted
quoted
+ for (i = 0; i < PICOLCD_KEYS; i++) { + int key = ((int *)idev->keycode)[i];Keycodes are now short, not int. Also, just do: input_set_capability(idev, EV_KEY, data->keycode[i]);quoted
+ if (key < KEY_MAX && key >= 0) + input_set_capability(idev, EV_KEY, key);Oops, I was not careful enough when switching over...Dmitry, thanks a lot for rapid review the driver. Bruno, could you please fix this and submit a followup 1/6 patch, so that I could queue the driver in my tree? I have almost finished going over the driver and haven't encountered any other issues that would require immediate fixing. Still, it would be nice to have the framebuffer/LCD/backlight bits reviewed by respective subsystem maintainers. But I'll probably queue the driver nevertheless and add potential ACKs later.
FWIW I am not entrely happy with the whole send-and_wait implementation -
it looks like it is not being called concurrently so we don't need mutex
there... I'd do something like:
send_nand_wait() {
set_bit(WAITING_RESPONSE, data->state);
prepare message
send message
wait_for_event_interruptible_timeout(&data->wait,
!test_bit(WAITING_RESPONSE, data->state));
if (!test_bit()) {
process
return 0;
}
return -ETIME;
}
irq(...) {
else if (test_bit(WAITING_RESPONSE, data->state)) {
copy response...
clear_bit(WAITING_RESPONSE, data->state);
wake_up(&data->wait);
}
}
and not bother with kmallocing pending structure, but it should not
stop from merging driver.
--
Dmitry