Thread (34 messages) 34 messages, 4 authors, 2010-04-27

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help