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

interconnect: qcom: qcm2290: Hook up MAS_APPS_PROC's bus clock

This single node has its own clock which seems to be responsible for
transactions between CPUSS (CPU + some stuff) and the GNOC. See [1]
for reference.

Define it and hook it up.

[1] https://android.googlesource.com/kernel/msm-extra/devicetree/+/02f8c342b23c20a5cf967df649814be37a08227c%5E%21/#F0
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230726-topic-icc_coeff-v4-5-c04b60caa467@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>

authored by

Konrad Dybcio and committed by
Georgi Djakov
fa35757a ba3f8266

+10
+6
drivers/interconnect/qcom/icc-rpm-clocks.c
··· 25 25 }; 26 26 EXPORT_SYMBOL_GPL(bimc_clk); 27 27 28 + const struct rpm_clk_resource mem_1_clk = { 29 + .resource_type = QCOM_SMD_RPM_MEM_CLK, 30 + .clock_id = 1, 31 + }; 32 + EXPORT_SYMBOL_GPL(mem_1_clk); 33 + 28 34 const struct rpm_clk_resource bus_0_clk = { 29 35 .resource_type = QCOM_SMD_RPM_BUS_CLK, 30 36 .clock_id = 0,
+1
drivers/interconnect/qcom/icc-rpm.h
··· 152 152 extern const struct rpm_clk_resource bus_0_clk; 153 153 extern const struct rpm_clk_resource bus_1_clk; 154 154 extern const struct rpm_clk_resource bus_2_clk; 155 + extern const struct rpm_clk_resource mem_1_clk; 155 156 extern const struct rpm_clk_resource mmaxi_0_clk; 156 157 extern const struct rpm_clk_resource mmaxi_1_clk; 157 158 extern const struct rpm_clk_resource qup_clk;
+3
drivers/interconnect/qcom/qcm2290.c
··· 112 112 .qos.qos_mode = NOC_QOS_MODE_FIXED, 113 113 .qos.prio_level = 0, 114 114 .qos.areq_prio = 0, 115 + .bus_clk_desc = &mem_1_clk, 116 + .ab_coeff = 159, 117 + .ib_coeff = 96, 115 118 .mas_rpm_id = 0, 116 119 .slv_rpm_id = -1, 117 120 .num_links = ARRAY_SIZE(mas_appss_proc_links),