diff options
author | Rajendra Nayak <rnayak@codeaurora.org> | 2016-12-06 14:52:19 +0530 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2020-06-16 22:17:55 +0530 |
commit | 90361c81f7bae1e152916e1e77a5a89cbc10e7d4 (patch) | |
tree | 1080f56b6675310fe8af247079cec0328954707b | |
parent | b3a9e3b9622ae10064826dccb4f7a52bd88c7407 (diff) |
[HACK] clk: qcom: Hook up gpu_gx gdsc as a parent of gpu_gdsc
the GPU device on msm8996 requires 2 gdscs to be powered on.
With powerdomains we have a limitation wherein only one
powerdomain can be associated with a given device in DT.
So hook the 2 gdscs together so both are powered on/off when
the gpu driver needs them to.
[Amit] We use this hack until genpd allows multiple powerdomains to be
associated with a device.
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
-rw-r--r-- | drivers/clk/qcom/mmcc-msm8996.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/clk/qcom/mmcc-msm8996.c b/drivers/clk/qcom/mmcc-msm8996.c index 3b3aac07fb2d5..361ef3ffdb517 100644 --- a/drivers/clk/qcom/mmcc-msm8996.c +++ b/drivers/clk/qcom/mmcc-msm8996.c @@ -3045,15 +3045,7 @@ static struct gdsc mdss_gdsc = { .pwrsts = PWRSTS_OFF_ON, }; -static struct gdsc gpu_gdsc = { - .gdscr = 0x4034, - .gds_hw_ctrl = 0x4038, - .pd = { - .name = "gpu", - }, - .pwrsts = PWRSTS_OFF_ON, - .flags = VOTABLE, -}; +static struct gdsc gpu_gdsc; static struct gdsc gpu_gx_gdsc = { .gdscr = 0x4024, @@ -3069,6 +3061,17 @@ static struct gdsc gpu_gx_gdsc = { .supply = "vdd-gfx", }; +static struct gdsc gpu_gdsc = { + .gdscr = 0x4034, + .gds_hw_ctrl = 0x4038, + .pd = { + .name = "gpu", + }, + .parent = &gpu_gx_gdsc.pd, + .pwrsts = PWRSTS_OFF_ON, + .flags = VOTABLE, +}; + static struct clk_regmap *mmcc_msm8996_clocks[] = { [MMPLL0_EARLY] = &mmpll0_early.clkr, [MMPLL0_PLL] = &mmpll0.clkr, |