All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Chen <hzpeterchen@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Peter Chen <peter.chen@nxp.com>, Felipe Balbi <balbi@kernel.org>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] usb: Kconfig: make USB_ULPI_BUS select USB_COMMON
Date: Tue, 13 Sep 2016 15:19:42 +0800	[thread overview]
Message-ID: <20160913071942.GC30425@b29397-desktop> (raw)
In-Reply-To: <2868310.g9cFv2gbYX@wuerfel>

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

  reply	other threads:[~2016-09-13  7:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2016-09-13  7:36       ` Arnd Bergmann
2016-09-13  8:50         ` Peter Chen
2016-09-13 10:32           ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160913071942.GC30425@b29397-desktop \
    --to=hzpeterchen@gmail.com \
    --cc=arnd@arndb.de \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=peter.chen@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.