linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver
@ 2017-12-10 23:09 Dmitry Osipenko
  2017-12-10 23:10 ` [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig Dmitry Osipenko
  2017-12-11 10:02 ` [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Thierry Reding
  0 siblings, 2 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2017-12-10 23:09 UTC (permalink / raw)
  To: Felipe Balbi, Alan Stern, Greg Kroah-Hartman, Jonathan Hunter,
	Thierry Reding, Peter Chen
  Cc: linux-usb, linux-tegra, linux-kernel

Add Kconfig entry so that other drivers other than ehci-tegra
(like ChipIdea) could add Tegra's PHY to build dependencies.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/usb/host/Kconfig | 2 +-
 drivers/usb/phy/Kconfig  | 8 ++++++++
 drivers/usb/phy/Makefile | 2 +-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index b80a94e632af..f19072f1f519 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -226,7 +226,7 @@ config USB_EHCI_TEGRA
        tristate "NVIDIA Tegra HCD support"
        depends on ARCH_TEGRA
        select USB_EHCI_ROOT_HUB_TT
-       select USB_PHY
+	select USB_TEGRA_PHY
 	select USB_ULPI
 	select USB_ULPI_VIEWPORT
        help
diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
index 0f8ab981d572..2a50576e1a2a 100644
--- a/drivers/usb/phy/Kconfig
+++ b/drivers/usb/phy/Kconfig
@@ -159,6 +159,14 @@ config USB_MXS_PHY
 
 	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
 
+config USB_TEGRA_PHY
+	tristate "NVIDIA Tegra USB PHY Driver"
+	depends on ARCH_TEGRA
+	select USB_PHY
+	help
+	  This driver provides PHY support for the USB controllers found
+	  on NVIDIA Tegra SoC's.
+
 config USB_ULPI
 	bool "Generic ULPI Transceiver Driver"
 	depends on ARM || ARM64
diff --git a/drivers/usb/phy/Makefile b/drivers/usb/phy/Makefile
index 25e579fb92b8..df1d99010079 100644
--- a/drivers/usb/phy/Makefile
+++ b/drivers/usb/phy/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_AM335X_CONTROL_USB)	+= phy-am335x-control.o
 obj-$(CONFIG_AM335X_PHY_USB)		+= phy-am335x.o
 obj-$(CONFIG_OMAP_OTG)			+= phy-omap-otg.o
 obj-$(CONFIG_TWL6030_USB)		+= phy-twl6030-usb.o
-obj-$(CONFIG_USB_EHCI_TEGRA)		+= phy-tegra-usb.o
+obj-$(CONFIG_USB_TEGRA_PHY)		+= phy-tegra-usb.o
 obj-$(CONFIG_USB_GPIO_VBUS)		+= phy-gpio-vbus-usb.o
 obj-$(CONFIG_USB_ISP1301)		+= phy-isp1301.o
 obj-$(CONFIG_USB_MV_OTG)		+= phy-mv-usb.o
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig
  2017-12-10 23:09 [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Dmitry Osipenko
@ 2017-12-10 23:10 ` Dmitry Osipenko
  2017-12-11 10:04   ` Thierry Reding
  2017-12-11 10:02 ` [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Thierry Reding
  1 sibling, 1 reply; 8+ messages in thread
From: Dmitry Osipenko @ 2017-12-10 23:10 UTC (permalink / raw)
  To: Felipe Balbi, Alan Stern, Greg Kroah-Hartman, Jonathan Hunter,
	Thierry Reding, Peter Chen
  Cc: linux-usb, linux-tegra, linux-kernel

UDC driver won't probe without Tegra's PHY, hence select it in the
Kconfig.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/usb/chipidea/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
index 785f0ed037f7..2ef3b27ea72b 100644
--- a/drivers/usb/chipidea/Kconfig
+++ b/drivers/usb/chipidea/Kconfig
@@ -27,6 +27,7 @@ config USB_CHIPIDEA_PCI
 config USB_CHIPIDEA_UDC
 	bool "ChipIdea device controller"
 	depends on USB_GADGET
+	select USB_TEGRA_PHY if ARCH_TEGRA
 	help
 	  Say Y here to enable device controller functionality of the
 	  ChipIdea driver.
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver
  2017-12-10 23:09 [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Dmitry Osipenko
  2017-12-10 23:10 ` [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig Dmitry Osipenko
@ 2017-12-11 10:02 ` Thierry Reding
  2017-12-11 13:03   ` Dmitry Osipenko
  1 sibling, 1 reply; 8+ messages in thread
From: Thierry Reding @ 2017-12-11 10:02 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Felipe Balbi, Alan Stern, Greg Kroah-Hartman, Jonathan Hunter,
	Peter Chen, linux-usb, linux-tegra, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 784 bytes --]

On Mon, Dec 11, 2017 at 02:09:59AM +0300, Dmitry Osipenko wrote:
> Add Kconfig entry so that other drivers other than ehci-tegra
> (like ChipIdea) could add Tegra's PHY to build dependencies.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/usb/host/Kconfig | 2 +-
>  drivers/usb/phy/Kconfig  | 8 ++++++++
>  drivers/usb/phy/Makefile | 2 +-
>  3 files changed, 10 insertions(+), 2 deletions(-)

I don't think we actually build-depend on the PHY driver from the
ChipIdea driver. In the past, we've refrained from modelling runtime
dependencies using Kconfig because in some cases (such as this) it'll
include more than necessary (ChipIdea will automatically pull in the
USB PHY driver irrespective of whether or not Tegra is enabled).

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig
  2017-12-10 23:10 ` [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig Dmitry Osipenko
@ 2017-12-11 10:04   ` Thierry Reding
  2017-12-11 13:09     ` Dmitry Osipenko
  0 siblings, 1 reply; 8+ messages in thread
From: Thierry Reding @ 2017-12-11 10:04 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Felipe Balbi, Alan Stern, Greg Kroah-Hartman, Jonathan Hunter,
	Peter Chen, linux-usb, linux-tegra, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 892 bytes --]

On Mon, Dec 11, 2017 at 02:10:00AM +0300, Dmitry Osipenko wrote:
> UDC driver won't probe without Tegra's PHY, hence select it in the
> Kconfig.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/usb/chipidea/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
> index 785f0ed037f7..2ef3b27ea72b 100644
> --- a/drivers/usb/chipidea/Kconfig
> +++ b/drivers/usb/chipidea/Kconfig
> @@ -27,6 +27,7 @@ config USB_CHIPIDEA_PCI
>  config USB_CHIPIDEA_UDC
>  	bool "ChipIdea device controller"
>  	depends on USB_GADGET
> +	select USB_TEGRA_PHY if ARCH_TEGRA

This is kind of pointless given that USB_TEGRA_PHY originally was
automatically enabled if ARCH_TEGRA was enabled.

What do we gain by these two patches, other than maybe make the driver
buildable as a module?

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver
  2017-12-11 10:02 ` [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Thierry Reding
@ 2017-12-11 13:03   ` Dmitry Osipenko
  0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2017-12-11 13:03 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Felipe Balbi, Alan Stern, Greg Kroah-Hartman, Jonathan Hunter,
	Peter Chen, linux-usb, linux-tegra, linux-kernel

On 11.12.2017 13:02, Thierry Reding wrote:
> On Mon, Dec 11, 2017 at 02:09:59AM +0300, Dmitry Osipenko wrote:
>> Add Kconfig entry so that other drivers other than ehci-tegra
>> (like ChipIdea) could add Tegra's PHY to build dependencies.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  drivers/usb/host/Kconfig | 2 +-
>>  drivers/usb/phy/Kconfig  | 8 ++++++++
>>  drivers/usb/phy/Makefile | 2 +-
>>  3 files changed, 10 insertions(+), 2 deletions(-)
> 
> I don't think we actually build-depend on the PHY driver from the
> ChipIdea driver. In the past, we've refrained from modelling runtime
> dependencies using Kconfig because in some cases (such as this) it'll
> include more than necessary (ChipIdea will automatically pull in the
> USB PHY driver irrespective of whether or not Tegra is enabled).

Please take a closer look at the patch. Tegra PHY driver is only compiled if
ehci-tegra driver is compiled. So we need to decouple build dependency in order
fix it.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig
  2017-12-11 10:04   ` Thierry Reding
@ 2017-12-11 13:09     ` Dmitry Osipenko
  2017-12-12  2:54       ` Peter Chen
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitry Osipenko @ 2017-12-11 13:09 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Felipe Balbi, Alan Stern, Greg Kroah-Hartman, Jonathan Hunter,
	Peter Chen, linux-usb, linux-tegra, linux-kernel

On 11.12.2017 13:04, Thierry Reding wrote:
> On Mon, Dec 11, 2017 at 02:10:00AM +0300, Dmitry Osipenko wrote:
>> UDC driver won't probe without Tegra's PHY, hence select it in the
>> Kconfig.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  drivers/usb/chipidea/Kconfig | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
>> index 785f0ed037f7..2ef3b27ea72b 100644
>> --- a/drivers/usb/chipidea/Kconfig
>> +++ b/drivers/usb/chipidea/Kconfig
>> @@ -27,6 +27,7 @@ config USB_CHIPIDEA_PCI
>>  config USB_CHIPIDEA_UDC
>>  	bool "ChipIdea device controller"
>>  	depends on USB_GADGET
>> +	select USB_TEGRA_PHY if ARCH_TEGRA
> 
> This is kind of pointless given that USB_TEGRA_PHY originally was
> automatically enabled if ARCH_TEGRA was enabled.

Again, please take a closer look at the patches. USB_TEGRA_PHY was enabled if
USB_EHCI_TEGRA was and not ARCH_TEGRA.

> What do we gain by these two patches, other than maybe make the driver
> buildable as a module?

Firstly, tegra-phy is built only if ehci-tegra is built.

Secondly, I think we need to enforce Tegra PHY to be compiled as built-in if one
of ehci-tegra or chipidea drivers is built-in and the other is compiled as a module.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig
  2017-12-11 13:09     ` Dmitry Osipenko
@ 2017-12-12  2:54       ` Peter Chen
  2017-12-12 11:39         ` Dmitry Osipenko
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Chen @ 2017-12-12  2:54 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Thierry Reding, Felipe Balbi, Alan Stern, Greg Kroah-Hartman,
	Jonathan Hunter, Peter Chen, linux-usb, linux-tegra,
	linux-kernel

On Mon, Dec 11, 2017 at 04:09:44PM +0300, Dmitry Osipenko wrote:
> On 11.12.2017 13:04, Thierry Reding wrote:
> > On Mon, Dec 11, 2017 at 02:10:00AM +0300, Dmitry Osipenko wrote:
> >> UDC driver won't probe without Tegra's PHY, hence select it in the
> >> Kconfig.
> >>
> >> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> >> ---
> >>  drivers/usb/chipidea/Kconfig | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
> >> index 785f0ed037f7..2ef3b27ea72b 100644
> >> --- a/drivers/usb/chipidea/Kconfig
> >> +++ b/drivers/usb/chipidea/Kconfig
> >> @@ -27,6 +27,7 @@ config USB_CHIPIDEA_PCI
> >>  config USB_CHIPIDEA_UDC
> >>  	bool "ChipIdea device controller"
> >>  	depends on USB_GADGET
> >> +	select USB_TEGRA_PHY if ARCH_TEGRA
> > 
> > This is kind of pointless given that USB_TEGRA_PHY originally was
> > automatically enabled if ARCH_TEGRA was enabled.
> 
> Again, please take a closer look at the patches. USB_TEGRA_PHY was enabled if
> USB_EHCI_TEGRA was and not ARCH_TEGRA.
> 
> > What do we gain by these two patches, other than maybe make the driver
> > buildable as a module?
> 
> Firstly, tegra-phy is built only if ehci-tegra is built.
> 
> Secondly, I think we need to enforce Tegra PHY to be compiled as built-in if one
> of ehci-tegra or chipidea drivers is built-in and the other is compiled as a module.

You may not bind controller driver with PHY driver in Kconfig, we need
to make sure the controller driver has no build error if the PHY driver
is not select. And if the PHY driver is not loaded, the controller
driver should return -EPROBE_DEFER for it.

-- 

Best Regards,
Peter Chen

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig
  2017-12-12  2:54       ` Peter Chen
@ 2017-12-12 11:39         ` Dmitry Osipenko
  0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Osipenko @ 2017-12-12 11:39 UTC (permalink / raw)
  To: Peter Chen
  Cc: Thierry Reding, Felipe Balbi, Alan Stern, Greg Kroah-Hartman,
	Jonathan Hunter, Peter Chen, linux-usb, linux-tegra,
	linux-kernel

On 12.12.2017 05:54, Peter Chen wrote:
> On Mon, Dec 11, 2017 at 04:09:44PM +0300, Dmitry Osipenko wrote:
>> On 11.12.2017 13:04, Thierry Reding wrote:
>>> On Mon, Dec 11, 2017 at 02:10:00AM +0300, Dmitry Osipenko wrote:
>>>> UDC driver won't probe without Tegra's PHY, hence select it in the
>>>> Kconfig.
>>>>
>>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>>> ---
>>>>  drivers/usb/chipidea/Kconfig | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
>>>> index 785f0ed037f7..2ef3b27ea72b 100644
>>>> --- a/drivers/usb/chipidea/Kconfig
>>>> +++ b/drivers/usb/chipidea/Kconfig
>>>> @@ -27,6 +27,7 @@ config USB_CHIPIDEA_PCI
>>>>  config USB_CHIPIDEA_UDC
>>>>  	bool "ChipIdea device controller"
>>>>  	depends on USB_GADGET
>>>> +	select USB_TEGRA_PHY if ARCH_TEGRA
>>>
>>> This is kind of pointless given that USB_TEGRA_PHY originally was
>>> automatically enabled if ARCH_TEGRA was enabled.
>>
>> Again, please take a closer look at the patches. USB_TEGRA_PHY was enabled if
>> USB_EHCI_TEGRA was and not ARCH_TEGRA.
>>
>>> What do we gain by these two patches, other than maybe make the driver
>>> buildable as a module?
>>
>> Firstly, tegra-phy is built only if ehci-tegra is built.
>>
>> Secondly, I think we need to enforce Tegra PHY to be compiled as built-in if one
>> of ehci-tegra or chipidea drivers is built-in and the other is compiled as a module.
> 
> You may not bind controller driver with PHY driver in Kconfig, we need
> to make sure the controller driver has no build error if the PHY driver
> is not select. And if the PHY driver is not loaded, the controller
> driver should return -EPROBE_DEFER for it.

Okay, I'll drop the ChipIdea Kconfig patch and remove USB_TEGRA_PHY selection in
 USB_EHCI_TEGRA config entry in the next iteration of the patch. Also, I noticed
that USB_ULPI* selection should be moved from ehci-tegra to tegra-phy Kconfig entry.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-12-12 11:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-10 23:09 [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Dmitry Osipenko
2017-12-10 23:10 ` [PATCH v1 2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig Dmitry Osipenko
2017-12-11 10:04   ` Thierry Reding
2017-12-11 13:09     ` Dmitry Osipenko
2017-12-12  2:54       ` Peter Chen
2017-12-12 11:39         ` Dmitry Osipenko
2017-12-11 10:02 ` [PATCH v1 1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver Thierry Reding
2017-12-11 13:03   ` Dmitry Osipenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).