interconnect: qcom: icc-rpm: Enforce 2 or 0 bus clocks
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Fri, 7 Apr 2023 20:14:48 +0000 (22:14 +0200)
committerGeorgi Djakov <djakov@kernel.org>
Sun, 21 May 2023 07:25:58 +0000 (10:25 +0300)
commita867cf9b65eadc172bc73e56b13458742d4d050e
treec327667f8bb8ad00dadfc81b56ff33323e3d39fc
parent2e2113c8a64f2668baca28a82144a4f0dc22a217
interconnect: qcom: icc-rpm: Enforce 2 or 0 bus clocks

For SMD RPM bus scaling to work, we need a pair of sleep-wake clocks.
The variable number of them we previously supported was only a hack
to keep the clocks required for QoS register access, but now that
these are separated, we can leave bus_clks to the actual bus clocks.

In cases where there is no actual bus scaling (such as A0NoC on MSM8996
and GNoC on SDM660 where the HLOS is only supposed to program the QoS
registers and the bus is either static or controlled remotely), allow
for no clock scaling with a boolean property.

Remove all the code related to allowing an arbitrary number of bus_clks,
replace the number by BUS_CLK_MAX (= 2) and guard the bus clock paths
to ensure they are not taken on non-scaling buses.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230228-topic-qos-v8-6-ee696a2c15a9@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