RE: [PATCH v2] usb: dwc3: core: Add quirk for enabling AutoRetry feature in the controller

From: Anurag Kumar Vulisha
Date: Fri Jul 27 2018 - 03:30:01 EST



Hi Felipe,

Thanks again for reviewing the patch. Will make the suggested changes and send v3.

Thanks,
Anurag Kumar Vulisha

>-----Original Message-----
>From: Felipe Balbi [mailto:balbi@xxxxxxxxxx]
>Sent: Thursday, July 26, 2018 6:12 PM
>To: Anurag Kumar Vulisha <anuragku@xxxxxxxxxx>; gregkh@xxxxxxxxxxxxxxxxxxx
>Cc: v.anuragkumar@xxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-
>kernel@xxxxxxxxxxxxxxx; Anurag Kumar Vulisha <anuragku@xxxxxxxxxx>
>Subject: Re: [PATCH v2] usb: dwc3: core: Add quirk for enabling AutoRetry feature in
>the controller
>
>
>Hi,
>
>Anurag Kumar Vulisha <anurag.kumar.vulisha@xxxxxxxxxx> writes:
>> By default when core sees any transaction error(CRC or overflow) it
>> replies with terminating retry ACK (Retry=1 and Nump == 0).
>> Enabling this Auto Retry feature in controller, on seeing any
>> transaction errors makes the core to send a non-terminating ACK
>> transaction packet (that is, ACK TP with Retry=1 and Nump != 0).
>> Doing so will give controller a chance to recover from the error
>> condition.
>>
>> Signed-off-by: Anurag Kumar Vulisha <anurag.kumar.vulisha@xxxxxxxxxx>
>> ---
>> Changes in v2:
>> 1. As suggested by Rob Herring & Felipe Balbi removed the
>> quirk logic and setting the AutoRetry bits unconditionally
>> for hostmode
>> ---
>> drivers/usb/dwc3/core.c | 14 ++++++++++++++ drivers/usb/dwc3/core.h
>> | 3 +++
>> 2 files changed, 17 insertions(+)
>>
>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index
>> 1038075..478c8a6 100644
>> --- a/drivers/usb/dwc3/core.c
>> +++ b/drivers/usb/dwc3/core.c
>> @@ -883,6 +883,20 @@ static int dwc3_core_init(struct dwc3 *dwc)
>> dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
>> }
>>
>> + if (dwc->dr_mode == USB_DR_MODE_HOST) {
>
>almost there. You also wanna check for dr_mode == OTG. OTG configurations can
>switch between device and host mode at will.
>
>> + reg = dwc3_readl(dwc->regs, DWC3_GUCTL);
>> +
>> + /* Enable Auto retry Feature to make the controller operating in
>
>match the multi-line comment style already in this file:
>
> /*
> * Enable Auto ....
>
>--
>balbi