Re: [PATCH] usb: select NOP_USB_XCEIV by drivers that require it
From: Peter Chen
Date: Thu May 26 2016 - 23:46:45 EST
On Thu, May 26, 2016 at 07:25:23PM -0000, Michal Suchanek wrote:
> Hello,
>
> I was updating my config by make oldconfig for a while and noticed that my USB
> OTG controller is not working. Apparently it grew dependency on NOP_USB_XCEIV
> over time.
>
> Looking through defconfigs some have it included and some which seem in need of
> it don't.
>
> Since the dependency is not obvious I think it would be better to select it
> where possible.
>From Documentation/kbuild/kconfig-language.txt
In general use select only for non-visible symbols
(no prompts anywhere) and for symbols with no dependencies.
But NOP_USB_XCEIV is a visible symbol and can be chosen, besides,
NOP_USB_XCEIV has already selected USB_PHY. Using select may cause
dependency problem in future, so unless it is necessary, use it
as least as possible.
If you are using new code, and it adds new dependency code, it is
reasonable you may need to update your defconfig.
Peter
>
> Attaching a patch.
>
> Thanks
>
> Michal
>
> 8<--------------------------------------------------------------------------
> NOP_USB_XCEIV is non-obvious dependency for MUSB and other drivers.
>
> This is a virtual driver in the sense that there is no actual piece of
> hardware you can point at and say you did not include driver for this so
> it won't work.
>
> So just change all depends on it to select.
>
> Signed-off-by: Michal Suchanek <hramrach@xxxxxxxxx>
> ---
> drivers/usb/chipidea/Kconfig | 3 ++-
> drivers/usb/musb/Kconfig | 19 +++++++++++++------
> drivers/usb/phy/Kconfig | 2 ++
> 3 files changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
> index 3644a35..8d08ebd 100644
> --- a/drivers/usb/chipidea/Kconfig
> +++ b/drivers/usb/chipidea/Kconfig
> @@ -19,7 +19,8 @@ config USB_CHIPIDEA_OF
> config USB_CHIPIDEA_PCI
> tristate
> depends on PCI
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
> default USB_CHIPIDEA
>
> config USB_CHIPIDEA_UDC
> diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
> index 886526b..91717b9 100644
> --- a/drivers/usb/musb/Kconfig
> +++ b/drivers/usb/musb/Kconfig
> @@ -66,7 +66,8 @@ comment "Platform Glue Layer"
> config USB_MUSB_SUNXI
> tristate "Allwinner (sunxi)"
> depends on ARCH_SUNXI
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
> depends on PHY_SUN4I_USB
> depends on EXTCON
> depends on GENERIC_PHY
> @@ -75,13 +76,15 @@ config USB_MUSB_SUNXI
> config USB_MUSB_DAVINCI
> tristate "DaVinci"
> depends on ARCH_DAVINCI_DMx
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
> depends on BROKEN
>
> config USB_MUSB_DA8XX
> tristate "DA8xx/OMAP-L1x"
> depends on ARCH_DAVINCI_DA8XX
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
> depends on BROKEN
>
> config USB_MUSB_TUSB6010
> @@ -89,6 +92,7 @@ config USB_MUSB_TUSB6010
> depends on HAS_IOMEM
> depends on ARCH_OMAP2PLUS || COMPILE_TEST
> depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
> + # cannot select NOP_USB_XCEIV because of the dependency above
>
> config USB_MUSB_OMAP2PLUS
> tristate "OMAP2430 and onwards"
> @@ -99,7 +103,8 @@ config USB_MUSB_OMAP2PLUS
> config USB_MUSB_AM35X
> tristate "AM35x"
> depends on ARCH_OMAP
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
>
> config USB_MUSB_DSPS
> tristate "TI DSPS platforms"
> @@ -110,7 +115,8 @@ config USB_MUSB_DSPS
> config USB_MUSB_BLACKFIN
> tristate "Blackfin"
> depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
>
> config USB_MUSB_UX500
> tristate "Ux500 platforms"
> @@ -118,7 +124,8 @@ config USB_MUSB_UX500
>
> config USB_MUSB_JZ4740
> tristate "JZ4740"
> - depends on NOP_USB_XCEIV
> + select NOP_USB_XCEIV
> + select USB_PHY
> depends on MACH_JZ4740 || COMPILE_TEST
> depends on USB_MUSB_GADGET
> depends on USB_OTG_BLACKLIST_HUB
> diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
> index c690474..a0bdfd3 100644
> --- a/drivers/usb/phy/Kconfig
> +++ b/drivers/usb/phy/Kconfig
> @@ -57,6 +57,8 @@ config NOP_USB_XCEIV
> built-in with usb ip or which are autonomous and doesn't require any
> phy programming such as ISP1x04 etc.
>
> + Should be automatically selected by the relevant driver.
> +
> config AM335X_CONTROL_USB
> tristate
>
> --
> 2.8.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Best Regards,
Peter Chen