Hi Roger, [snip] > /* dwc->lock must be held */ > static void dwc3_otg_core_exit(struct dwc3 *dwc) > { > + if (dwc->edev) > + return; > + > /* disable all otg irqs */ > dwc3_otg_disable_events(dwc, DWC3_OTG_ALL_EVENTS); > /* clear all events */ > @@ -1286,6 +1364,57 @@ static int dwc3_drd_init(struct dwc3 *dwc) > > INIT_WORK(&dwc->otg_work, dwc3_drd_work); > > + /* If extcon device is present we don't rely on OTG core for ID event */ > + if (dwc->edev) { > + int id, vbus; > + > + dwc->edev_nb.notifier_call = dwc3_drd_notifier; > + ret = extcon_register_notifier(dwc->edev, EXTCON_USB, > + &dwc->edev_nb); I recommend that you better to use the devm_extcon_register_notifier() > + if (ret < 0) { > + dev_err(dwc->dev, "Couldn't register USB cable notifier\n"); > + return -ENODEV; > + } > + > + ret = extcon_register_notifier(dwc->edev, EXTCON_USB_HOST, > + &dwc->edev_nb); Ditto. [snip] -- Best Regards, Chanwoo Choi Samsung Electronics -- 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