• Sarah Sharp's avatar
    USB: xhci: Support full speed devices. · 2d3f1fac
    Sarah Sharp authored
    Full speed devices have varying max packet sizes (8, 16, 32, or 64) for
    endpoint 0.  The xHCI hardware needs to know the real max packet size
    that the USB core discovers after it fetches the first 8 bytes of the
    device descriptor.
    
    In order to fix this without adding a new hook to host controller drivers,
    the xHCI driver looks for an updated max packet size for control
    endpoints.  If it finds an updated size, it issues an evaluate context
    command and waits for that command to finish.  This should only happen in
    the initialization and device descriptor fetching steps in the khubd
    thread, so blocking should be fine.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: stable <stable@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    2d3f1fac
xhci-hcd.c 47.9 KB