xhci: host: renesas: drop excessive Kconfig selects

Message ID 20230130130425.310410-1-arnd@kernel.org
State New
Headers
Series xhci: host: renesas: drop excessive Kconfig selects |

Commit Message

Arnd Bergmann Jan. 30, 2023, 1:03 p.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

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 <arnd@arndb.de>
---
 drivers/usb/gadget/udc/Kconfig | 1 -
 drivers/usb/host/Kconfig       | 3 ---
 2 files changed, 4 deletions(-)
  

Comments

Biju Das Jan. 30, 2023, 2:37 p.m. UTC | #1
Hi Arnd Bergmann,

Thanks for the patch.

+ renesas-soc.

> Subject: [PATCH] xhci: host: renesas: drop excessive Kconfig selects
> 
> From: Arnd Bergmann <arnd@arndb.de>
> 
> 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@arndb.de>
> ---
>  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
  

Patch

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.