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

Mark Brown
2013-08-14T19:39:57Z

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

On Wed, Aug 14, 2013 at 12:15:13PM -0700, Greg KH wrote:
> On Wed, Aug 14, 2013 at 08:04:10PM +0100, Mark Brown wrote:

> > In order for deferred probing to help the device would need to acquire
> > some resource from the parent USB controller once active, allowing it to
> > defer when it fails to get that resource. Currently there's nothing
> > there for that and it's not clear that's sane and sensible (it'd be more
> > obvious for it to be a child of the USB controller since that's what it
> > really is).

> Then why not do that?

That's why I started the thread about registering devices prior to
learning that they exist; it's a non-trivial bit of work at least from
the everyone agreeing point of view.

> > 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).
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.

> 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.

> 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.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]