Re: [PATCH 07/11] USB: dwc3: clean up phy init error handling

From: Thinh Nguyen
Date: Thu Apr 06 2023 - 21:00:44 EST


On Tue, Apr 04, 2023, Johan Hovold wrote:
> While there likely are no platforms out there that mix generic and
> legacy PHYs the driver should still be able to handle that, if only for
> consistency reasons.
>
> Add the missing calls to shutdown any legacy PHYs if generic PHY
> initialisation fails.
>
> Note that we continue to happily ignore potential errors from the legacy
> PHY callbacks...
>
> Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx>
> ---
> drivers/usb/dwc3/core.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index de84e057d28b..15405f1f7aef 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -1031,15 +1031,14 @@ static int dwc3_core_init(struct dwc3 *dwc)
>
> usb_phy_init(dwc->usb2_phy);
> usb_phy_init(dwc->usb3_phy);
> +
> ret = phy_init(dwc->usb2_generic_phy);
> if (ret < 0)
> - goto err0a;
> + goto err_shutdown_usb3_phy;
>
> ret = phy_init(dwc->usb3_generic_phy);
> - if (ret < 0) {
> - phy_exit(dwc->usb2_generic_phy);
> - goto err0a;
> - }
> + if (ret < 0)
> + goto err_exit_usb2_phy;
>
> ret = dwc3_core_soft_reset(dwc);
> if (ret)
> @@ -1215,11 +1214,12 @@ static int dwc3_core_init(struct dwc3 *dwc)
> usb_phy_set_suspend(dwc->usb3_phy, 1);
>
> err1:
> - usb_phy_shutdown(dwc->usb2_phy);
> - usb_phy_shutdown(dwc->usb3_phy);
> - phy_exit(dwc->usb2_generic_phy);
> phy_exit(dwc->usb3_generic_phy);
> -
> +err_exit_usb2_phy:
> + phy_exit(dwc->usb2_generic_phy);
> +err_shutdown_usb3_phy:
> + usb_phy_shutdown(dwc->usb3_phy);
> + usb_phy_shutdown(dwc->usb2_phy);
> err0a:
> dwc3_ulpi_exit(dwc);
>
> --
> 2.39.2
>

Acked-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>

Thanks,
Thinh