Subject: [PATCH v3 04/10] usb: dwc3: use quirks to know if a particualr platform doesn't have PHY

From: [email-masked] (Heikki Krogerus)
Date: Mon, 9 Dec 2013 11:26:04 +0200

Hi,

On Mon, Dec 09, 2013 at 12:43:37PM +0530, Kishon Vijay Abraham I wrote:
> On Thursday 05 December 2013 01:28 PM, Heikki Krogerus wrote:
> >On Thu, Dec 05, 2013 at 12:04:46PM +0530, Kishon Vijay Abraham I wrote:
> >>On Wednesday 04 December 2013 08:10 PM, Heikki Krogerus wrote:
> >>>On Mon, Nov 25, 2013 at 03:31:24PM +0530, Kishon Vijay Abraham I wrote:
> >>>>There can be systems which does not have an external phy, so get
> >>>>phy only if no quirks are added that indicates the PHY is not present.
> >>>>Introduced two quirk flags to indicate the *absence* of usb2 phy and
> >>>>usb3 phy. Also remove checking if return value is -ENXIO since it's now
> >>>>changed to always enable usb_phy layer.
> >>>
> >>>Can you guys explain why is something like this needed? Like with
> >>>clocks and gpios, the device drivers shouldn't need to care any more
> >>>if the platform has the phys or not. -ENODEV tells you your platform
> >>
> >>Shouldn't we report if a particular platform needs a PHY and not able to get
> >>it. How will a user know if a particular controller is not working because it's
> >>not able to get and initialize the PHYs? Don't you think in such cases it's
> >>better to fail (and return from probe) because the controller will not work
> >>anyway without the PHY?
> >
> >My point is that you do not need to separately tell this to the driver
> >like you do with the quirks (if you did, then you would need to fix
> >your framework and not hack the drivers).
> >
> >Like I said, ENODEV tells you that there is no phy on this platform
> >for you, allowing you to safely continue. If your phy driver is not
> >loaded, the framework already returns EPROBE_DEFER, right. Any other
> 
> right. but that doesn't consider broken dt data. With quirks we'll
> able to tell if a controller in a particular platform has PHY or not
> without depending on the dt data.

Broken dt data? What kind of scenario are you thinking here? Do you
mean case where the dt does not describe the phy on a platform that
depends on it? Shouldn't that problem be fixed in the dt and not
hacked in the drivers? Or are you thinking about something else?

Is there a case where something like that is actually happening?

Br,

-- 
heikki