[PATCH 2/7] phy: phy-snps-eusb2: fix repeater imbalance on phy_init() failure

Neil Armstrong neil.armstrong at linaro.org
Mon May 26 00:49:32 PDT 2025


On 23/05/2025 10:48, Johan Hovold wrote:
> Make sure to disable the repeater PHY also on phy_init() failure.
> 
> Fixes: 3584f6392f09 ("phy: qcom: phy-qcom-snps-eusb2: Add support for eUSB2 repeater")
> Cc: Abel Vesa <abel.vesa at linaro.org>
> Cc: Neil Armstrong <neil.armstrong at linaro.org>
> Signed-off-by: Johan Hovold <johan+linaro at kernel.org>
> ---
>   drivers/phy/phy-snps-eusb2.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/phy/phy-snps-eusb2.c b/drivers/phy/phy-snps-eusb2.c
> index 19af3f99692c..a799c3d2bcfb 100644
> --- a/drivers/phy/phy-snps-eusb2.c
> +++ b/drivers/phy/phy-snps-eusb2.c
> @@ -468,7 +468,7 @@ static int snps_eusb2_hsphy_init(struct phy *p)
>   	ret = clk_bulk_prepare_enable(phy->data->num_clks, phy->clks);
>   	if (ret) {
>   		dev_err(&p->dev, "failed to enable ref clock, %d\n", ret);
> -		goto disable_vreg;
> +		goto exit_repeater;
>   	}
>   
>   	ret = reset_control_assert(phy->phy_reset);
> @@ -493,7 +493,8 @@ static int snps_eusb2_hsphy_init(struct phy *p)
>   
>   disable_ref_clk:
>   	clk_bulk_disable_unprepare(phy->data->num_clks, phy->clks);
> -
> +exit_repeater:
> +	phy_exit(phy->repeater);
>   disable_vreg:
>   	regulator_bulk_disable(ARRAY_SIZE(phy->vregs), phy->vregs);
>   

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>



More information about the linux-phy mailing list