Skip to content
  • Takashi Iwai's avatar
    usb: renesas-xhci: Prefer firmware loading on unknown ROM state · c82cacd2
    Takashi Iwai authored
    The recent attempt to handle an unknown ROM state in the commit
    d143825b ("usb: renesas-xhci: Fix handling of unknown ROM state")
    resulted in a regression and reverted later by the commit 44cf5360
    ("Revert "usb: renesas-xhci: Fix handling of unknown ROM state"").
    The problem of the former fix was that it treated the failure of
    firmware loading as a fatal error.  Since the firmware files aren't
    included in the standard linux-firmware tree, most users don't have
    them, hence they got the non-working system after that.  The revert
    fixed the regression, but also it didn't make the firmware loading
    triggered even on the devices that do need it.  So we need still a fix
    for them.
    
    This is another attempt to handle the unknown ROM state.  Like the
    previous fix, this also tries to load the firmware when ROM shows
    unknown state.  In this patch, however, the failure of a firmware
    loading (such as a missing firmware file) isn't handled as a fatal
    error any longer when ROM has been already detected, but it falls back
    to the ROM mode like before.  The error is returned only when no ROM
    is detected and the firmware loading failed.
    
    Along with it, for simplifying the code flow, the detection and the
    check of ROM is factored out from renesas_fw_check_running() and done
    in the caller side, renesas_xhci_check_request_fw().  It avoids the
    redundant ROM checks.
    
    The patch was tested on Lenovo Thinkpad T14 gen (BIOS 1.34).  Also it
    was confirmed that no regression is seen on another Thinkpad T14
    machine that has worked without the patch, too.
    
    Fixes: 44cf5360
    
     ("Revert "usb: renesas-xhci: Fix handling of unknown ROM state"")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1189207
    Link: https://lore.kernel.org/r/20210826124127.14789-1-tiwai@suse.de
    
    
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c82cacd2