Hi, I’ve run into a problem which I suspect is to with how usb_gadget_probe_driver is implemented in drivers/usb/gadget/udc/udc-core.c I have an embedded system that uses the Chipidea OTG controller. Unfortunately, when it boots up, the driver is loaded but there’s no USB gadget that gets attached to it. I’m building the USB gadget support into the kernel. Here’s a snippet of the boot log: Console: switching to colour frame buffer device 40x30 Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled Serial: AMBA driver brd: module loaded ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver zevio_usb b0000000.usb: ci_hdrc_zevio_probe zevio_usb b0000000.usb: ci_hdrc_add_device failed! platform b0000000.usb: Driver zevio_usb requests probe deferral userial_init: registered 4 ttyGS* devices couldn't find an available UDC mousedev: PS/2 mouse device common for all mice usbcore: registered new interface driver usbhid usbhid: USB HID core driver zevio_usb b0000000.usb: ci_hdrc_zevio_probe ci_hdrc ci_hdrc.0: ChipIdea HDRC found, lpm: 0; cap: c4882100 op: c4882140 ci_hdrc ci_hdrc.0: It is OTG capable controller USB VBUS output: disabling RAMDISK: gzip image found at block 0 It seems that because the Chipidea driver requests a probe deferral (presumably to wait for some device it depends on to get probed), it doesn’t get loaded before usb_gadget_probe_driver is called. Hence, usb_gadget_probe_driver doesn’t find anything it can bind to and it errors out. By the time the Chipidea driver actually finishes getting probed, it’s too late to bind any gadgets to. Does this sound like a reasonable diagnosis? What can we do about it? Cheers, Daniel-- 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