diff mbox

usb: phy-am335x: clarify USB_COMMON dependency

Message ID 1749004.q1rSF7t8cz@wuerfel
State New
Headers show

Commit Message

Arnd Bergmann Jan. 20, 2016, 10:56 a.m. UTC
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))

This changes the 'select' into 'depends on', as it should have
been initially.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Fixes: 59f042f644c5 ("usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode")

Comments

Bin Liu Jan. 20, 2016, 6:08 p.m. UTC | #1
Hi,

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'.

Regards,
-Bin.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> Fixes: 59f042f644c5 ("usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode")

> 

> diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig

> index c6904742e2aa..29f063c59e1a 100644

> --- a/drivers/usb/phy/Kconfig

> +++ b/drivers/usb/phy/Kconfig

> @@ -63,10 +63,10 @@ config AM335X_CONTROL_USB

>  config AM335X_PHY_USB

>  	tristate "AM335x USB PHY Driver"

>  	depends on ARM || COMPILE_TEST

> +	depends on USB_COMMON

>  	select USB_PHY

>  	select AM335X_CONTROL_USB

>  	select NOP_USB_XCEIV

> -	select USB_COMMON

>  	help

>  	  This driver provides PHY support for that phy which part for the

>  	  AM335x SoC.

>
Felipe Balbi Feb. 3, 2016, 5:54 p.m. UTC | #2
hi,

Bin Liu <b-liu@ti.com> 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.

-- 
balbi
Arnd Bergmann Feb. 3, 2016, 9:08 p.m. UTC | #3
On Wednesday 03 February 2016 19:54:02 Felipe Balbi wrote:
> 

> hi,

> 

> Bin Liu <b-liu@ti.com> 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.

	Arnddiff --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

Felipe Balbi Feb. 3, 2016, 10:04 p.m. UTC | #4
Hi,

Arnd Bergmann <arnd@arndb.de> 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


looks great to me. Care to send it in proper patch form ?

-- 
balbi
diff mbox

Patch

diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
index c6904742e2aa..29f063c59e1a 100644
--- a/drivers/usb/phy/Kconfig
+++ b/drivers/usb/phy/Kconfig
@@ -63,10 +63,10 @@  config AM335X_CONTROL_USB
 config AM335X_PHY_USB
 	tristate "AM335x USB PHY Driver"
 	depends on ARM || COMPILE_TEST
+	depends on USB_COMMON
 	select USB_PHY
 	select AM335X_CONTROL_USB
 	select NOP_USB_XCEIV
-	select USB_COMMON
 	help
 	  This driver provides PHY support for that phy which part for the
 	  AM335x SoC.