On Thu, 8 Jun 2017, Benjamin Herrenschmidt wrote: > 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 ? Yes, indeed it should. Looks like copy-and-paste errors. > 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)) Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> -- 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