2023-01-30 13:04:41

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] xhci: host: renesas: drop excessive Kconfig selects

From: Arnd Bergmann <[email protected]>

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.

Fixes: c52c9acc415e ("xhci: host: Add Renesas RZ/V2M SoC support")
Signed-off-by: Arnd Bergmann <[email protected]>
---
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
- 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



2023-01-30 14:37:38

by Biju Das

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

Hi Arnd Bergmann,

Thanks for the patch.

+ renesas-soc.

> Subject: [PATCH] xhci: host: renesas: drop excessive Kconfig selects
>
> From: Arnd Bergmann <[email protected]>
>
> 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 <[email protected]>
> ---
> 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