On 06.07.2011 11:20, Felipe Balbi wrote:
hi,
On Wed, Jul 06, 2011 at 12:58:48AM +0400, Dmitry Eremin-Solenikov wrote:
On 7/6/11, Robert Jarzmik<robert.jarzmik@xxxxxxx> wrote:
On 07/05/2011 03:08 PM, Dmitry Eremin-Solenikov wrote:
Now as all drivers were converted to using gpio-vbus, drop gpio-pullup
handling from pxa UDC drivers, thus simplifying them a bit.
Is this patch compliant with USB 2 specification regarding maximum time
between pullup triggering and UDC ready to answer the "RESET" packet and
be assigned an address ?
This is the sequence I'm worried about :
(1) The gpio-vbus is loaded
(2) The pxa27x_udc is loaded
(3) USB cable is plugged
=> VBUS is sensed
(4) gpio-vbus pulls up the D+ (Dmitry, is that right ?)
(5) the host waits for UDC to settle (100 ms ?)
(5) set address packet(s) are sent from host to UDC
(6) UDC is not enabled, as no gadget is registered
=> UDC doesn't answer
=> usb host cannot assign it an address
(7) a gadget is loaded (g_ether for example)
=> UDC is enabled, but too late
Alan, Gregh, could you confirm point (5) about a maximum time between D+
line activation and UDC duty to repond to "set address" packets, as well
as the consequence of point (6) where the usb device is rejected because
no address could be assigned ?
Dmitry, could you confirm the the D+ pullup is done at point (4) ?
No, I can't confirm this. IIUC, evrything happens in abit different way:
(4) trancseiver notifies udc about VBUS sense
(5) a gadget is loaded (g_ether for example)
(6) gadget asks udc to enale pullup
(7) udc tells gpio_vbus to enable pullup.
yeah, with udc-core.c we only enable pullup after gadget driver is
loaded.
290 ret = bind(udc->gadget);
291 if (ret)
292 goto err1;
293 ret = usb_gadget_udc_start(udc->gadget, driver);
294 if (ret) {
295 driver->unbind(udc->gadget);
296 goto err1;
297 }
298 usb_gadget_connect(udc->gadget);
but this is the new style bind() and many UDCs still need to be
converted.
This was working before the udc-core. If it doesn't work now for
unconverted drivers (PXA e.g.) that's really a huge regression!
--
With best wishes
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html