[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4bc1580689b3eebc529cc0436b62798b@tipi-net.de>
Date: Mon, 03 Feb 2025 19:21:51 +0100
From: nb@...i-net.de
To: Michal Pecio <michal.pecio@...il.com>
Cc: Mathias Nyman <mathias.nyman@...el.com>, Greg Kroah-Hartman
<gregkh@...uxfoundation.org>, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] usb: xhci: Restore xhci_pci support for Renesas HCs
On 28.1.2025 10:45, Michal Pecio wrote:
> Some Renesas HCs require firmware upload to work, this is handled by
> the
> xhci_pci_renesas driver. Other variants of those chips load firmware
> from
> a SPI flash and are ready to work with xhci_pci alone.
>
> A refactor merged in v6.12 broke the latter configuration so that users
> are finding their hardware ignored by the normal driver and are forced
> to
> enable the firmware loader which isn't really necessary on their
> systems.
>
> Let xhci_pci work with those chips as before when the firmware loader
> is
> disabled by kernel configuration.
>
> Fixes: 25f51b76f90f ("xhci-pci: Make xhci-pci-renesas a proper modular
> driver")
> CC: stable@...r.kernel.org
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219616
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219726
> Signed-off-by: Michal Pecio <michal.pecio@...il.com>
Can confirm that this patch restores the old behavior, where xhci-pci
supported the Renesas controllers when an external SPI flash is
attached. I've tested with a PCIe extension card on arm64 and x86 as
well as with a arm64 (Raspberry CM4) based Revolution Pi Connect 4.
Tested-by: Nicolai Buchwitz <nb@...i-net.de>
Thanks!
Nicolai
> ---
>
> new in v2:
> - changed #ifdef CONFIG_XXX to if (IS_ENABLED(CONFIG_XXX))
> - renamed the PCI IDs table to clarify code intent
> - small commit message improvements
>
> drivers/usb/host/xhci-pci.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index 5a5f0b2dba4d..54460d11f7ee 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
> @@ -657,8 +657,8 @@ int xhci_pci_common_probe(struct pci_dev *dev,
> const struct pci_device_id *id)
> }
> EXPORT_SYMBOL_NS_GPL(xhci_pci_common_probe, "xhci");
>
> -static const struct pci_device_id pci_ids_reject[] = {
> - /* handled by xhci-pci-renesas */
> +/* handled by xhci-pci-renesas if enabled */
> +static const struct pci_device_id pci_ids_renesas[] = {
> { PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0014) },
> { PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0015) },
> { /* end: all zeroes */ }
> @@ -666,7 +666,8 @@ static const struct pci_device_id pci_ids_reject[]
> = {
>
> static int xhci_pci_probe(struct pci_dev *dev, const struct
> pci_device_id *id)
> {
> - if (pci_match_id(pci_ids_reject, dev))
> + if (IS_ENABLED(CONFIG_USB_XHCI_PCI_RENESAS) &&
> + pci_match_id(pci_ids_renesas, dev))
> return -ENODEV;
>
> return xhci_pci_common_probe(dev, id);
Powered by blists - more mailing lists