2020-10-13 23:51:49

by Georgi Djakov

[permalink] [raw]
Subject: [PATCH 1/3] interconnect: Aggregate before setting initial bandwidth

When setting the initial bandwidth, make sure to call the aggregate()
function (if such is implemented for the current provider), to handle
cases when data needs to be aggregated first.

Fixes: b1d681d8d324 ("interconnect: Add sync state support")
Signed-off-by: Georgi Djakov <[email protected]>
---
drivers/interconnect/core.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
index eea47b4c84aa..974a66725d09 100644
--- a/drivers/interconnect/core.c
+++ b/drivers/interconnect/core.c
@@ -971,6 +971,9 @@ void icc_node_add(struct icc_node *node, struct icc_provider *provider)
}
node->avg_bw = node->init_avg;
node->peak_bw = node->init_peak;
+ if (provider->aggregate)
+ provider->aggregate(node, 0, node->init_avg, node->init_peak,
+ &node->avg_bw, &node->peak_bw);
provider->set(node, node);
node->avg_bw = 0;
node->peak_bw = 0;


2020-10-14 02:37:34

by Saravana Kannan

[permalink] [raw]
Subject: Re: [PATCH 1/3] interconnect: Aggregate before setting initial bandwidth

On Tue, Oct 13, 2020 at 6:59 AM Georgi Djakov <[email protected]> wrote:
>
> When setting the initial bandwidth, make sure to call the aggregate()
> function (if such is implemented for the current provider), to handle
> cases when data needs to be aggregated first.
>
> Fixes: b1d681d8d324 ("interconnect: Add sync state support")
> Signed-off-by: Georgi Djakov <[email protected]>
> ---
> drivers/interconnect/core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
> index eea47b4c84aa..974a66725d09 100644
> --- a/drivers/interconnect/core.c
> +++ b/drivers/interconnect/core.c
> @@ -971,6 +971,9 @@ void icc_node_add(struct icc_node *node, struct icc_provider *provider)
> }
> node->avg_bw = node->init_avg;
> node->peak_bw = node->init_peak;
> + if (provider->aggregate)
> + provider->aggregate(node, 0, node->init_avg, node->init_peak,
> + &node->avg_bw, &node->peak_bw);
> provider->set(node, node);
> node->avg_bw = 0;
> node->peak_bw = 0;

Acked-by: Saravana Kannan <[email protected]>

-Saravana