Hi,

Jun Li <lijun.ker...@gmail.com> writes:
>> @@ -397,12 +407,18 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, 
>> unsigned cmd,
>>                         dwc3_gadget_ep_get_transfer_index(dep);
>>         }
>>
>> -       if (saved_config) {
>> +       if (saved_hs_config) {
>>                 reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
>> -               reg |= saved_config;
>> +               reg |= saved_hs_config;
>>                 dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
>>         }
>>
>> +       if (saved_ss_config) {
>> +               reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
>> +               reg |= saved_ss_config;
>> +               dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
>> +       }
>> +
>>         return ret;
>>  }
>
> Unfortunately this way can't work, once the SS PHY enters P3, disable
> suspend_en can't force SS PHY exit P3, unless do this at the very beginning
> to prevent SS PHY entering P3(e.g. add "snps,dis_u3_susphy_quirk" for test).

It sounds like you have a quirky PHY. If that's the case, then you
probably need to use the flag you mentioned above. Please verify with
that.

-- 
balbi

Attachment: signature.asc
Description: PGP signature

Reply via email to