]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
usb: define a generic USB_RESUME_TIMEOUT macro
authorFelipe Balbi <balbi@ti.com>
Fri, 13 Feb 2015 20:34:25 +0000 (14:34 -0600)
committerSasha Levin <sasha.levin@oracle.com>
Sun, 17 May 2015 23:11:59 +0000 (19:11 -0400)
commita7d51bcea4a77775f6730ba65a0e725367b6d23b
tree4a8fe4a5757f5d5e46b35840b7babc7ed4858ae2
parent8627988cfc62ec0625042b74ccb2b670ab4c9cc2
usb: define a generic USB_RESUME_TIMEOUT macro

[ Upstream commit 62f0342de1f012f3e90607d39e20fce811391169 ]

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.

Cc: <stable@vger.kernel.org> # v3.10+
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
include/linux/usb.h