From: Roger Quadros <rogerq@ti.com>
To: Felipe Balbi <balbi@kernel.org>, tony@atomide.com
Cc: stern@rowland.harvard.edu, sre@kernel.org, peter.chen@nxp.com,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-omap@vger.kernel.org
Subject: Re: [PATCH] usb: host: Allow EHCI_OMAP to be built-in when USB_GADGET is 'm'
Date: Fri, 1 Jul 2016 13:15:10 +0300 [thread overview]
Message-ID: <577642AE.7010907@ti.com> (raw)
In-Reply-To: <8737ntofu0.fsf@linux.intel.com>
On 01/07/16 12:41, Felipe Balbi wrote:
>
> Hi,
>
> Roger Quadros <rogerq@ti.com> writes:
>>>>>>>> NOP_USB_XCEIV is used not only by gadget drivers but by
>>>>>>>> host drivers as well e.g. EHCI_OMAP.
>>>>>>>>
>>>>>>>> commit 5a8d651a2bde ("usb: gadget: move gadget API functions to udc-core")
>>>>>>>> made it so that NOP_USB_XCEIV can't be built-in if USB_GADGET is 'm'.
>>>>>>>> But this prevents EHCI_OMAP to be built-in if USB_GADGET is 'm'.
>>>>>>>>
>>>>>>>> Fix this undesired behaviour by moving usb_gadget_vbus_connect/disconnect()
>>>>>>>> to usb/gadget.h so that NOP_USB_XCEIV has no build dependency
>>>>>>>> on USB_GADGET.
>>>>>>>>
>>>>>>>> Retain the original Kconfig behaviour i.e. NOP_USB_XCEIV is selected
>>>>>>>> by drivers that need it.
>>>>>>>
>>>>>>> no, this is the wrong way to fix this. NOP _has_ a dependency on the
>>>>>>> Gadget API if it calls Gadget API functions. Dependencies are proper.
>>>>>>>
>>>>>>> Maybe the reason for the problem is that we ended up adding far too much
>>>>>>> code to phy-generic.c itself. Maybe it shouldn't know about clks and
>>>>>>> interrupts. The original idea of that driver was to simply satisfy a
>>>>>>> requirement to have a valid transceiver by some platforms. Maybe we
>>>>>>> should fix that instead. Moving functions around to workaround a problem
>>>>>>> is not the way to go, sorry.
>>>>>>>
>>>>>> OK but something that was working all these years is broken by your
>>>>>> patch.
>>>>>> Do you mind fixing it please? Or at least let me know how you want to
>>>>>> get it fixed.
>>>>>
>>>>> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
>>>>> index 2e710a4cca52..89fd095ca33d 100644
>>>>> --- a/drivers/usb/host/Kconfig
>>>>> +++ b/drivers/usb/host/Kconfig
>>>>> @@ -180,7 +180,7 @@ config USB_EHCI_MXC
>>>>> config USB_EHCI_HCD_OMAP
>>>>> tristate "EHCI support for OMAP3 and later chips"
>>>>> depends on ARCH_OMAP
>>>>> - depends on NOP_USB_XCEIV
>>>>> + depends on USB_PHY
>>>>> default y
>>>>> ---help---
>>>>> Enables support for the on-chip EHCI controller on
>>>>>
>>>>>
>>>> This doesn't fix the real problem. i.e. we can't have NFS root on pandaboard
>>>> and omap5_uevm because network device is on USB EHCI, unless we have
>>>> both USB_GADGET and NOP_USB_XCEVI built-in, which is not really that
>>>> desirable.
>>>
>>> Well, NOP calls a symbol that belongs to the Gadget API. So NOP cannot
>>> be built-in if gadget API is a module. Satisfy the dependencies and
>>> everything will work for you.
>>>
>>> Don't get me wrong, I see what you mean; but you _are_ relying in a
>>> driver that calls into the Gadget API. Consider if it was the other way
>>> around: say NOP was calling something from usbcore for whatever reason
>>> and MUSB depended on NOP. You wouldn't have MUSB built-in unless NOP and
>>> usbcore were also built-in, right?
>>>
>> I agree with you. As far as EHCI_OMAP is concerned we're only interested
>> in configuring the PHY clocks and issuing a GPIO reset.
>> As of now because of dependency issues with GADGET, NOP_USB_XCEIV doesn't
>> seem to be the right place. I'm OK with using some other driver
>> that doesn't have such dependency, even if it breaks DT compatibility with
>> some OMAP boards. Or I'll just let EHCI_OMAP do it all by itself.
>>
>> Unless Tony has any objections.
>
> I don't have memory of why EHCI-omap is using PHY, actually. Is it
> really resetting a PHY?
>
on omap3-beagle, omap4-panda and omap5-uevm, we have an external USB PHY
for the EHCI host. That PHY has it's reset line tied to a GPIO and CLK line
tied to one of the SoC clock pins.
cheers,
-roger
prev parent reply other threads:[~2016-07-01 10:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-30 8:40 [PATCH] usb: host: Allow EHCI_OMAP to be built-in when USB_GADGET is 'm' Roger Quadros
2016-06-30 10:14 ` Felipe Balbi
2016-06-30 13:59 ` Roger Quadros
[not found] ` <577525BF.3060509-l0cyMroinI0@public.gmane.org>
2016-07-01 7:57 ` Felipe Balbi
2016-07-01 8:10 ` Roger Quadros
2016-07-01 8:15 ` Felipe Balbi
2016-07-01 8:28 ` Roger Quadros
2016-07-01 9:41 ` Felipe Balbi
2016-07-01 10:15 ` Roger Quadros [this message]
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=577642AE.7010907@ti.com \
--to=rogerq@ti.com \
--cc=balbi@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=peter.chen@nxp.com \
--cc=sre@kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=tony@atomide.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 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).