[RFC PATCH] usb: host: Default CONFIG_USB_XHCI_RCAR to module

Prabhakar posted 1 patch 1 month ago
drivers/usb/host/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[RFC PATCH] usb: host: Default CONFIG_USB_XHCI_RCAR to module
Posted by Prabhakar 1 month ago
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

On R-Car Gen3 and RZ/G2HMNE SoCs, when CONFIG_USB_XHCI_RCAR is built-in
and the system boots with an NFS root filesystem, the xHCI controller
probes before firmware becomes available. As a result, the firmware
request fails:

  xhci-renesas-hcd ee000000.usb: Direct firmware load for
  r8a779x_usb3_v3.dlmem failed with error -2

Default CONFIG_USB_XHCI_RCAR to module on ARCH_RENESAS so that probing
is deferred until after the root filesystem is mounted, ensuring that
the firmware is accessible.

Configurations explicitly selecting CONFIG_USB_XHCI_RCAR=y are
unaffected.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
 drivers/usb/host/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 0a277a07cf70..b70e019cc3ac 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -90,7 +90,7 @@ config USB_XHCI_RCAR
 	tristate "xHCI support for Renesas R-Car SoCs"
 	depends on USB_XHCI_PLATFORM
 	depends on ARCH_RENESAS || COMPILE_TEST
-	default ARCH_RENESAS
+	default m if ARCH_RENESAS
 	help
 	  Say 'Y' to enable the support for the xHCI host controller
 	  found in Renesas R-Car and RZ/G3E alike ARM SoCs.
-- 
2.54.0
Re: [RFC PATCH] usb: host: Default CONFIG_USB_XHCI_RCAR to module
Posted by Greg Kroah-Hartman 1 month ago
On Thu, May 07, 2026 at 04:47:10PM +0100, Prabhakar wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> On R-Car Gen3 and RZ/G2HMNE SoCs, when CONFIG_USB_XHCI_RCAR is built-in
> and the system boots with an NFS root filesystem, the xHCI controller
> probes before firmware becomes available. As a result, the firmware
> request fails:
> 
>   xhci-renesas-hcd ee000000.usb: Direct firmware load for
>   r8a779x_usb3_v3.dlmem failed with error -2
> 
> Default CONFIG_USB_XHCI_RCAR to module on ARCH_RENESAS so that probing
> is deferred until after the root filesystem is mounted, ensuring that
> the firmware is accessible.
> 
> Configurations explicitly selecting CONFIG_USB_XHCI_RCAR=y are
> unaffected.
> 
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---
>  drivers/usb/host/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index 0a277a07cf70..b70e019cc3ac 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -90,7 +90,7 @@ config USB_XHCI_RCAR
>  	tristate "xHCI support for Renesas R-Car SoCs"
>  	depends on USB_XHCI_PLATFORM
>  	depends on ARCH_RENESAS || COMPILE_TEST
> -	default ARCH_RENESAS
> +	default m if ARCH_RENESAS

The module type here depends on your root filesystem.  If you are using
nfs for your root, then you always know you need to properly build stuff
into the kernel for modules that need firmware, this shouldn't be a
default thing as NFS surely isn't a default system type anymore.

thanks,

greg k-h
Re: [RFC PATCH] usb: host: Default CONFIG_USB_XHCI_RCAR to module
Posted by Lad, Prabhakar 1 month ago
Hi Greg,

On Thu, May 7, 2026 at 5:20 PM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> On Thu, May 07, 2026 at 04:47:10PM +0100, Prabhakar wrote:
> > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > On R-Car Gen3 and RZ/G2HMNE SoCs, when CONFIG_USB_XHCI_RCAR is built-in
> > and the system boots with an NFS root filesystem, the xHCI controller
> > probes before firmware becomes available. As a result, the firmware
> > request fails:
> >
> >   xhci-renesas-hcd ee000000.usb: Direct firmware load for
> >   r8a779x_usb3_v3.dlmem failed with error -2
> >
> > Default CONFIG_USB_XHCI_RCAR to module on ARCH_RENESAS so that probing
> > is deferred until after the root filesystem is mounted, ensuring that
> > the firmware is accessible.
> >
> > Configurations explicitly selecting CONFIG_USB_XHCI_RCAR=y are
> > unaffected.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > ---
> >  drivers/usb/host/Kconfig | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> > index 0a277a07cf70..b70e019cc3ac 100644
> > --- a/drivers/usb/host/Kconfig
> > +++ b/drivers/usb/host/Kconfig
> > @@ -90,7 +90,7 @@ config USB_XHCI_RCAR
> >       tristate "xHCI support for Renesas R-Car SoCs"
> >       depends on USB_XHCI_PLATFORM
> >       depends on ARCH_RENESAS || COMPILE_TEST
> > -     default ARCH_RENESAS
> > +     default m if ARCH_RENESAS
>
> The module type here depends on your root filesystem.  If you are using
> nfs for your root, then you always know you need to properly build stuff
> into the kernel for modules that need firmware, this shouldn't be a
> default thing as NFS surely isn't a default system type anymore.
>
I agree. The module handling depends on the root filesystem setup.
I’ll drop this patch.

Cheers,
Prabhakar