Skip to content
  • Sarah Sharp's avatar
    USB: xhci: Make reverting an alt setting "unfailable". · 74f9fe21
    Sarah Sharp authored
    
    
    When a driver wants to switch to a different alternate setting for an
    interface, the USB core will (soon) check whether there is enough
    bandwidth.  Once the new alternate setting is installed in the xHCI
    hardware, the USB core will send a USB_REQ_SET_INTERFACE control
    message.  That can fail in various ways, and the USB core needs to be
    able to reinstate the old alternate setting.
    
    With the old code, reinstating the old alt setting could fail if the
    there's not enough memory to allocate new endpoint rings.  Keep
    around a cache of (at most 31) endpoint rings for this case.  When we
    successfully switch the xHCI hardware to the new alt setting, the old
    alt setting's rings will be stored in the cache.  Therefore we'll
    always have enough rings to satisfy a conversion back to a previous
    device setting.
    
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    74f9fe21