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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to