On Fri, Feb 13, 2015 at 04:22:12PM -0500, Alan Stern wrote: > On Fri, 13 Feb 2015, Felipe Balbi wrote: > > > Every USB Host controller should use this new > > macro to define for how long resume signalling > > should be driven on the bus. > > > > Currently, almost every single USB controller > > is using a 20ms timeout for resume signalling. > > > > That's problematic for two reasons: > > > > a) sometimes that 20ms timer expires a little > > before 20ms, which makes us fail certification > > > > b) some (many) devices actually need more than > > 20ms resume signalling. > > > > Sure, in case of (b) we can state that the device > > is against the USB spec, but the fact is that > > we have no control over which device the certification > > lab will use. We also have no control over which host > > they will use. Most likely they'll be using a Windows > > PC which, again, we have no control over how that > > USB stack is written and how long resume signalling > > they are using. > > > > At the end of the day, we must make sure Linux passes > > electrical compliance when working as Host or as Device > > and currently we don't pass compliance as host because > > we're driving resume signallig for exactly 20ms and > > that confuses certification test setup resulting in > > Certification failure. > > > > Signed-off-by: Felipe Balbi <balbi@xxxxxx> > > --- > > include/linux/usb.h | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/include/linux/usb.h b/include/linux/usb.h > > index f89c24a03bd9..1dd89f0db344 100644 > > --- a/include/linux/usb.h > > +++ b/include/linux/usb.h > > @@ -210,6 +210,9 @@ void usb_put_intf(struct usb_interface *intf); > > #define USB_MAXINTERFACES 32 > > #define USB_MAXIADS (USB_MAXINTERFACES/2) > > > > +/* USB Resume Timer */ > > +#define USB_RESUME_TIMEOUT 40 /* ms */ > > + > > How about adding a comment explaining briefly why this value is larger > than 20 ms? will do, but wait for other comments before resending. -- balbi
Attachment:
signature.asc
Description: Digital signature