Re: [PATCH v3 20/23] interconnect: qcom: icc-rpm: Fix bucket number

From: Stephan Gerhold
Date: Mon Jun 12 2023 - 17:02:41 EST


On Mon, Jun 12, 2023 at 08:24:37PM +0200, Konrad Dybcio wrote:
> SMD RPM only provides two buckets, one each for the active-only and
> active-sleep RPM contexts. Use the correct constant to allocate and
> operate on them.
>
> This will make the qcom,icc.h header no longer work with this driver,
> mostly because.. it was never meant to! The commit that introduced
> bucket support to SMD RPM was trying to shove a square into a round
> hole and it did not work out very well. That said, there are no
> active users of SMD RPM ICC + qcom,icc.h, so that doesn't hurt.
>
> Fixes: dcbce7b0a79c ("interconnect: qcom: icc-rpm: Support multiple buckets")
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> ---
> drivers/interconnect/qcom/icc-rpm.c | 14 +++++++-------
> drivers/interconnect/qcom/icc-rpm.h | 4 ++--
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c
> index 5ffcf5ca8914..54a9999fe55d 100644
> --- a/drivers/interconnect/qcom/icc-rpm.c
> +++ b/drivers/interconnect/qcom/icc-rpm.c
> @@ -249,7 +249,7 @@ static void qcom_icc_pre_bw_aggregate(struct icc_node *node)
> size_t i;
>
> qn = node->data;
> - for (i = 0; i < QCOM_ICC_NUM_BUCKETS; i++) {
> + for (i = 0; i < QCOM_SMD_RPM_STATE_NUM; i++) {
> qn->sum_avg[i] = 0;
> qn->max_peak[i] = 0;
> }
> @@ -275,7 +275,7 @@ static int qcom_icc_bw_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
> if (!tag)
> tag = QCOM_ICC_TAG_ALWAYS;

We should replace this with the RPM variant. Also, can you check which
header/file still includes qcom,icc.h? Don't think we should have it
included at all for RPM so that referencing the wrong things cannot
happen.

Thanks,
Stephan