[v1,2/2] usb: chipidea: tegra: Select Tegra's PHY in Kconfig

Message ID d6b64530412955aba1284886b3f5f74e42d776da.1512947332.git.digetx@gmail.com
State New
Headers show
Series
  • [v1,1/2] usb: phy: Add Kconfig entry for Tegra's PHY driver
Related show

Commit Message

Dmitry Osipenko Dec. 10, 2017, 11:10 p.m.
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(+)

Comments

Thierry Reding Dec. 11, 2017, 10:04 a.m. | #1
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
Dmitry Osipenko Dec. 11, 2017, 1:09 p.m. | #2
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Peter Chen Dec. 12, 2017, 2:54 a.m. | #3
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.
Dmitry Osipenko Dec. 12, 2017, 11:39 a.m. | #4
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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.