Re: [PATCH] clk: qcom: Make oxili GDSC parent of oxili_cx GDSC
From: Stephen Boyd <hidden>
Date: 2015-10-01 17:52:32
Also in:
linux-arm-msm, linux-clk, lkml
On 10/01, Rajendra Nayak wrote:
On 09/24/2015 12:39 AM, Stephen Boyd wrote:quoted
The oxili_cx GDSC is inside the power domain of the oxili GDSC. Add the dependency so that the CX domain can properly power up. Reported-by: Rob Clark <redacted> Cc: Rajendra Nayak <redacted> Signed-off-by: Stephen Boyd <redacted> --- drivers/clk/qcom/mmcc-msm8974.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)diff --git a/drivers/clk/qcom/mmcc-msm8974.c b/drivers/clk/qcom/mmcc-msm8974.c index fe8320dc41db..3613db0a73e3 100644 --- a/drivers/clk/qcom/mmcc-msm8974.c +++ b/drivers/clk/qcom/mmcc-msm8974.c@@ -2615,6 +2615,7 @@ MODULE_DEVICE_TABLE(of, mmcc_msm8974_match_table); static int mmcc_msm8974_probe(struct platform_device *pdev) { struct regmap *regmap; + int ret; regmap = qcom_cc_map(pdev, &mmcc_msm8974_desc); if (IS_ERR(regmap))@@ -2623,7 +2624,14 @@ static int mmcc_msm8974_probe(struct platform_device *pdev) clk_pll_configure_sr_hpm_lp(&mmpll1, regmap, &mmpll1_config, true); clk_pll_configure_sr_hpm_lp(&mmpll3, regmap, &mmpll3_config, false); - return qcom_cc_really_probe(pdev, &mmcc_msm8974_desc, regmap); + ret = qcom_cc_really_probe(pdev, &mmcc_msm8974_desc, regmap); + if (ret) + return ret; + + ret = pm_genpd_add_subdomain(&oxili_gdsc.pd, &oxilicx_gdsc.pd);We'll need pm_genpd_add_subdomain() to be EXPORT_SYMBOL_GPL'ed so clk-qcom can be built as a module.
Good catch! Do we need to call pm_genpd_remove_subdomain() too?
It would also be nicer if this parent/child relationship can somehow be represented in data (struct gdsc) that gets passed to the gdsc driver which then sets it up, instead of individual clock drivers doing it.
Agreed. I'd rather that we do nothing besides register domains and then let the core code handle hooking up domains and subdomains. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project