On Tue, 2 May 2023 at 13:39, Johan Hovold <johan+linaro@xxxxxxxxxx> wrote: > > The init counter is not decremented on initialisation errors, which > prevents retrying initialisation. > > Add the missing decrement on initialisation errors so that the counter > reflects the state of the device. > > Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets") > Cc: stable@xxxxxxxxxxxxxxx # 4.12 > Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > --- > drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c > index 09824be088c9..0c603bc06e09 100644 > --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c > @@ -379,7 +379,7 @@ static int qmp_pcie_msm8996_com_init(struct qmp_phy *qphy) > ret = regulator_bulk_enable(cfg->num_vregs, qmp->vregs); > if (ret) { > dev_err(qmp->dev, "failed to enable regulators, err=%d\n", ret); > - goto err_unlock; > + goto err_decrement_count; > } > > ret = reset_control_bulk_assert(cfg->num_resets, qmp->resets); > @@ -409,7 +409,8 @@ static int qmp_pcie_msm8996_com_init(struct qmp_phy *qphy) > reset_control_bulk_assert(cfg->num_resets, qmp->resets); > err_disable_regulators: > regulator_bulk_disable(cfg->num_vregs, qmp->vregs); > -err_unlock: > +err_decrement_count: > + qmp->init_count--; > mutex_unlock(&qmp->phy_mutex); > > return ret; > -- > 2.39.2 > -- With best wishes Dmitry