[PATCH 1/2] gpio-vbus: support disabling D+ pullup on suspend

Alan Stern stern at rowland.harvard.edu
Wed Jun 22 11:02:27 EDT 2011


On Wed, 22 Jun 2011, Felipe Balbi wrote:

> > In fact, something like this is _necessary_ for all UDC/PHY drivers
> > unless the device can guarantee that it will automatically wake up from
> > suspend in time to service a USB packet (note that the window for
> > responding to a packet is only a few microseconds).  Otherwise the
> > device would appear to the host to be unresponsive and broken -- better
> > to do a clean disconnect.
> > 
> > If suspending the device while it is in use would cause problems ...  
> > then don't suspend it when it is in use!
> 
> I second your thoughts, but today we don't have enough infrastructure to
> communicate between PHY and Link, so a clean solution isn't possible,
> right ?
> 
> Should we block this patch due to that ?

No, the patch is appropriate.

We don't need better communication.  If g_mass_storage (for example)  
knows that the device is in use, it can block suspends by returning
-EBUSY from its own suspend callback.  The UDC driver doesn't need to
worry about these matters; it should assume that such things have
already been handled elsewhere.  That's what Dmitry meant when he was
talking about a "higher level driver" -- maybe "lower level" would have
been a better choice of words.  :-)

Until recently, ordering of the suspend callbacks didn't present any 
problem.  The gadget device was a child of the UDC device and therefore 
its suspend callback would always be invoked first.

With the new UDC framework, I don't know if this is true any more.  
It's something to consider.

Alan Stern




More information about the linux-arm-kernel mailing list