From: Ondrej Zary on
Bigger Nexio touchscreens not only send more data but also the header values
are modified somehow. Fix the header somehow (it's a guesswork but it works
at least on one 46" touchscreen with 2.00SMS firmware) and also increase
rept_size.

Signed-off-by: Ondrej Zary <linux(a)rainbow-software.org>

--- linux-2.6.34-rc1-orig/drivers/input/touchscreen/usbtouchscreen.c 2010-03-16 13:34:51.000000000 +0100
+++ linux-2.6.34-rc1/drivers/input/touchscreen/usbtouchscreen.c 2010-03-16 13:46:15.000000000 +0100
@@ -858,6 +858,11 @@
if ((pkt[0] & 0xe0) != 0xe0)
return 0;

+ if (be16_to_cpu(packet->data_len) > 0xff)
+ packet->data_len = cpu_to_be16(be16_to_cpu(packet->data_len) - 0x100);
+ if (be16_to_cpu(packet->x_len) > 0xff)
+ packet->x_len = cpu_to_be16(be16_to_cpu(packet->x_len) - 0x80);
+
/* send ACK */
ret = usb_submit_urb(priv->ack, GFP_ATOMIC);

@@ -1113,7 +1118,7 @@

#ifdef CONFIG_TOUCHSCREEN_USB_NEXIO
[DEVTYPE_NEXIO] = {
- .rept_size = 128,
+ .rept_size = 1024,
.irq_always = true,
.read_data = nexio_read_data,
.init = nexio_init,


--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/