Input: usbtouchscreen - fix control-request directions
Subsystems (4)
PATCH v2 1/1 Input: usbtouchscreen - fix control-request directions
The direction of the pipe argument must match the request-type direction bit or control requests may fail depending on the host-controller-driver implementation.
Fix the four control requests which erroneously used usb_rcvctrlpipe().
Fixes 1d3e20236d7a ("[PATCH] USB: usbtouchscreen: unified USB touchscreen driver")
Fixes 24ced062a296 ("usbtouchscreen: add support for DMC TSC-10/25 devices")
Fixes 9e3b25837a20 ("Input: usbtouchscreen - add support for e2i touchscreen controller")
Cc [email protected] # 2.6.17
Signed-off-by Johan Hovold <[email protected]>
---
Changes in v2
- include also the request in e2i_init which did not use USB_DIR_OUT
drivers/input/touchscreen/usbtouchscreen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/input/touchscreen/usbtouchscreen.c +4 -4
@@ -251,7 +251,7 @@ static int e2i_init(struct usbtouch_usb *usbtouch)int ret;struct usb_device *udev =interface_to_usbdev (usbtouch->interface); - ret =usb_control_msg (udev,usb_rcvctrlpipe (udev,0 ), + ret =usb_control_msg (udev,usb_sndctrlpipe (udev,0 ),0x01 ,0x02 ,0x0000 ,0x0081 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
@@ -531,7 +531,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch)if (ret)return ret; - ret =usb_control_msg (udev,usb_rcvctrlpipe (udev,0 ), + ret =usb_control_msg (udev,usb_sndctrlpipe (udev,0 ),MTOUCHUSB_RESET ,USB_DIR_OUT |USB_TYPE_VENDOR |USB_RECIP_DEVICE ,1 ,0 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
@@ -543,7 +543,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch)msleep (150 );for (i =0 ; i <3 ; i++) { - ret =usb_control_msg (udev,usb_rcvctrlpipe (udev,0 ), + ret =usb_control_msg (udev,usb_sndctrlpipe (udev,0 ),MTOUCHUSB_ASYNC_REPORT ,USB_DIR_OUT |USB_TYPE_VENDOR |USB_RECIP_DEVICE ,1 ,1 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
@@ -722,7 +722,7 @@ static int dmc_tsc10_init(struct usbtouch_usb *usbtouch) }/* start sending data */ - ret =usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), + ret =usb_control_msg (dev,usb_sndctrlpipe (dev,0 ),TSC10_CMD_DATA1 ,USB_DIR_OUT |USB_TYPE_VENDOR |USB_RECIP_DEVICE ,0 ,0 ,NULL ,0 ,USB_CTRL_SET_TIMEOUT );
Signature · 1 line
2.26.3
Quoted 11 lines · Johan Hovold
The direction of the pipe argument must match the request-type direction bit or control requests may fail depending on the host-controller-driver implementation.
Fix the four control requests which erroneously used
usb_rcvctrlpipe().Fixes 1d3e20236d7a ("[PATCH] USB: usbtouchscreen: unified USB touchscreen driver")Fixes 24ced062a296 ("usbtouchscreen: add support for DMC TSC-10/25 devices")Fixes 9e3b25837a20 ("Input: usbtouchscreen - add support for e2i touchscreen controller")Cc [email protected] # 2.6.17Signed-off-by Johan Hovold <[email protected]>
Applied, thank you.
Signature · 1 line
Dmitry