Thread (7 messages) 7 messages, 2 authors, 2021-08-26

Re: [PATCH] usb: renesas-xhci: Prefer firmware loading on unknown ROM state

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2021-08-26 12:21:52
Also in: lkml

On Thu, Aug 26, 2021 at 01:55:54PM +0200, Takashi Iwai wrote:
On Thu, 26 Aug 2021 13:50:13 +0200,
Greg Kroah-Hartman wrote:
quoted
On Thu, Aug 19, 2021 at 01:34:27PM +0200, Takashi Iwai wrote:
quoted
The recent attempt to handle an unknown ROM state in the commit
d143825baf15 ("usb: renesas-xhci: Fix handling of unknown ROM state")
resulted in a regression and reverted later by the commit 44cf53602f5a
("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: 44cf53602f5a ("Revert "usb: renesas-xhci: Fix handling of unknown ROM state"")
BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1189207
Signed-off-by: Takashi Iwai <redacted>
---
 drivers/usb/host/xhci-pci-renesas.c | 35 +++++++++++++++++++----------
 1 file changed, 23 insertions(+), 12 deletions(-)
This does not apply to my usb-linus branch, are you sure it is still
needed in Linus's tree right now?
I guess we can postpone for 5.15.  The patch was written for the code
on linux-next, and I see there have been a few code clean up there.

But the patch itself could be applied to Linus tree with a slight
fuzz, so the stable backport should be fine.

If it's still not cleanly applicable, let me know.  I'll refresh the
patch for whatever preferred branch.
It was not cleanly applicable, 'git am' did not like it against my
usb-linus branch (which is 5.14-rc7 + a few other USB patches not in
this driver).

So if you want to rebase it against that, I will be glad to take it for
5.14-final to resolve this issue.

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help