linux/drivers/interconnect
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
..
imx interconnect: imx: fix registration race 2023-03-07 22:19:05 +02:00
qcom interconnect: qcom: icc-rpm: Fix bandwidth calculations 2023-07-15 09:54:45 -07:00
samsung interconnect: exynos: drop redundant link destroy 2023-03-13 21:13:48 +02:00
bulk.c interconnect: add device managed bulk API 2022-07-04 16:14:29 +03:00
core.c interconnect: drop unused icc_get() interface 2023-05-30 22:04:46 +03:00
icc-clk.c interconnect: icc-clk: fix modular build 2023-06-10 10:30:38 +03:00
internal.h interconnect: Add helpers for enabling/disabling a path 2020-05-10 18:30:37 +03:00
Kconfig interconnect: add clk-based icc provider support 2023-05-18 19:02:23 +03:00
Makefile interconnect: add clk-based icc provider support 2023-05-18 19:02:23 +03:00
trace.h interconnect: Add basic tracepoints 2019-12-16 09:25:23 +02:00