Skip to content

Commit

Permalink
clk: qcom: lpasscc-sc7280: fix missing resume during probe
Browse files Browse the repository at this point in the history
commit 66af533 upstream.

Drivers that enable runtime PM must make sure that the controller is
runtime resumed before accessing its registers to prevent the power
domain from being disabled.

Fixes: 4ab43d1 ("clk: qcom: Add lpass clock controller driver for SC7280")
Cc: stable@vger.kernel.org      # 5.16
Cc: Taniya Das <quic_tdas@quicinc.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20230718132902.21430-6-johan+linaro@kernel.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
jhovold authored and gregkh committed Sep 19, 2023
1 parent 5310f71 commit eab2ece
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions drivers/clk/qcom/lpasscc-sc7280.c
Expand Up @@ -115,17 +115,21 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev)
ret = pm_clk_add(&pdev->dev, "iface");
if (ret < 0) {
dev_err(&pdev->dev, "failed to acquire iface clock\n");
goto destroy_pm_clk;
goto err_destroy_pm_clk;
}

ret = pm_runtime_resume_and_get(&pdev->dev);
if (ret)
goto err_destroy_pm_clk;

if (!of_property_read_bool(pdev->dev.of_node, "qcom,adsp-pil-mode")) {
lpass_regmap_config.name = "qdsp6ss";
lpass_regmap_config.max_register = 0x3f;
desc = &lpass_qdsp6ss_sc7280_desc;

ret = qcom_cc_probe_by_index(pdev, 0, desc);
if (ret)
goto destroy_pm_clk;
goto err_put_rpm;
}

lpass_regmap_config.name = "top_cc";
Expand All @@ -134,11 +138,15 @@ static int lpass_cc_sc7280_probe(struct platform_device *pdev)

ret = qcom_cc_probe_by_index(pdev, 1, desc);
if (ret)
goto destroy_pm_clk;
goto err_put_rpm;

pm_runtime_put(&pdev->dev);

return 0;

destroy_pm_clk:
err_put_rpm:
pm_runtime_put_sync(&pdev->dev);
err_destroy_pm_clk:
pm_clk_destroy(&pdev->dev);

disable_pm_runtime:
Expand Down

0 comments on commit eab2ece

Please sign in to comment.