[BUG/PATCH] (Or I'm missing something) in hcd.h definition of Endpoint{out}Request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This looks wrong:

#define EndpointRequest \
	((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
#define EndpointOutRequest \
	((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)

Shouldn't it be USB_RECIP_ENDPOINT ?

If I'm right, we had issues with some of the set/clear feature
"len" on root hub, not that anybody noticed ... I'm using these
definitions in the aspeed vhub though, and this breaks it, so
in case I'm right:

Subject: [PATCH] usb/hcd: Fix definition of Endpoint{out}Request

The definition for these is incorrect. Thankfully the only user
today is the root hub emulation code and only in corner cases
that seem to have never hit anybody so far. My upcoming driver
for the Aspeed virtual hub will rely on them being correct
however.

Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
--

diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index 40edf6a..8a1552e 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -561,9 +561,9 @@ extern void usb_ep0_reinit(struct usb_device *);
        ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
 
 #define EndpointRequest \
-       ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
+       ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT)<<8)
 #define EndpointOutRequest \
-       ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
+       ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT)<<8)
 
 /* class requests from the USB 2.0 hub spec, table 11-15 */
 #define HUB_CLASS_REQ(dir, type, request) ((((dir) | (type)) << 8) |
(request))


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux