Skip to content

Commit

Permalink
clk: qcom: dispcc-sm8550: fix runtime PM imbalance on probe errors
Browse files Browse the repository at this point in the history
Make sure to decrement the runtime PM usage count before returning in
case regmap initialisation fails.

Fixes: 90114ca ("clk: qcom: add SM8550 DISPCC driver")
Cc: stable@vger.kernel.org      # 6.3
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20230718132902.21430-4-johan+linaro@kernel.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
  • Loading branch information
jhovold authored and andersson committed Jul 18, 2023
1 parent b0f3d01 commit acaf1b3
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions drivers/clk/qcom/dispcc-sm8550.c
Original file line number Diff line number Diff line change
Expand Up @@ -1761,8 +1761,10 @@ static int disp_cc_sm8550_probe(struct platform_device *pdev)
return ret;

regmap = qcom_cc_map(pdev, &disp_cc_sm8550_desc);
if (IS_ERR(regmap))
return PTR_ERR(regmap);
if (IS_ERR(regmap)) {
ret = PTR_ERR(regmap);
goto err_put_rpm;
}

clk_lucid_evo_pll_configure(&disp_cc_pll0, regmap, &disp_cc_pll0_config);
clk_lucid_evo_pll_configure(&disp_cc_pll1, regmap, &disp_cc_pll1_config);
Expand All @@ -1777,9 +1779,16 @@ static int disp_cc_sm8550_probe(struct platform_device *pdev)
regmap_update_bits(regmap, 0xe054, BIT(0), BIT(0));

ret = qcom_cc_really_probe(pdev, &disp_cc_sm8550_desc, regmap);
if (ret)
goto err_put_rpm;

pm_runtime_put(&pdev->dev);

return 0;

err_put_rpm:
pm_runtime_put_sync(&pdev->dev);

return ret;
}

Expand Down

0 comments on commit acaf1b3

Please sign in to comment.