On 4/8/2021 1:45 PM, Artur Petrosyan wrote:
> When core is in partial power down state and an external
> hub is connected, upper layer sends URB enqueue request,
> which results in port reset issue.
> 
> Added exit from partial power down state to avoid port
> reset issue and process upper layer request correctly.
> 
> Signed-off-by: Artur Petrosyan <arthur.petros...@synopsys.com>

Acked-by: Minas Harutyunyan <minas.harutyun...@synopsys.com>

> ---
>   Changes in v3:
>   - None
>   Changes in v2:
>   - None
> 
>   drivers/usb/dwc2/hcd.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
> index 9529e9839961..cb52bc41bfb8 100644
> --- a/drivers/usb/dwc2/hcd.c
> +++ b/drivers/usb/dwc2/hcd.c
> @@ -4633,6 +4633,13 @@ static int _dwc2_hcd_urb_enqueue(struct usb_hcd *hcd, 
> struct urb *urb,
>               dwc2_dump_urb_info(hcd, urb, "urb_enqueue");
>       }
>   
> +     if (hsotg->in_ppd) {
> +             retval = dwc2_exit_partial_power_down(hsotg, 0, true);
> +             if (retval)
> +                     dev_err(hsotg->dev,
> +                             "exit partial_power_down failed\n");
> +     }
> +
>       if (!ep)
>               return -EINVAL;
>   
> 

Reply via email to