If VBUS is already present during the driver initialisation, the corresponding IRQ never fires, so there is no way the gadget can get enumerated. This patch is real-life tested on an i.MX25 board with VBUS constantly hooked up. Signed-off-by: Paul Fertser <fercerpav@xxxxxxxxx> --- drivers/usb/gadget/fsl_udc_core.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c index a2f26cd..b4b1516 100644 --- a/drivers/usb/gadget/fsl_udc_core.c +++ b/drivers/usb/gadget/fsl_udc_core.c @@ -2501,6 +2501,11 @@ static int __init fsl_udc_probe(struct platform_device *pdev) if (ret) goto err_del_udc; + /* Now let it settle a bit and sense VBUS */ + msleep_interruptible(1); + if (fsl_readl(&dr_regs->otgsc) & OTGSC_STS_B_SESSION_VALID) + udc_controller->vbus_active = 1; + create_proc_file(); return 0; -- 1.7.10 -- 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