Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: turingcc-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: 892df0191b29 ("clk: qcom: Add QCS404 TuringCC")
Cc: stable@vger.kernel.org # 5.2
Cc: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20230718132902.21430-9-johan+linaro@kernel.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Johan Hovold and committed by
Bjorn Andersson
a9f71a03 e2349da0

+13 -2
+13 -2
drivers/clk/qcom/turingcc-qcs404.c
··· 125 125 return ret; 126 126 } 127 127 128 - ret = qcom_cc_probe(pdev, &turingcc_desc); 129 - if (ret < 0) 128 + ret = pm_runtime_resume_and_get(&pdev->dev); 129 + if (ret) 130 130 return ret; 131 131 132 + ret = qcom_cc_probe(pdev, &turingcc_desc); 133 + if (ret < 0) 134 + goto err_put_rpm; 135 + 136 + pm_runtime_put(&pdev->dev); 137 + 132 138 return 0; 139 + 140 + err_put_rpm: 141 + pm_runtime_put_sync(&pdev->dev); 142 + 143 + return ret; 133 144 } 134 145 135 146 static const struct dev_pm_ops turingcc_pm_ops = {