LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Rob Herring <robh+dt@kernel.org>, Stephen Boyd <sboyd@kernel.org>, Taniya Das <tdas@codeaurora.org>, Jonathan Marek <jonathan@marek.ca>, Michael Turquette <mturquette@baylibre.com> Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Bryan O'Donoghue <bryan.odonoghue@linaro.org>, Mark Brown <broonie@kernel.org>, Ulf Hansson <ulf.hansson@linaro.org>, linux-kernel@vger.kernel.org Subject: [PATCH v6 3/8] clk: qcom: dispcc-sm8250: use runtime PM for the clock controller Date: Tue, 27 Jul 2021 23:19:59 +0300 [thread overview] Message-ID: <20210727202004.712665-4-dmitry.baryshkov@linaro.org> (raw) In-Reply-To: <20210727202004.712665-1-dmitry.baryshkov@linaro.org> On sm8250 dispcc and videocc registers are powered up by the MMCX power domain. Use runtime PM calls to make sure that required power domain is powered on while we access clock controller's registers. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/clk/qcom/dispcc-sm8250.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/drivers/clk/qcom/dispcc-sm8250.c b/drivers/clk/qcom/dispcc-sm8250.c index 601c7c0ba483..108dd1249b6a 100644 --- a/drivers/clk/qcom/dispcc-sm8250.c +++ b/drivers/clk/qcom/dispcc-sm8250.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 <linux/reset-controller.h> @@ -1226,13 +1227,31 @@ static const struct of_device_id disp_cc_sm8250_match_table[] = { }; MODULE_DEVICE_TABLE(of, disp_cc_sm8250_match_table); +static void disp_cc_sm8250_pm_runtime_disable(void *data) +{ + pm_runtime_disable(data); +} + static int disp_cc_sm8250_probe(struct platform_device *pdev) { struct regmap *regmap; + int ret; + + pm_runtime_enable(&pdev->dev); + + ret = devm_add_action_or_reset(&pdev->dev, disp_cc_sm8250_pm_runtime_disable, &pdev->dev); + if (ret) + return ret; + + ret = pm_runtime_resume_and_get(&pdev->dev); + if (ret) + return ret; regmap = qcom_cc_map(pdev, &disp_cc_sm8250_desc); - if (IS_ERR(regmap)) + if (IS_ERR(regmap)) { + pm_runtime_put(&pdev->dev); return PTR_ERR(regmap); + } /* note: trion == lucid, except for the prepare() op */ BUILD_BUG_ON(CLK_ALPHA_PLL_TYPE_TRION != CLK_ALPHA_PLL_TYPE_LUCID); @@ -1257,7 +1276,11 @@ static int disp_cc_sm8250_probe(struct platform_device *pdev) /* DISP_CC_XO_CLK always-on */ regmap_update_bits(regmap, 0x605c, BIT(0), BIT(0)); - return qcom_cc_really_probe(pdev, &disp_cc_sm8250_desc, regmap); + ret = qcom_cc_really_probe(pdev, &disp_cc_sm8250_desc, regmap); + + pm_runtime_put(&pdev->dev); + + return ret; } static struct platform_driver disp_cc_sm8250_driver = { -- 2.30.2
next prev parent reply other threads:[~2021-07-27 20:20 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-27 20:19 [PATCH v6 0/6] clk: qcom: use power-domain for sm8250's clock controllers Dmitry Baryshkov 2021-07-27 20:19 ` [PATCH v6 1/8] dt-bindings: clock: qcom,dispcc-sm8x50: add mmcx power domain Dmitry Baryshkov 2021-07-27 20:19 ` [PATCH v6 2/8] dt-bindings: clock: qcom,videocc: " Dmitry Baryshkov 2021-07-27 20:19 ` Dmitry Baryshkov [this message] 2021-07-27 20:20 ` [PATCH v6 4/8] clk: qcom: videocc-sm8250: use runtime PM for the clock controller Dmitry Baryshkov 2021-07-27 20:20 ` [PATCH v6 5/8] clk: qcom: gdsc: enable optional power domain support Dmitry Baryshkov 2021-07-27 20:20 ` [PATCH v6 6/8] arm64: dts: qcom: sm8250: remove mmcx regulator Dmitry Baryshkov 2021-07-27 20:20 ` [PATCH v6 7/8] clk: qcom: dispcc-sm8250: stop using " Dmitry Baryshkov 2021-07-27 20:20 ` [PATCH v6 8/8] clk: qcom: videocc-sm8250: " Dmitry Baryshkov 2021-08-10 11:11 ` [PATCH v6 0/6] clk: qcom: use power-domain for sm8250's clock controllers Ulf Hansson 2021-08-26 18:31 ` Stephen Boyd 2021-08-26 21:56 ` Dmitry Baryshkov 2021-08-29 3:51 ` Stephen Boyd 2021-08-29 15:54 ` Dmitry Baryshkov 2021-09-07 14:34 ` Ulf Hansson 2021-09-08 8:50 ` Dmitry Baryshkov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210727202004.712665-4-dmitry.baryshkov@linaro.org \ --to=dmitry.baryshkov@linaro.org \ --cc=agross@kernel.org \ --cc=bjorn.andersson@linaro.org \ --cc=broonie@kernel.org \ --cc=bryan.odonoghue@linaro.org \ --cc=devicetree@vger.kernel.org \ --cc=jonathan@marek.ca \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mturquette@baylibre.com \ --cc=robh+dt@kernel.org \ --cc=sboyd@kernel.org \ --cc=tdas@codeaurora.org \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).