Skip to content

Commit f753067

Browse files
author
Georgi Djakov
committed
Revert "interconnect: qcom: icc-rpmh: Add BCMs to commit list in pre_aggregate"
This reverts commit f84f5b6, which is causing regressions on some platforms, preventing them to boot or do a clean reboot. This is because the above commit is sending also all the zero bandwidth requests to turn off any resources that might be enabled unnecessarily, but currently this may turn off interconnects that are enabled by default, but with no consumer to keep them on. Let's revert this for now as some platforms are not ready for such change yet. In the future we can introduce some _ignore_unused option that could keep also the unused resources on platforms that have only partial interconnect support and also add .shutdown callbacks to deal with disabling the resources in the right order. Reported-by: Stephen Boyd <[email protected]> Reported-by: Bjorn Andersson <[email protected]> Link: https://lore.kernel.org/r/CAE-0n52iVgX0JjjnYi=NDg49xP961p=+W5R2bmO+2xwRceFhfA@mail.gmail.com Signed-off-by: Georgi Djakov <[email protected]>
1 parent 36a21d5 commit f753067

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/interconnect/qcom/icc-rpmh.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,13 @@ void qcom_icc_pre_aggregate(struct icc_node *node)
2020
{
2121
size_t i;
2222
struct qcom_icc_node *qn;
23-
struct qcom_icc_provider *qp;
2423

2524
qn = node->data;
26-
qp = to_qcom_provider(node->provider);
2725

2826
for (i = 0; i < QCOM_ICC_NUM_BUCKETS; i++) {
2927
qn->sum_avg[i] = 0;
3028
qn->max_peak[i] = 0;
3129
}
32-
33-
for (i = 0; i < qn->num_bcms; i++)
34-
qcom_icc_bcm_voter_add(qp->voter, qn->bcms[i]);
3530
}
3631
EXPORT_SYMBOL_GPL(qcom_icc_pre_aggregate);
3732

@@ -49,8 +44,10 @@ int qcom_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
4944
{
5045
size_t i;
5146
struct qcom_icc_node *qn;
47+
struct qcom_icc_provider *qp;
5248

5349
qn = node->data;
50+
qp = to_qcom_provider(node->provider);
5451

5552
if (!tag)
5653
tag = QCOM_ICC_TAG_ALWAYS;
@@ -70,6 +67,9 @@ int qcom_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
7067
*agg_avg += avg_bw;
7168
*agg_peak = max_t(u32, *agg_peak, peak_bw);
7269

70+
for (i = 0; i < qn->num_bcms; i++)
71+
qcom_icc_bcm_voter_add(qp->voter, qn->bcms[i]);
72+
7373
return 0;
7474
}
7575
EXPORT_SYMBOL_GPL(qcom_icc_aggregate);

0 commit comments

Comments
 (0)