OpenCloudOS-Kernel/drivers/interconnect/qcom
Konrad Dybcio 17fc623e0f interconnect: qcom: icc-rpm: Fix bandwidth calculations
Up until now, we've been aggregating the bandwidth values and only
dividing them by the bus width of the source node. This was completely
wrong, as different nodes on a given path may (and usually do) have
varying bus widths.  That in turn, resulted in the calculated clock rates
being completely bogus - usually they ended up being much higher, as
NoC_A<->NoC_B links are very wide.

Since we're not using the aggregate bandwidth value for anything other
than clock rate calculations, remodel qcom_icc_bus_aggregate() to
calculate the per-context clock rate for a given provider, taking into
account the bus width of every individual node.

Fixes: 30c8fa3ec6 ("interconnect: qcom: Add MSM8916 interconnect provider driver")
Reported-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Acked-by: Georgi Djakov <djakov@kernel.org>
Link: https://lore.kernel.org/r/20230526-topic-smd_icc-v7-22-09c78c175546@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2023-07-15 09:54:45 -07:00
..
Kconfig interconnect: qcom: Drop obsolete dependency on COMPILE_TEST 2023-03-20 16:42:26 +02:00
Makefile interconnect: qcom: Define RPM bus clocks 2023-07-15 09:54:44 -07:00
bcm-voter.c interconnect: qcom: Add missing MODULE_DEVICE_TABLE 2021-05-11 07:26:31 +03:00
bcm-voter.h interconnect: qcom: Consolidate interconnect RPMh support 2020-02-28 12:11:40 +02:00
icc-common.c interconnect: qcom: Kconfig: Make INTERCONNECT_QCOM tristate 2022-09-20 15:53:57 +03:00
icc-common.h interconnect: qcom: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +03:00
icc-rpm-clocks.c interconnect: qcom: Define RPM bus clocks 2023-07-15 09:54:44 -07:00
icc-rpm.c interconnect: qcom: icc-rpm: Fix bandwidth calculations 2023-07-15 09:54:45 -07:00
icc-rpm.h interconnect: qcom: icc-rpm: Fix bucket number 2023-07-15 09:54:45 -07:00
icc-rpmh.c interconnect: qcom: rpmh: fix registration race 2023-03-13 21:13:48 +02:00
icc-rpmh.h interconnect: qcom: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +03:00
msm8916.c interconnect: qcom: msm8916: Hook up RPM bus clk definitions 2023-07-15 09:54:45 -07:00
msm8939.c interconnect: qcom: msm8939: Hook up RPM bus clk definitions 2023-07-15 09:54:45 -07:00
msm8974.c interconnect: qcom: Fold smd-rpm.h into icc-rpm.h 2023-07-15 09:54:44 -07:00
msm8996.c interconnect: qcom: icc-rpm: Control bus rpmcc from icc 2023-07-15 09:54:45 -07:00
msm8996.h interconnect: qcom: Add MSM8996 interconnect provider driver 2021-11-22 18:35:22 +02:00
osm-l3.c interconnect: qcom: osm-l3: drop unuserd header inclusion 2023-03-20 16:42:27 +02:00
qcm2290.c interconnect: qcom: qcm2290: Hook up RPM bus clk definitions 2023-07-15 09:54:45 -07:00
qcs404.c interconnect: qcom: qcs404: Hook up RPM bus clk definitions 2023-07-15 09:54:45 -07:00
qdu1000.c interconnect: qcom: Add QDU1000/QRU1000 interconnect driver 2023-01-05 16:16:49 +02:00
qdu1000.h interconnect: qcom: Add QDU1000/QRU1000 interconnect driver 2023-01-05 16:16:49 +02:00
sa8775p.c interconnect: qcom: add a driver for sa8775p 2023-01-19 20:23:00 +02:00
sc7180.c interconnect: qcom: sc7180: drop double space 2022-11-17 17:39:49 +02:00
sc7180.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc7280.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sc7280.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc8180x.c interconnect: qcom: sc8180x: Drop IP0 interconnects 2023-01-18 16:14:33 +02:00
sc8180x.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc8280xp.c interconnect: qcom: sc8280xp: Drop IP0 interconnects 2023-01-18 16:15:03 +02:00
sc8280xp.h interconnect: qcom: sc8280xp: Drop IP0 interconnects 2023-01-18 16:15:03 +02:00
sdm660.c interconnect: qcom: icc-rpm: Control bus rpmcc from icc 2023-07-15 09:54:45 -07:00
sdm670.c interconnect: qcom: add sdm670 interconnects 2023-01-19 20:12:47 +02:00
sdm670.h interconnect: qcom: add sdm670 interconnects 2023-01-19 20:12:47 +02:00
sdm845.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sdm845.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sdx55.c Merge branch 'icc-const' into icc-next 2022-05-18 03:02:32 +03:00
sdx55.h interconnect: qcom: sdx55: drop IP0 remnants 2023-01-18 16:11:52 +02:00
sdx65.c interconnect: qcom: Add SDX65 interconnect provider driver 2022-04-26 14:11:26 +03:00
sdx65.h interconnect: qcom: Add SDX65 interconnect provider driver 2022-04-26 14:11:26 +03:00
sm6350.c interconnect: qcom: Add SM6350 driver support 2022-06-20 14:27:07 +03:00
sm6350.h interconnect: qcom: Add SM6350 driver support 2022-06-20 14:27:07 +03:00
sm8150.c interconnect: qcom: sm8150: Drop IP0 interconnects 2023-01-18 16:12:54 +02:00
sm8150.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sm8250.c interconnect: qcom: sm8250: Drop IP0 interconnects 2023-01-18 16:14:13 +02:00
sm8250.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sm8350.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sm8350.h interconnect: qcom: Add SM8350 interconnect provider driver 2021-03-27 14:34:12 +02:00
sm8450.c interconnect: qcom: sm8450: switch to qcom_icc_rpmh_* function 2023-03-06 16:48:32 +02:00
sm8450.h interconnect: qcom: Add SM8450 interconnect provider driver 2021-12-14 23:43:26 +02:00
sm8550.c interconnect: qcom: sm8550: switch to qcom_icc_rpmh_* function 2023-03-06 16:48:38 +02:00
sm8550.h interconnect: qcom: Add SM8550 interconnect provider driver 2022-12-29 11:36:33 +02:00
smd-rpm.c interconnect: qcom: smd-rpm: Add rpmcc handling skeleton code 2023-07-15 09:54:44 -07:00