Re: [PATCH v16 5/7] usb: Specify dependencies on USB_XHCI_PLATFORM with 'depends on'

From: Roger Quadros
Date: Thu Aug 26 2021 - 02:46:38 EST




On 13/08/2021 22:52, Matthias Kaehlcke wrote:
> Some USB controller drivers that depend on the xhci-plat driver
> specify this dependency using 'select' in Kconfig. This is not
> recommended for symbols that have other dependencies as it may
> lead to invalid configurations. Use 'depends on' to specify the
> dependency instead of 'select'.
>
> For dwc3 specify the dependency on USB_XHCI_PLATFORM in
> USB_DWC3_HOST and USB_DWC3_DUAL_ROLE. Also adjust the
> dependencies of USB_DWC3_CORE to make sure that at least one
> of USB_DWC3_HOST, USB_DWC3_GADGET or USB_DWC3_DUAL_ROLE can be
> selected.
>
> Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx>

Reviewed-by: Roger Quadros <rogerq@xxxxxxxxxx>

cheers,
-roger

> ---
>
> Changes in v16:
> - none
>
> Changes in v15:
> - adjusted dependencies of USB_DWC3_CORE to make sure it can only
> be enabled when at least one of USB_DWC3_HOST, USB_DWC3_GADGET
> or USB_DWC3_DUAL_ROLE is selectable
> - updated commit message
>
> Changes in v14:
> - none
>
> Changes in v13:
> - patch added to the series
>
> drivers/usb/cdns3/Kconfig | 2 +-
> drivers/usb/dwc3/Kconfig | 5 +++--
> drivers/usb/host/Kconfig | 4 ++--
> 3 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/usb/cdns3/Kconfig b/drivers/usb/cdns3/Kconfig
> index b98ca0a1352a..07e12f786d48 100644
> --- a/drivers/usb/cdns3/Kconfig
> +++ b/drivers/usb/cdns3/Kconfig
> @@ -1,7 +1,7 @@
> config USB_CDNS_SUPPORT
> tristate "Cadence USB Support"
> depends on USB_SUPPORT && (USB || USB_GADGET) && HAS_DMA
> - select USB_XHCI_PLATFORM if USB_XHCI_HCD
> + depends on !USB_XHCI_HCD || USB_XHCI_PLATFORM
> select USB_ROLE_SWITCH
> help
> Say Y here if your system has a Cadence USBSS or USBSSP
> diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
> index 66b1454c4db2..870f2251350a 100644
> --- a/drivers/usb/dwc3/Kconfig
> +++ b/drivers/usb/dwc3/Kconfig
> @@ -2,8 +2,7 @@
>
> config USB_DWC3
> tristate "DesignWare USB3 DRD Core Support"
> - depends on (USB || USB_GADGET) && HAS_DMA
> - select USB_XHCI_PLATFORM if USB_XHCI_HCD
> + depends on ((USB && USB_XHCI_PLATFORM) || USB_GADGET) && HAS_DMA
> select USB_ROLE_SWITCH if USB_DWC3_DUAL_ROLE
> help
> Say Y or M here if your system has a Dual Role SuperSpeed
> @@ -30,6 +29,7 @@ choice
> config USB_DWC3_HOST
> bool "Host only mode"
> depends on USB=y || USB=USB_DWC3
> + depends on USB_XHCI_PLATFORM
> help
> Select this when you want to use DWC3 in host mode only,
> thereby the gadget feature will be regressed.
> @@ -44,6 +44,7 @@ config USB_DWC3_GADGET
> config USB_DWC3_DUAL_ROLE
> bool "Dual Role mode"
> depends on ((USB=y || USB=USB_DWC3) && (USB_GADGET=y || USB_GADGET=USB_DWC3))
> + depends on USB_XHCI_PLATFORM
> depends on (EXTCON=y || EXTCON=USB_DWC3)
> help
> This is the default mode of working of DWC3 controller where
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index df9428f1dc5e..518c2312ef0c 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -80,7 +80,7 @@ config USB_XHCI_MTK
>
> config USB_XHCI_MVEBU
> tristate "xHCI support for Marvell Armada 375/38x/37xx"
> - select USB_XHCI_PLATFORM
> + depends on USB_XHCI_PLATFORM
> depends on HAS_IOMEM
> depends on ARCH_MVEBU || COMPILE_TEST
> help
> @@ -112,9 +112,9 @@ config USB_EHCI_BRCMSTB
> config USB_BRCMSTB
> tristate "Broadcom STB USB support"
> depends on (ARCH_BRCMSTB && PHY_BRCM_USB) || COMPILE_TEST
> + depends on !USB_XHCI_HCD || USB_XHCI_PLATFORM
> select USB_OHCI_HCD_PLATFORM if USB_OHCI_HCD
> select USB_EHCI_BRCMSTB if USB_EHCI_HCD
> - select USB_XHCI_PLATFORM if USB_XHCI_HCD
> help
> Enables support for XHCI, EHCI and OHCI host controllers
> found in Broadcom STB SoC's.
>