]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: qcom: gcc: Make disp gpll0 branch aon for sc7180/sdm845
authorTaniya Das <tdas@codeaurora.org>
Wed, 15 Jul 2020 06:54:10 +0000 (12:24 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Aug 2020 06:23:57 +0000 (08:23 +0200)
[ Upstream commit 9c3df2b1993da9ab1110702d7b2815d5cd8c02f3 ]

The display gpll0 branch clock inside GCC needs to always be enabled.
Otherwise the AHB clk (disp_cc_mdss_ahb_clk_src) for the display clk
controller (dispcc) will stop clocking while sourcing from gpll0 when
this branch inside GCC is turned off during unused clk disabling. We can
never turn this branch off because the AHB clk for the display subsystem
is needed to read/write any registers inside the display subsystem
including clk related ones. This makes this branch a really easy way to
turn off AHB access to the display subsystem and cause all sorts of
mayhem. Let's just make the clk ops keep the clk enabled forever and
ignore any attempts to disable this clk so that dispcc accesses keep
working.

Signed-off-by: Taniya Das <tdas@codeaurora.org>
Reported-by: Evan Green <evgreen@chromium.org>
Link: https://lore.kernel.org/r/1594796050-14511-1-git-send-email-tdas@codeaurora.org
Fixes: 17269568f726 ("clk: qcom: Add Global Clock controller (GCC) driver for SC7180")
Fixes: 06391eddb60a ("clk: qcom: Add Global Clock controller (GCC) driver for SDM845")
[sboyd@kernel.org: Fill out commit text more]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/qcom/gcc-sc7180.c
drivers/clk/qcom/gcc-sdm845.c

index 73380525cb091d0b746a3a4c33dc225cea8dca20..b3704b685cca36fde1e5134671b25b931f1d4af6 100644 (file)
@@ -1041,7 +1041,7 @@ static struct clk_branch gcc_disp_gpll0_clk_src = {
                                .hw = &gpll0.clkr.hw,
                        },
                        .num_parents = 1,
-                       .ops = &clk_branch2_ops,
+                       .ops = &clk_branch2_aon_ops,
                },
        },
 };
index f6ce888098be9b3fbeab9852e84359614ac45d54..90f7febaf5288e3b6122c5741f074766b74c5be1 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018, 2020, The Linux Foundation. All rights reserved.
  */
 
 #include <linux/kernel.h>
@@ -1344,7 +1344,7 @@ static struct clk_branch gcc_disp_gpll0_clk_src = {
                                "gpll0",
                        },
                        .num_parents = 1,
-                       .ops = &clk_branch2_ops,
+                       .ops = &clk_branch2_aon_ops,
                },
        },
 };