Message ID | 20181203183330.2073-2-bjorn.andersson@linaro.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | clk: qcom: gcc-msm8998: Fixes and clkref clocks | expand |
On 03/12/2018 19:33, Bjorn Andersson wrote: > Disabling gcc_hmss_dvm_bus_clk and gcc_lpass_at_clk causes the board to > lock up, and by that preventing the kernel to boot without > clk_ignore_unused. > > gcc_hmss_dvm_bus_clk is marked always-on downstream, but not referenced, > and gcc_lpass_at_clk isn't mentioned. So let's remove them until they > are needed by some client. Hello Bjorn, What about gcc_gpu_bimc_gfx_clk? AFAICT, it doesn't lock the system up, but the kernel warns: [ 2.171148] ------------[ cut here ]------------ [ 2.173740] gcc_gpu_bimc_gfx_clk status stuck at 'on' [ 2.173996] WARNING: CPU: 3 PID: 1 at drivers/clk/qcom/clk-branch.c:92 clk_branch_toggle+0x190/0x1b0 [ 2.183475] Modules linked in: [ 2.192554] CPU: 3 PID: 1 Comm: swapper/0 Tainted: G S 4.20.0-rc4 #23 [ 2.195509] Hardware name: Qualcomm Technologies, Inc. MSM8998 v1 MTP (DT) [ 2.203389] pstate: 60000085 (nZCv daIf -PAN -UAO) [ 2.210016] pc : clk_branch_toggle+0x190/0x1b0 [ 2.214781] lr : clk_branch_toggle+0x190/0x1b0 [ 2.219213] sp : ffff00000807bcf0 [ 2.223609] x29: ffff00000807bcf0 x28: 0000000000000008 [ 2.227041] x27: ffff0000089db070 x26: ffff000008961378 [ 2.232425] x25: ffff0000088da4b8 x24: 0000000000000000 [ 2.237721] x23: ffff000009138a08 x22: ffff000008414990 [ 2.243016] x21: 0000000000000000 x20: 0000000000000000 [ 2.248312] x19: ffff0000090e9000 x18: ffffffffffffffff [ 2.253608] x17: 0000000000000000 x16: 0000000000000000 [ 2.258902] x15: ffff0000090e9648 x14: ffff000089193187 [ 2.264197] x13: ffff000009193195 x12: ffff0000090fb000 [ 2.269493] x11: ffff00000807bcf0 x10: ffff00000807bcf0 [ 2.274789] x9 : ffff00000807bcf0 x8 : 6e6f27207461206b [ 2.280084] x7 : 6375747320737574 x6 : ffff000009192c89 [ 2.285380] x5 : 0000000000000000 x4 : 0000000000000000 [ 2.290676] x3 : ffffffffffffffff x2 : 00008000f5251000 [ 2.295971] x1 : e0dbf26541ede800 x0 : 0000000000000000 [ 2.301272] Call trace: [ 2.306491] clk_branch_toggle+0x190/0x1b0 [ 2.308705] clk_branch2_disable+0x18/0x20 [ 2.312890] clk_disable_unused_subtree+0xc4/0xe0 [ 2.316960] clk_disable_unused+0x3c/0x130 [ 2.321736] do_one_initcall+0x5c/0x180 [ 2.325745] kernel_init_freeable+0x198/0x244 [ 2.329469] kernel_init+0x10/0x110 [ 2.333942] ret_from_fork+0x10/0x20 [ 2.337257] ---[ end trace 57f62b628c127ef8 ]--- Regards.
On Tue 04 Dec 06:37 PST 2018, Marc Gonzalez wrote: > On 03/12/2018 19:33, Bjorn Andersson wrote: > > > Disabling gcc_hmss_dvm_bus_clk and gcc_lpass_at_clk causes the board to > > lock up, and by that preventing the kernel to boot without > > clk_ignore_unused. > > > > gcc_hmss_dvm_bus_clk is marked always-on downstream, but not referenced, > > and gcc_lpass_at_clk isn't mentioned. So let's remove them until they > > are needed by some client. > > Hello Bjorn, > > What about gcc_gpu_bimc_gfx_clk? > The ufs clocks was updated because the ufs driver would fail to enable them and by that fail. But I have yet to research what the appropriate solution for this this particular clock is. > AFAICT, it doesn't lock the system up, but the kernel warns: > Right, so it seems to only be an annoyance for now. Let's revisit this. Regards, Bjorn > [ 2.171148] ------------[ cut here ]------------ > [ 2.173740] gcc_gpu_bimc_gfx_clk status stuck at 'on' > [ 2.173996] WARNING: CPU: 3 PID: 1 at drivers/clk/qcom/clk-branch.c:92 clk_branch_toggle+0x190/0x1b0 > [ 2.183475] Modules linked in: > [ 2.192554] CPU: 3 PID: 1 Comm: swapper/0 Tainted: G S 4.20.0-rc4 #23 > [ 2.195509] Hardware name: Qualcomm Technologies, Inc. MSM8998 v1 MTP (DT) > [ 2.203389] pstate: 60000085 (nZCv daIf -PAN -UAO) > [ 2.210016] pc : clk_branch_toggle+0x190/0x1b0 > [ 2.214781] lr : clk_branch_toggle+0x190/0x1b0 > [ 2.219213] sp : ffff00000807bcf0 > [ 2.223609] x29: ffff00000807bcf0 x28: 0000000000000008 > [ 2.227041] x27: ffff0000089db070 x26: ffff000008961378 > [ 2.232425] x25: ffff0000088da4b8 x24: 0000000000000000 > [ 2.237721] x23: ffff000009138a08 x22: ffff000008414990 > [ 2.243016] x21: 0000000000000000 x20: 0000000000000000 > [ 2.248312] x19: ffff0000090e9000 x18: ffffffffffffffff > [ 2.253608] x17: 0000000000000000 x16: 0000000000000000 > [ 2.258902] x15: ffff0000090e9648 x14: ffff000089193187 > [ 2.264197] x13: ffff000009193195 x12: ffff0000090fb000 > [ 2.269493] x11: ffff00000807bcf0 x10: ffff00000807bcf0 > [ 2.274789] x9 : ffff00000807bcf0 x8 : 6e6f27207461206b > [ 2.280084] x7 : 6375747320737574 x6 : ffff000009192c89 > [ 2.285380] x5 : 0000000000000000 x4 : 0000000000000000 > [ 2.290676] x3 : ffffffffffffffff x2 : 00008000f5251000 > [ 2.295971] x1 : e0dbf26541ede800 x0 : 0000000000000000 > [ 2.301272] Call trace: > [ 2.306491] clk_branch_toggle+0x190/0x1b0 > [ 2.308705] clk_branch2_disable+0x18/0x20 > [ 2.312890] clk_disable_unused_subtree+0xc4/0xe0 > [ 2.316960] clk_disable_unused+0x3c/0x130 > [ 2.321736] do_one_initcall+0x5c/0x180 > [ 2.325745] kernel_init_freeable+0x198/0x244 > [ 2.329469] kernel_init+0x10/0x110 > [ 2.333942] ret_from_fork+0x10/0x20 > [ 2.337257] ---[ end trace 57f62b628c127ef8 ]--- > > > Regards.
Quoting Bjorn Andersson (2018-12-03 10:33:28) > Disabling gcc_hmss_dvm_bus_clk and gcc_lpass_at_clk causes the board to > lock up, and by that preventing the kernel to boot without > clk_ignore_unused. > > gcc_hmss_dvm_bus_clk is marked always-on downstream, but not referenced, > and gcc_lpass_at_clk isn't mentioned. So let's remove them until they > are needed by some client. > > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- Applied to clk-next
diff --git a/drivers/clk/qcom/gcc-msm8998.c b/drivers/clk/qcom/gcc-msm8998.c index 9f0ae403d5f5..aed7f1f92614 100644 --- a/drivers/clk/qcom/gcc-msm8998.c +++ b/drivers/clk/qcom/gcc-msm8998.c @@ -1964,19 +1964,6 @@ static struct clk_branch gcc_hmss_at_clk = { }, }; -static struct clk_branch gcc_hmss_dvm_bus_clk = { - .halt_reg = 0x4808c, - .halt_check = BRANCH_HALT, - .clkr = { - .enable_reg = 0x4808c, - .enable_mask = BIT(0), - .hw.init = &(struct clk_init_data){ - .name = "gcc_hmss_dvm_bus_clk", - .ops = &clk_branch2_ops, - }, - }, -}; - static struct clk_branch gcc_hmss_rbcpr_clk = { .halt_reg = 0x48008, .halt_check = BRANCH_HALT, @@ -2007,19 +1994,6 @@ static struct clk_branch gcc_hmss_trig_clk = { }, }; -static struct clk_branch gcc_lpass_at_clk = { - .halt_reg = 0x47020, - .halt_check = BRANCH_HALT, - .clkr = { - .enable_reg = 0x47020, - .enable_mask = BIT(0), - .hw.init = &(struct clk_init_data){ - .name = "gcc_lpass_at_clk", - .ops = &clk_branch2_ops, - }, - }, -}; - static struct clk_branch gcc_lpass_trig_clk = { .halt_reg = 0x4701c, .halt_check = BRANCH_HALT, @@ -2653,10 +2627,8 @@ static struct clk_regmap *gcc_msm8998_clocks[] = { [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, [GCC_HMSS_AHB_CLK] = &gcc_hmss_ahb_clk.clkr, [GCC_HMSS_AT_CLK] = &gcc_hmss_at_clk.clkr, - [GCC_HMSS_DVM_BUS_CLK] = &gcc_hmss_dvm_bus_clk.clkr, [GCC_HMSS_RBCPR_CLK] = &gcc_hmss_rbcpr_clk.clkr, [GCC_HMSS_TRIG_CLK] = &gcc_hmss_trig_clk.clkr, - [GCC_LPASS_AT_CLK] = &gcc_lpass_at_clk.clkr, [GCC_LPASS_TRIG_CLK] = &gcc_lpass_trig_clk.clkr, [GCC_MMSS_NOC_CFG_AHB_CLK] = &gcc_mmss_noc_cfg_ahb_clk.clkr, [GCC_MMSS_QM_AHB_CLK] = &gcc_mmss_qm_ahb_clk.clkr,
Disabling gcc_hmss_dvm_bus_clk and gcc_lpass_at_clk causes the board to lock up, and by that preventing the kernel to boot without clk_ignore_unused. gcc_hmss_dvm_bus_clk is marked always-on downstream, but not referenced, and gcc_lpass_at_clk isn't mentioned. So let's remove them until they are needed by some client. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> --- Changes since v1: - Drop the clocks, rather than marking them critical. drivers/clk/qcom/gcc-msm8998.c | 28 ---------------------------- 1 file changed, 28 deletions(-)