Re: [PATCH v2 4/4] usb: dwc3: Workaround for super-speed host on dra7 in dual-role mode
From: Roger Quadros
Date: Tue Feb 28 2017 - 10:17:55 EST
On 25/02/17 05:35, Chanwoo Choi wrote:
> 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()
Got it.
>
>> + 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]
>
--
cheers,
-roger