* [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON @ 2016-09-12 15:36 Arnd Bergmann 2016-09-13 1:48 ` Peter Chen 0 siblings, 1 reply; 7+ messages in thread From: Arnd Bergmann @ 2016-09-12 15:36 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Arnd Bergmann, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel Moving the CONFIG_USB_ULPI_BUS option to the top-level Kconfig file means that we can enable it without any of the other USB support, leading to a build error because Kbuild never enters the drivers/usb/common/ directory without CONFIG_USB_COMMON: ERROR: "ulpi_unregister_driver" [drivers/phy/phy-tusb1210.ko] undefined! ERROR: "__ulpi_register_driver" [drivers/phy/phy-tusb1210.ko] undefined! ERROR: "ulpi_write" [drivers/phy/phy-tusb1210.ko] undefined! This adds a 'select USB_COMMON' for the symbol, similar to what we have for related options. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: ad764c49f65a ("usb: Kconfig: move ulpi bus support out of host") --- drivers/usb/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index 6dfa10af7185..989c6208678f 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -162,6 +162,7 @@ config USB_LED_TRIG config USB_ULPI_BUS tristate "USB ULPI PHY interface support" + select USB_COMMON help UTMI+ Low Pin Interface (ULPI) is specification for a commonly used USB 2.0 PHY interface. The ULPI specification defines a standard set -- 2.9.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON 2016-09-12 15:36 [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON Arnd Bergmann @ 2016-09-13 1:48 ` Peter Chen 2016-09-13 7:04 ` Arnd Bergmann 0 siblings, 1 reply; 7+ messages in thread From: Peter Chen @ 2016-09-13 1:48 UTC (permalink / raw) To: Arnd Bergmann Cc: Greg Kroah-Hartman, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel On Mon, Sep 12, 2016 at 05:36:23PM +0200, Arnd Bergmann wrote: > Moving the CONFIG_USB_ULPI_BUS option to the top-level Kconfig file > means that we can enable it without any of the other USB support, > leading to a build error because Kbuild never enters the > drivers/usb/common/ directory without CONFIG_USB_COMMON: > > ERROR: "ulpi_unregister_driver" [drivers/phy/phy-tusb1210.ko] undefined! > ERROR: "__ulpi_register_driver" [drivers/phy/phy-tusb1210.ko] undefined! > ERROR: "ulpi_write" [drivers/phy/phy-tusb1210.ko] undefined! > Thanks, Arnd. I have submitted the fix. https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=6406c3d226374c28d452b11db3b5ac241ce26191 -- Best Regards, Peter Chen ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON 2016-09-13 1:48 ` Peter Chen @ 2016-09-13 7:04 ` Arnd Bergmann 2016-09-13 7:19 ` Peter Chen 0 siblings, 1 reply; 7+ messages in thread From: Arnd Bergmann @ 2016-09-13 7:04 UTC (permalink / raw) To: Peter Chen Cc: Greg Kroah-Hartman, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel On Tuesday, September 13, 2016 9:48:55 AM CEST Peter Chen wrote: > On Mon, Sep 12, 2016 at 05:36:23PM +0200, Arnd Bergmann wrote: > > Moving the CONFIG_USB_ULPI_BUS option to the top-level Kconfig file > > means that we can enable it without any of the other USB support, > > leading to a build error because Kbuild never enters the > > drivers/usb/common/ directory without CONFIG_USB_COMMON: > > > > ERROR: "ulpi_unregister_driver" [drivers/phy/phy-tusb1210.ko] undefined! > > ERROR: "__ulpi_register_driver" [drivers/phy/phy-tusb1210.ko] undefined! > > ERROR: "ulpi_write" [drivers/phy/phy-tusb1210.ko] undefined! > > > > Thanks, Arnd. I have submitted the fix. > > https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=6406c3d226374c28d452b11db3b5ac241ce26191 I see you used 'depends on USB_COMMON' though instead of 'select USB_COMMON'. This seems inconsistent with how we handle the other places after the patch I did earlier this year [see below]. It probably works fine for now, but having a mix of 'depends on' and 'select' can be confusing for users as well as create dependency loops that break the build. Arnd commit badf6d47f8a93098c6e05fdeb735b44b61877451 Author: Arnd Bergmann <arnd@arndb.de> Date: Wed Mar 23 17:45:08 2016 +0100 usb: common: rework CONFIG_USB_COMMON logic The phy-am335x driver selects 'USB_COMMON', but all other drivers use 'depends on' for that symbol, and it depends on USB || USB_GADGET itself, which causes a Kconfig warning: warning: (AM335X_PHY_USB) selects USB_COMMON which has unmet direct dependencies (USB_SUPPORT && (USB || USB_GADGET)) As suggested by Felipe Balbi, this turns the logic around, and makes 'USB_COMMON' selected by everything else that needs it, so we can remove the dependencies. Fixes: 59f042f644c5 ("usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Felipe Balbi <balbi@kernel.org> Reviewed-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index 26566db09de0..e92b97cd6056 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -250,7 +250,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 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON 2016-09-13 7:04 ` Arnd Bergmann @ 2016-09-13 7:19 ` Peter Chen 2016-09-13 7:36 ` Arnd Bergmann 0 siblings, 1 reply; 7+ messages in thread From: Peter Chen @ 2016-09-13 7:19 UTC (permalink / raw) To: Arnd Bergmann Cc: Greg Kroah-Hartman, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel On Tue, Sep 13, 2016 at 09:04:08AM +0200, Arnd Bergmann wrote: > On Tuesday, September 13, 2016 9:48:55 AM CEST Peter Chen wrote: > > On Mon, Sep 12, 2016 at 05:36:23PM +0200, Arnd Bergmann wrote: > > > Moving the CONFIG_USB_ULPI_BUS option to the top-level Kconfig file > > > means that we can enable it without any of the other USB support, > > > leading to a build error because Kbuild never enters the > > > drivers/usb/common/ directory without CONFIG_USB_COMMON: > > > > > > ERROR: "ulpi_unregister_driver" [drivers/phy/phy-tusb1210.ko] undefined! > > > ERROR: "__ulpi_register_driver" [drivers/phy/phy-tusb1210.ko] undefined! > > > ERROR: "ulpi_write" [drivers/phy/phy-tusb1210.ko] undefined! > > > > > > > Thanks, Arnd. I have submitted the fix. > > > > https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/?h=usb-next&id=6406c3d226374c28d452b11db3b5ac241ce26191 > > I see you used 'depends on USB_COMMON' though instead of 'select USB_COMMON'. > > This seems inconsistent with how we handle the other places after the patch > I did earlier this year [see below]. > > It probably works fine for now, but having a mix of 'depends on' and 'select' > can be confusing for users as well as create dependency loops that break > the build. > > Arnd I just see below Kconfig entry at the same Kconfig (drivers/usb/Kconfig), and forget your changes. config USB_LED_TRIG bool "USB LED Triggers" depends on LEDS_CLASS && USB_COMMON && LEDS_TRIGGERS help This option adds LED triggers for USB host and/or gadget activity. Say Y here if you are working on a system with led-class supported LEDs and you want to use them as activity indicators for USB host or gadget. Just grep it, some Kconfig still uses depends on for USB_COMMON, let me change it together. b29397@b29397-desktop:~/work/projects/usb$ find . -name Kconfig | xargs grep -nr "USB_COMMON" ./drivers/phy/Kconfig:274: select USB_COMMON ./drivers/usb/phy/Kconfig:72: select USB_COMMON ./drivers/usb/Kconfig:32:config USB_COMMON ./drivers/usb/Kconfig:42: select USB_COMMON ./drivers/usb/Kconfig:155: depends on LEDS_CLASS && USB_COMMON && LEDS_TRIGGERS ./drivers/usb/gadget/Kconfig:18: select USB_COMMON ./drivers/usb/usbip/Kconfig:3: depends on USB_COMMON && NET Peter > > commit badf6d47f8a93098c6e05fdeb735b44b61877451 > Author: Arnd Bergmann <arnd@arndb.de> > Date: Wed Mar 23 17:45:08 2016 +0100 > > usb: common: rework CONFIG_USB_COMMON logic > > The phy-am335x driver selects 'USB_COMMON', but all other drivers > use 'depends on' for that symbol, and it depends on USB || USB_GADGET > itself, which causes a Kconfig warning: > > warning: (AM335X_PHY_USB) selects USB_COMMON which has unmet direct dependencies (USB_SUPPORT && (USB || USB_GADGET)) > > As suggested by Felipe Balbi, this turns the logic around, and makes > 'USB_COMMON' selected by everything else that needs it, so we can > remove the dependencies. > > Fixes: 59f042f644c5 ("usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Acked-by: Felipe Balbi <balbi@kernel.org> > Reviewed-by: Peter Chen <peter.chen@nxp.com> > Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> > > diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig > index 26566db09de0..e92b97cd6056 100644 > --- a/drivers/phy/Kconfig > +++ b/drivers/phy/Kconfig > @@ -250,7 +250,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 > -- Best Regards, Peter Chen ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON 2016-09-13 7:19 ` Peter Chen @ 2016-09-13 7:36 ` Arnd Bergmann 2016-09-13 8:50 ` Peter Chen 0 siblings, 1 reply; 7+ messages in thread From: Arnd Bergmann @ 2016-09-13 7:36 UTC (permalink / raw) To: Peter Chen Cc: Greg Kroah-Hartman, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel On Tuesday, September 13, 2016 3:19:42 PM CEST Peter Chen wrote: > > I just see below Kconfig entry at the same Kconfig > (drivers/usb/Kconfig), and forget your changes. > > config USB_LED_TRIG > bool "USB LED Triggers" > depends on LEDS_CLASS && USB_COMMON && LEDS_TRIGGERS > help > This option adds LED triggers for USB host and/or gadget activity. > > Say Y here if you are working on a system with led-class supported > LEDs and you want to use them as activity indicators for USB host or > gadget. > > Just grep it, some Kconfig still uses depends on for USB_COMMON, let me > change it together. > I suspect this one above should instead depend on "USB_SUPPORT". Arnd ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON 2016-09-13 7:36 ` Arnd Bergmann @ 2016-09-13 8:50 ` Peter Chen 2016-09-13 10:32 ` Arnd Bergmann 0 siblings, 1 reply; 7+ messages in thread From: Peter Chen @ 2016-09-13 8:50 UTC (permalink / raw) To: Arnd Bergmann Cc: Greg Kroah-Hartman, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel On Tue, Sep 13, 2016 at 09:36:39AM +0200, Arnd Bergmann wrote: > On Tuesday, September 13, 2016 3:19:42 PM CEST Peter Chen wrote: > > > > I just see below Kconfig entry at the same Kconfig > > (drivers/usb/Kconfig), and forget your changes. > > > > config USB_LED_TRIG > > bool "USB LED Triggers" > > depends on LEDS_CLASS && USB_COMMON && LEDS_TRIGGERS > > help > > This option adds LED triggers for USB host and/or gadget activity. > > > > Say Y here if you are working on a system with led-class supported > > LEDs and you want to use them as activity indicators for USB host or > > gadget. > > > > Just grep it, some Kconfig still uses depends on for USB_COMMON, let me > > change it together. > > > > I suspect this one above should instead depend on "USB_SUPPORT". > No, it is embraced by "if USB_SUPPORT", so we don't need to add it additionally. Even USB_SUPPORT is chosen, the USB_COMMON may still not be chosen, so we need let USB_LET_TRIG select USB_COMMON explicitly. -- Best Regards, Peter Chen ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON 2016-09-13 8:50 ` Peter Chen @ 2016-09-13 10:32 ` Arnd Bergmann 0 siblings, 0 replies; 7+ messages in thread From: Arnd Bergmann @ 2016-09-13 10:32 UTC (permalink / raw) To: Peter Chen Cc: Greg Kroah-Hartman, Peter Chen, Felipe Balbi, Heikki Krogerus, linux-usb, linux-kernel On Tuesday, September 13, 2016 4:50:05 PM CEST Peter Chen wrote: > On Tue, Sep 13, 2016 at 09:36:39AM +0200, Arnd Bergmann wrote: > > On Tuesday, September 13, 2016 3:19:42 PM CEST Peter Chen wrote: > > > > > > I just see below Kconfig entry at the same Kconfig > > > (drivers/usb/Kconfig), and forget your changes. > > > > > > config USB_LED_TRIG > > > bool "USB LED Triggers" > > > depends on LEDS_CLASS && USB_COMMON && LEDS_TRIGGERS > > > help > > > This option adds LED triggers for USB host and/or gadget activity. > > > > > > Say Y here if you are working on a system with led-class supported > > > LEDs and you want to use them as activity indicators for USB host or > > > gadget. > > > > > > Just grep it, some Kconfig still uses depends on for USB_COMMON, let me > > > change it together. > > > > > > > I suspect this one above should instead depend on "USB_SUPPORT". > > > > No, it is embraced by "if USB_SUPPORT", so we don't need to add it > additionally. Right, makes sense. > Even USB_SUPPORT is chosen, the USB_COMMON may still > not be chosen, so we need let USB_LET_TRIG select USB_COMMON > explicitly. My thought was that all users that could possibly call the USB_LED_TRIG interfaces already rely on USB_COMMON to be present. There is probably no real downside in having the 'select USB_COMMON', but it shouldn't actually be needed. It would be somewhat unusual though to enable USB_LED_TRIG and not build the file because we don't enter the directory, so maybe it's better to have it after all. Arnd ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-09-13 10:33 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-09-12 15:36 [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON Arnd Bergmann 2016-09-13 1:48 ` Peter Chen 2016-09-13 7:04 ` Arnd Bergmann 2016-09-13 7:19 ` Peter Chen 2016-09-13 7:36 ` Arnd Bergmann 2016-09-13 8:50 ` Peter Chen 2016-09-13 10:32 ` Arnd Bergmann
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.