Re: [PATCH] usb: phy-am335x: clarify USB_COMMON dependency

From: Arnd Bergmann
Date: Wed Feb 03 2016 - 16:08:18 EST


On Wednesday 03 February 2016 19:54:02 Felipe Balbi wrote:
>
> hi,
>
> Bin Liu <b-liu@xxxxxx> writes:
> > On Wed, Jan 20, 2016 at 11:56:34AM +0100, Arnd Bergmann wrote:
> >> The phy-am335x driver accidentally selects 'USB_COMMON', which is
> >> not correct as that symbol should indicate whether USB host or
> >> target mode is enabled, but it might not:
> >>
> >> warning: (AM335X_PHY_USB) selects USB_COMMON which has unmet direct dependencies (USB_SUPPORT && (USB || USB_GADGET))
> >
> > Is it possible to have a .config which has either USB nor USB_GADGET
> > set but AM335X_PHY_USB is set to be in the situation as in the warning
> > above?
> >
> >>
> >> This changes the 'select' into 'depends on', as it should have
> >> been initially.
> >
> > Using 'depends on' causes AM335x_PHY_USB driver unable to built-in,
> > since USB_COMMON is an invisible option and its defualt is 'M'.
>
>
> yeah, USB_COMMON is supposed to be selected, not depended upon.


That means we should do something like the patch below?

Fine with me too, but maybe you can write the changelog for that,
as I don't know the background behind the logic.

Arnd

diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
index e7e117d5dbbe..df005f5a0e0c 100644
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -249,7 +249,8 @@ config PHY_SUN9I_USB
tristate "Allwinner sun9i SoC USB PHY driver"
depends on ARCH_SUNXI && HAS_IOMEM && OF
depends on RESET_CONTROLLER
- depends on USB_COMMON
+ depends on USB_SUPPORT
+ select USB_COMMON
select GENERIC_PHY
help
Enable this to support the transceiver that is part of Allwinner
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 8ed451dd651e..8689dcba5201 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -31,8 +31,6 @@ if USB_SUPPORT

config USB_COMMON
tristate
- default y
- depends on USB || USB_GADGET

config USB_ARCH_HAS_HCD
def_bool y
@@ -41,6 +39,7 @@ config USB_ARCH_HAS_HCD
config USB
tristate "Support for Host-side USB"
depends on USB_ARCH_HAS_HCD
+ select USB_COMMON
select NLS # for UTF-8 strings
---help---
Universal Serial Bus (USB) is a specification for a serial bus
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index af5d922a8f5d..2057add439f0 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -15,6 +15,7 @@

menuconfig USB_GADGET
tristate "USB Gadget Support"
+ select USB_COMMON
select NLS
help
USB is a master/slave protocol, organized with one master