• Hans de Goede's avatar
    musb-new: Fix reset sequence when in host mode · 90cdc103
    Hans de Goede authored
    This commit fixes a number of issues with the reset sequence of musb-new
    in host mode:
    
    1) Our usb device probe relies on a second device reset being done after the
    first descriptors read. Factor the musb reset code into a usb_reset_root_port
    function (and add this as an empty define for other controllers), and call
    this when a device has no parent.
    
    2) Just like with normal usb controllers there needs to be a delay after
    reset, for normal usb controllers, this is handled in hub_port_reset, add a
    delay to usb_reset_root_port.
    
    3) Sync the musb reset sequence with the upstream kernel, clear all bits of
    power except bits 4-7, and increase the time reset is asserted to 50 ms.
    
    With these fixes an usb keyboard I have now always enumerates properly, where
    as earlier it would only enumerare properly once every 5 tries.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    90cdc103
usb.c 29.4 KB