> From: Peter Chen [mailto:peter.chen@xxxxxxxxxxxxx] > Sent: Sunday, August 17, 2014 9:14 PM > > Except for chipidea driver, all other udc drivers will tell the > gadget driver that they are ready to pullup dp at udc_start, it > is the default behaviour. > > The chipidea driver is ready to pullup dp when the vbus is there, > and isn't ready to pullup dp when the vbus is not there. Other > udc drivers which should not pull up when vbus is not there should > change like chipidea does to pass the Back-Voltage Testing at > www.usb.org/developers/docs/USB-IFTestProc1_3.pdf. > > Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx> > --- > drivers/usb/chipidea/udc.c | 9 ++++----- > drivers/usb/dwc2/gadget.c | 2 ++ > drivers/usb/dwc3/gadget.c | 2 ++ > drivers/usb/gadget/udc/amd5536udc.c | 1 + > drivers/usb/gadget/udc/atmel_usba_udc.c | 2 ++ > drivers/usb/gadget/udc/bcm63xx_udc.c | 2 ++ > drivers/usb/gadget/udc/dummy_hcd.c | 1 + > drivers/usb/gadget/udc/fotg210-udc.c | 1 + > drivers/usb/gadget/udc/fsl_qe_udc.c | 1 + > drivers/usb/gadget/udc/fsl_udc_core.c | 2 ++ > drivers/usb/gadget/udc/fusb300_udc.c | 1 + > drivers/usb/gadget/udc/gr_udc.c | 2 ++ > drivers/usb/gadget/udc/lpc32xx_udc.c | 2 ++ > drivers/usb/gadget/udc/m66592-udc.c | 2 ++ > drivers/usb/gadget/udc/mv_u3d_core.c | 1 + > drivers/usb/gadget/udc/mv_udc_core.c | 2 ++ > drivers/usb/gadget/udc/net2272.c | 1 + > drivers/usb/gadget/udc/net2280.c | 1 + > drivers/usb/gadget/udc/omap_udc.c | 1 + > drivers/usb/gadget/udc/pch_udc.c | 1 + > drivers/usb/gadget/udc/pxa25x_udc.c | 1 + > drivers/usb/gadget/udc/pxa27x_udc.c | 1 + > drivers/usb/gadget/udc/r8a66597-udc.c | 1 + > drivers/usb/gadget/udc/s3c-hsudc.c | 1 + > drivers/usb/gadget/udc/s3c2410_udc.c | 1 + > drivers/usb/musb/musb_gadget.c | 2 ++ > drivers/usb/renesas_usbhs/mod_gadget.c | 7 ++++++- > 27 files changed, 45 insertions(+), 6 deletions(-) Instead of modifying all of the UDC drivers, how about adding a flag to 'struct usb_gadget' named 'needs_ready' or similar? If the UDC doesn't set the flag, udc-core would call usb_udc_ready_to_connect() on behalf of the UDC. If the UDC sets the flag (chipidea only?) then the UDC would be responsible for calling usb_udc_ready_to_connect(). -- Paul -- 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