Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

clk: qcom: mmcc-msm8974: remove ocmemcx_ahb_clk

According to a commit in the 3.4 vendor kernel sources[0] the
ocmemcx_ahb_clk clock "is controlled by RPM and should not be touched by
APPS.".

[0] https://git.codelinaro.org/clo/la/kernel/msm/-/commit/37df5f2d91b4d5768b37fcaacaeea958dd683ebc

And indeed, when using MDSS+GPU+OCMEM on MSM8226 and not using
clk_ignore_unused, when Linux tries to disable the clock the device
crashes and reboots.

And since there's also no evidence of this clock in msm8974 vendor
kernel sources, remove the clock for msm8226 and msm8974.

Fixes: d8b212014e69 ("clk: qcom: Add support for MSM8974's multimedia clock controller (MMCC)")
Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230902-msm8226-ocmemcx_ahb_clk-remove-v1-1-8124dbde83b9@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Luca Weiss and committed by
Bjorn Andersson
471e2875 1fc62c83

-19
-18
drivers/clk/qcom/mmcc-msm8974.c
··· 2170 2170 }, 2171 2171 }; 2172 2172 2173 - static struct clk_branch ocmemcx_ahb_clk = { 2174 - .halt_reg = 0x405c, 2175 - .clkr = { 2176 - .enable_reg = 0x405c, 2177 - .enable_mask = BIT(0), 2178 - .hw.init = &(struct clk_init_data){ 2179 - .name = "ocmemcx_ahb_clk", 2180 - .parent_hws = (const struct clk_hw*[]){ 2181 - &mmss_ahb_clk_src.clkr.hw 2182 - }, 2183 - .num_parents = 1, 2184 - .ops = &clk_branch2_ops, 2185 - }, 2186 - }, 2187 - }; 2188 - 2189 2173 static struct clk_branch ocmemcx_ocmemnoc_clk = { 2190 2174 .halt_reg = 0x4058, 2191 2175 .clkr = { ··· 2487 2503 [MMSS_MMSSNOC_BTO_AHB_CLK] = &mmss_mmssnoc_bto_ahb_clk.clkr, 2488 2504 [MMSS_MMSSNOC_AXI_CLK] = &mmss_mmssnoc_axi_clk.clkr, 2489 2505 [MMSS_S0_AXI_CLK] = &mmss_s0_axi_clk.clkr, 2490 - [OCMEMCX_AHB_CLK] = &ocmemcx_ahb_clk.clkr, 2491 2506 [OXILI_GFX3D_CLK] = &oxili_gfx3d_clk.clkr, 2492 2507 [OXILICX_AHB_CLK] = &oxilicx_ahb_clk.clkr, 2493 2508 [OXILICX_AXI_CLK] = &oxilicx_axi_clk.clkr, ··· 2643 2660 [MMSS_MMSSNOC_BTO_AHB_CLK] = &mmss_mmssnoc_bto_ahb_clk.clkr, 2644 2661 [MMSS_MMSSNOC_AXI_CLK] = &mmss_mmssnoc_axi_clk.clkr, 2645 2662 [MMSS_S0_AXI_CLK] = &mmss_s0_axi_clk.clkr, 2646 - [OCMEMCX_AHB_CLK] = &ocmemcx_ahb_clk.clkr, 2647 2663 [OCMEMCX_OCMEMNOC_CLK] = &ocmemcx_ocmemnoc_clk.clkr, 2648 2664 [OCMEMNOC_CLK] = &ocmemnoc_clk.clkr, 2649 2665 [OXILI_GFX3D_CLK] = &oxili_gfx3d_clk.clkr,
-1
include/dt-bindings/clock/qcom,mmcc-msm8974.h
··· 121 121 #define MMSS_MMSSNOC_BTO_AHB_CLK 112 122 122 #define MMSS_MMSSNOC_AXI_CLK 113 123 123 #define MMSS_S0_AXI_CLK 114 124 - #define OCMEMCX_AHB_CLK 115 125 124 #define OCMEMCX_OCMEMNOC_CLK 116 126 125 #define OXILI_OCMEMGX_CLK 117 127 126 #define OCMEMNOC_CLK 118