Re: [PATCH] usb: misc: usb3503: Force late initialization

Greg KH
2013-08-14T19:47:48Z

On Wed, Aug 14, 2013 at 08:39:50PM +0100, Mark Brown wrote:
> > > We can't just treat it as a PHY (which is the obvious workaroud) since
> > > we do also need to use the built
> > > in PHY in the SoC.
>
> > There has to be some type of resource that it can grab, as obviously
> > it's failing to work properly unless that resource is present. Just
>
> That resource is the USB bus I think (I suspect the issue is that the
> fact that power is always present confuses the USB enumeration protocol
> if the device gets brought out of reset prior to the bus being live).

Which USB bus is it? How is this device even probed before the device
is found by the bus?

Ah crud, this is an i2c driver, not a USB driver, no wonder I'm
confused...

You are going to have to find some kind of relationship here, not just
by linker order, otherwise you are going to have problems later on.

> The normal way to grab that resource would be to make the device a
> device on the bus but currently the only way USB gets children is via
> USB enumeration.

Perhaps make this device a child of the USB controller in the DT
description?

> > messing with the init order isn't going to solve any problem if the
> > driver is built as a module, as nothing guarantees module load order.
>
> Right, and I did discuss that with Tushar elsehwere prior to this being
> posted here. We figured given how cheap and non-invasive the workaround
> is it was worth just doing it.

Nope, sorry, I'm not going to take it.

> > So this patch wouldn't really solve the problem, only paper over it for
> > one type of configuration (i.e. driver built into the system), right?
>
> Yes, though realistically nobody actually does that for the relevant
> systems and if they do it's always possible to control the module load
> order if you really want to.

But you aren't telling anyone that is what is needed. How would anyone
know that they need to control the load order?

thanks,

greg k-h