diff mbox series

[v1] clk: qcom: lpasscc: Introduce pm autosuspend for SC7180

Message ID 1605890417-721-1-git-send-email-tdas@codeaurora.org (mailing list archive)
State Accepted, archived
Headers show
Series [v1] clk: qcom: lpasscc: Introduce pm autosuspend for SC7180 | expand

Commit Message

Taniya Das Nov. 20, 2020, 4:40 p.m. UTC
The LPASSCC driver's suspend/resume is invoked multiple number of times
and thus allow the device to autosuspend for 500ms.

Signed-off-by: Taniya Das <tdas@codeaurora.org>
---
 drivers/clk/qcom/lpasscorecc-sc7180.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member
of the Code Aurora Forum, hosted by the  Linux Foundation.

Comments

Stephen Boyd Dec. 10, 2020, 8:29 p.m. UTC | #1
Quoting Taniya Das (2020-11-20 08:40:17)
> The LPASSCC driver's suspend/resume is invoked multiple number of times
> and thus allow the device to autosuspend for 500ms.
> 
> Signed-off-by: Taniya Das <tdas@codeaurora.org>
> ---

Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/qcom/lpasscorecc-sc7180.c b/drivers/clk/qcom/lpasscorecc-sc7180.c
index 9081649..2e0ecc3 100644
--- a/drivers/clk/qcom/lpasscorecc-sc7180.c
+++ b/drivers/clk/qcom/lpasscorecc-sc7180.c
@@ -370,7 +370,10 @@  static int lpass_create_pm_clks(struct platform_device *pdev)
 {
 	int ret;

+	pm_runtime_use_autosuspend(&pdev->dev);
+	pm_runtime_set_autosuspend_delay(&pdev->dev, 500);
 	pm_runtime_enable(&pdev->dev);
+
 	ret = devm_add_action_or_reset(&pdev->dev, lpass_pm_runtime_disable, &pdev->dev);
 	if (ret)
 		return ret;
@@ -423,7 +426,12 @@  static int lpass_core_cc_sc7180_probe(struct platform_device *pdev)
 	clk_fabia_pll_configure(&lpass_lpaaudio_dig_pll, regmap,
 				&lpass_lpaaudio_dig_pll_config);

-	return qcom_cc_really_probe(pdev, &lpass_core_cc_sc7180_desc, regmap);
+	ret = qcom_cc_really_probe(pdev, &lpass_core_cc_sc7180_desc, regmap);
+
+	pm_runtime_mark_last_busy(&pdev->dev);
+	pm_runtime_put_autosuspend(&pdev->dev);
+
+	return ret;
 }

 static int lpass_hm_core_probe(struct platform_device *pdev)