Felipe Balbi <balbi@xxxxxx> writes: > pxa27x disconnects pullups on suspend but doesn't > notify the gadget driver about it, so gadget driver > can't disable the endpoints it was using. > > This causes problems on resume because gadget core > will think endpoints are still enabled and just > ignore the following usb_ep_enable(). > > Fix this problem by calling > gadget_driver->disconnect(). Thanks for doing this for me. > @@ -2535,6 +2535,7 @@ static int pxa_udc_suspend(struct platform_device *_dev, pm_message_t state) > udc_disable(udc); > udc->pullup_resume = udc->pullup_on; > dplus_pullup(udc, 0); > + udc->driver->disconnect(&udc->gadget); If no driver is bound, this will segfault, right ? Shouldn't an "if (udc->driver)" protect this line ? Cheers. -- Robert -- 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