Message ID | 20231201-videocc-8150-v3-4-56bec3a5e443@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | f6bda45310ff165fdd69b8c3eb6679f0552f8a5f |
Headers | show |
Series | Add runtime PM support for videocc on SM8150 | expand |
On 1.12.2023 10:50, Satya Priya Kakitapalli wrote: > Add runtime PM support to ensure the supply rails are enabled > when necessary. > > Signed-off-by: Satya Priya Kakitapalli <quic_skakitap@quicinc.com> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Konrad > clk_trion_pll_configure(&video_pll0, regmap, &video_pll0_config); > > /* Keep VIDEO_CC_XO_CLK ALWAYS-ON */ > regmap_update_bits(regmap, 0x984, 0x1, 0x1); > > - return qcom_cc_really_probe(pdev, &video_cc_sm8150_desc, regmap); > + ret = qcom_cc_really_probe(pdev, &video_cc_sm8150_desc, regmap); > + > + pm_runtime_put_sync(&pdev->dev); > + > + return ret; > } > > static struct platform_driver video_cc_sm8150_driver = { >
diff --git a/drivers/clk/qcom/videocc-sm8150.c b/drivers/clk/qcom/videocc-sm8150.c index 52a9a453a143..f1456eaa87c4 100644 --- a/drivers/clk/qcom/videocc-sm8150.c +++ b/drivers/clk/qcom/videocc-sm8150.c @@ -6,6 +6,7 @@ #include <linux/clk-provider.h> #include <linux/module.h> #include <linux/platform_device.h> +#include <linux/pm_runtime.h> #include <linux/regmap.h> #include <dt-bindings/clock/qcom,videocc-sm8150.h> @@ -240,17 +241,32 @@ MODULE_DEVICE_TABLE(of, video_cc_sm8150_match_table); static int video_cc_sm8150_probe(struct platform_device *pdev) { struct regmap *regmap; + int ret; + + ret = devm_pm_runtime_enable(&pdev->dev); + if (ret) + return ret; + + ret = pm_runtime_resume_and_get(&pdev->dev); + if (ret) + return ret; regmap = qcom_cc_map(pdev, &video_cc_sm8150_desc); - if (IS_ERR(regmap)) + if (IS_ERR(regmap)) { + pm_runtime_put_sync(&pdev->dev); return PTR_ERR(regmap); + } clk_trion_pll_configure(&video_pll0, regmap, &video_pll0_config); /* Keep VIDEO_CC_XO_CLK ALWAYS-ON */ regmap_update_bits(regmap, 0x984, 0x1, 0x1); - return qcom_cc_really_probe(pdev, &video_cc_sm8150_desc, regmap); + ret = qcom_cc_really_probe(pdev, &video_cc_sm8150_desc, regmap); + + pm_runtime_put_sync(&pdev->dev); + + return ret; } static struct platform_driver video_cc_sm8150_driver = {
Add runtime PM support to ensure the supply rails are enabled when necessary. Signed-off-by: Satya Priya Kakitapalli <quic_skakitap@quicinc.com> --- drivers/clk/qcom/videocc-sm8150.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)