linux-xiaomi-chiron/drivers/interconnect/qcom
Leo Yan dcbce7b0a7 interconnect: qcom: icc-rpm: Support multiple buckets
The current interconnect rpm driver uses a single aggregate bandwidth to
calculate the clock rates for both active and sleep clocks; therefore,
it has no chance to separate bandwidth requests for these two kinds of
clocks.

This patch studies the implementation from interconnect rpmh driver to
support multiple buckets.  The rpmh driver provides three buckets for
AMC, WAKE, and SLEEP; this driver only needs to use WAKE and SLEEP
buckets, but we keep the same way with rpmh driver, this can allow us to
reuse the DT binding and avoid to define duplicated data structures.

This patch introduces two callbacks: qcom_icc_pre_bw_aggregate() is used
to clean up bucket values before aggregate bandwidth requests, and
qcom_icc_bw_aggregate() is to aggregate bandwidth for buckets.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Link: https://lore.kernel.org/r/20220712015929.2789881-5-leo.yan@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
2022-07-12 10:03:09 +03: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: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +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.c interconnect: qcom: icc-rpm: Support multiple buckets 2022-07-12 10:03:09 +03:00
icc-rpm.h interconnect: qcom: icc-rpm: Support multiple buckets 2022-07-12 10:03:09 +03:00
icc-rpmh.c interconnect: qcom: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +03:00
icc-rpmh.h interconnect: qcom: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +03:00
Kconfig Merge branch 'icc-sdx65' into icc-next 2022-05-18 02:40:50 +03:00
Makefile interconnect: qcom: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +03:00
msm8916.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
msm8939.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
msm8974.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
msm8996.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
msm8996.h interconnect: qcom: Add MSM8996 interconnect provider driver 2021-11-22 18:35:22 +02:00
osm-l3.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
qcm2290.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
qcs404.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
sc7180.c Merge branch 'icc-const' into icc-next 2022-05-18 03:02:32 +03:00
sc7180.h interconnect: qcom: Add OSM L3 support on SC7180 2020-03-03 19:02:52 +02:00
sc7280.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sc7280.h interconnect: qcom: Add EPSS L3 support on SC7280 2021-11-22 16:57:22 +02:00
sc8180x.c interconnect: qcom: sc8180x: Reformat node and bcm definitions 2022-05-18 02:51:34 +03:00
sc8180x.h interconnect: qcom: sc8180x: Fix QUP0 nodes 2022-05-18 02:51:34 +03:00
sc8280xp.c interconnect: qcom: sc8280xp: constify qcom_icc_bcm pointers 2022-04-27 16:37:43 +03:00
sc8280xp.h interconnect: qcom: Add SC8280XP interconnect provider 2022-04-22 11:04:43 +03:00
sdm660.c interconnect: qcom: constify icc_node pointers 2022-04-23 15:11:48 +03:00
sdm845.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sdm845.h interconnect: qcom: Add OSM L3 interconnect provider support 2020-03-03 19:02:52 +02:00
sdx55.c Merge branch 'icc-const' into icc-next 2022-05-18 03:02:32 +03:00
sdx55.h interconnect: qcom: Add SDX55 interconnect provider driver 2021-01-27 13:11:33 +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
sm8150.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sm8150.h interconnect: qcom: Add OSM L3 support on SM8150 2020-09-08 16:29:01 +03:00
sm8250.c interconnect: qcom: constify qcom_icc_bcm pointers 2022-04-23 15:11:57 +03:00
sm8250.h interconnect: qcom: Add EPSS L3 support on SM8250 2020-09-08 16:29:01 +03: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: Move qcom_icc_xlate_extended() to a common file 2022-07-12 10:01:30 +03:00
sm8450.h interconnect: qcom: Add SM8450 interconnect provider driver 2021-12-14 23:43:26 +02:00
smd-rpm.c interconnect: qcom: Add interconnect RPM over SMD driver 2019-08-13 23:06:40 +03:00
smd-rpm.h interconnect: qcom: Add interconnect RPM over SMD driver 2019-08-13 23:06:40 +03:00