RE: [PATCH] xhci: host: renesas: drop excessive Kconfig selects

From: Biju Das
Date: Mon Jan 30 2023 - 09:37:38 EST


Hi Arnd Bergmann,

Thanks for the patch.

+ renesas-soc.

> Subject: [PATCH] xhci: host: renesas: drop excessive Kconfig selects
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> The USB_XHCI_RZV2M and USB_RENESAS_USB3 select other drivers based on the
> enabled SoC types, which leads to build failures when the dependencies are
> not met:
>
> WARNING: unmet direct dependencies detected for USB_RZV2M_USB3DRD
> Depends on [n]: USB_SUPPORT [=y] && USB_GADGET [=n] && (ARCH_R9A09G011
> [=n] || COMPILE_TEST [=y])
> Selected by [m]:
> - USB_XHCI_RZV2M [=m] && USB_SUPPORT [=y] && USB [=y] && USB_XHCI_HCD [=m]
> && USB_XHCI_PLATFORM [=m] && (ARCH_R9A09G011 [=n] || COMPILE_TEST [=y])
> ERROR: modpost: "rzv2m_usb3drd_reset" [drivers/usb/host/xhci-plat-hcd.ko]
> undefined!
>
> All the selected symbols are actually user visible, so the correct approach
> here is to drop the incorrect 'select' statements and have users turn on
> those drivers during kernel configuration as they would for any other
> driver.

Both Host and device controller need USB3DRD driver to work.
ie, the reason, added select statement to explicitly enable "USB_RZV2M_USB3DRD"
by default.

I have tested this patch with below configurations in ARM64 defconfig.

+CONFIG_USB_XHCI_RZV2M=y
+CONFIG_USB_RZV2M_USB3DRD=y

>
> Fixes: c52c9acc415e ("xhci: host: Add Renesas RZ/V2M SoC support")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/usb/gadget/udc/Kconfig | 1 -
> drivers/usb/host/Kconfig | 3 ---
> 2 files changed, 4 deletions(-)
>
> diff --git a/drivers/usb/gadget/udc/Kconfig b/drivers/usb/gadget/udc/Kconfig
> index 9b7a1681550f..1821004dd325 100644
> --- a/drivers/usb/gadget/udc/Kconfig
> +++ b/drivers/usb/gadget/udc/Kconfig
> @@ -195,7 +195,6 @@ config USB_RENESAS_USB3
> tristate 'Renesas USB3.0 Peripheral controller'
> depends on ARCH_RENESAS || COMPILE_TEST
> depends on EXTCON
> - select USB_RZV2M_USB3DRD if ARCH_R9A09G011
> select USB_ROLE_SWITCH
> help
> Renesas USB3.0 Peripheral controller is a USB peripheral controller
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index
> 4b5c5b1feb40..b975178b38bf 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -53,8 +53,6 @@ config USB_XHCI_PCI_RENESAS
>
> config USB_XHCI_PLATFORM
> tristate "Generic xHCI driver for a platform device"
> - select USB_XHCI_RCAR if ARCH_RENESAS

This change has nothing to do with RZ/V2M fixes. Currently USB_XHCI_RCAR is enabled
by default, with this change user has to enable it separately.

Maybe keep it here or add a separate patch for dropping it here and add it to the defconfig??

Cheers,
Biju

> - select USB_XHCI_RZV2M if ARCH_R9A09G011
> help
> Adds an xHCI host driver for a generic platform device, which
> provides a memory space and an irq.
> @@ -100,7 +98,6 @@ config USB_XHCI_RZV2M
> tristate "xHCI support for Renesas RZ/V2M SoC"
> depends on USB_XHCI_PLATFORM
> depends on ARCH_R9A09G011 || COMPILE_TEST
> - select USB_RZV2M_USB3DRD
> help
> Say 'Y' to enable the support for the xHCI host controller
> found in Renesas RZ/V2M SoC.
> --
> 2.39.0