From: Matt Porter Date: Mon, 22 Sep 2014 19:51:48 +0000 (-0400) Subject: greybus: es1-ap-usb: fix svc control pipe flags X-Git-Tag: v4.9-rc1~119^2~378^2~21^2~2093 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=648cb6cb75a1ef09200a24b280a2932caef88597;p=karo-tx-linux.git greybus: es1-ap-usb: fix svc control pipe flags The control message flags currently indicate USB_DIR_IN, which doesn't allow the data phase carrying the SVC message to be send to the device. Change this to USB_DIR_OUT so our SVC message buffer reaches the device. Also, the recipient is USB_RECIP_OTHER but almost all real devices that handle vendor setup requests seem to set this as USB_RECIP_INTERFACE. As a result, functionfs-based gadgets don't handle vendor setup requests with a recipient of OTHER. Change this to USB_RECIP_INTERFACE to work with the functionfs-based emulator and this should be no issue for the firmware to implement to match. Signed-off-by: Matt Porter Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/es1-ap-usb.c b/drivers/staging/greybus/es1-ap-usb.c index 1a47da6fb933..47c4524d6f5e 100644 --- a/drivers/staging/greybus/es1-ap-usb.c +++ b/drivers/staging/greybus/es1-ap-usb.c @@ -149,7 +149,7 @@ static int send_svc_msg(struct svc_msg *svc_msg, struct greybus_host_device *hd) usb_sndctrlpipe(es1->usb_dev, es1->control_endpoint), 0x01, /* vendor request AP message */ - USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE, 0x00, 0x00, (char *)svc_msg, sizeof(*svc_msg),