]> www.infradead.org Git - linux.git/commit
interconnect: qcom: rpm: Handle interface clocks
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Thu, 18 May 2023 19:58:01 +0000 (21:58 +0200)
committerGeorgi Djakov <djakov@kernel.org>
Sun, 21 May 2023 07:25:45 +0000 (10:25 +0300)
commit2e2113c8a64f2668baca28a82144a4f0dc22a217
tree875ffac3e08f494afe71dbd43150a04f0d30f6ff
parent32882f657e7811abb6a883653b68dce0539a693e
interconnect: qcom: rpm: Handle interface clocks

Some (but not all) providers (or their specific nodes) require
specific clocks to be turned on before they can be accessed. Failure
to ensure that results in a seemingly random system crash (which
would usually happen at boot with the interconnect driver built-in),
resulting in the platform not booting up properly.

Limit the number of bus_clocks to 2 (which is the maximum that SMD
RPM interconnect supports anyway) and handle non-scaling clocks
separately. Update MSM8996 and SDM660 drivers to make sure they do
not regress with this change.

This unfortunately has to be done in one patch to prevent either
compile errors or broken bisect.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230518195801.2556998-1-konrad.dybcio@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
drivers/interconnect/qcom/icc-rpm.c
drivers/interconnect/qcom/icc-rpm.h
drivers/interconnect/qcom/msm8996.c
drivers/interconnect/qcom/sdm660.c