• Felipe Balbi's avatar
    usb: define a generic USB_RESUME_TIMEOUT macro · a7d51bce
    Felipe Balbi authored
    [ Upstream commit 62f0342d ]
    
    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: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: default avatarPeter Chen <peter.chen@freescale.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    a7d51bce
usb.h 72.4 KB