aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajendra Nayak <rnayak@codeaurora.org>2016-12-06 14:52:19 +0530
committerVinod Koul <vkoul@kernel.org>2020-06-16 22:17:55 +0530
commit90361c81f7bae1e152916e1e77a5a89cbc10e7d4 (patch)
tree1080f56b6675310fe8af247079cec0328954707b
parentb3a9e3b9622ae10064826dccb4f7a52bd88c7407 (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.c21
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,