Commit 97112c83 authored by Johan Hovold's avatar Johan Hovold Committed by Bjorn Andersson

clk: qcom: q6sstop-qcs404: fix missing resume during probe

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: 6cdef273 ("clk: qcom: Add Q6SSTOP clock controller for QCS404")
Cc: stable@vger.kernel.org      # 5.5
Signed-off-by: default avatarJohan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20230718132902.21430-7-johan+linaro@kernel.orgSigned-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent 66af5339
...@@ -174,21 +174,32 @@ static int q6sstopcc_qcs404_probe(struct platform_device *pdev) ...@@ -174,21 +174,32 @@ static int q6sstopcc_qcs404_probe(struct platform_device *pdev)
return ret; return ret;
} }
ret = pm_runtime_resume_and_get(&pdev->dev);
if (ret)
return ret;
q6sstop_regmap_config.name = "q6sstop_tcsr"; q6sstop_regmap_config.name = "q6sstop_tcsr";
desc = &tcsr_qcs404_desc; desc = &tcsr_qcs404_desc;
ret = qcom_cc_probe_by_index(pdev, 1, desc); ret = qcom_cc_probe_by_index(pdev, 1, desc);
if (ret) if (ret)
return ret; goto err_put_rpm;
q6sstop_regmap_config.name = "q6sstop_cc"; q6sstop_regmap_config.name = "q6sstop_cc";
desc = &q6sstop_qcs404_desc; desc = &q6sstop_qcs404_desc;
ret = qcom_cc_probe_by_index(pdev, 0, desc); ret = qcom_cc_probe_by_index(pdev, 0, desc);
if (ret) if (ret)
return ret; goto err_put_rpm;
pm_runtime_put(&pdev->dev);
return 0; return 0;
err_put_rpm:
pm_runtime_put_sync(&pdev->dev);
return ret;
} }
static const struct dev_pm_ops q6sstopcc_pm_ops = { static const struct dev_pm_ops q6sstopcc_pm_ops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment