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 <b...@kernel.crashing.org> -- 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html