|
@@ -857,6 +857,11 @@ static int nexio_read_data(struct usbtouch_usb *usbtouch, unsigned char *pkt)
|
|
if ((pkt[0] & 0xe0) != 0xe0)
|
|
if ((pkt[0] & 0xe0) != 0xe0)
|
|
return 0;
|
|
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 */
|
|
/* send ACK */
|
|
ret = usb_submit_urb(priv->ack, GFP_ATOMIC);
|
|
ret = usb_submit_urb(priv->ack, GFP_ATOMIC);
|
|
|
|
|
|
@@ -1112,7 +1117,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = {
|
|
|
|
|
|
#ifdef CONFIG_TOUCHSCREEN_USB_NEXIO
|
|
#ifdef CONFIG_TOUCHSCREEN_USB_NEXIO
|
|
[DEVTYPE_NEXIO] = {
|
|
[DEVTYPE_NEXIO] = {
|
|
- .rept_size = 128,
|
|
|
|
|
|
+ .rept_size = 1024,
|
|
.irq_always = true,
|
|
.irq_always = true,
|
|
.read_data = nexio_read_data,
|
|
.read_data = nexio_read_data,
|
|
.init = nexio_init,
|
|
.init = nexio_init,
|