diff mbox series

[1/3] interconnect: Aggregate before setting initial bandwidth

Message ID 20201013135913.29059-1-georgi.djakov@linaro.org
State Accepted
Commit d3703b3e255f56d543aac183f8aafdbfd7096559
Headers show
Series [1/3] interconnect: Aggregate before setting initial bandwidth | expand

Commit Message

Georgi Djakov Oct. 13, 2020, 1:59 p.m. UTC
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 <georgi.djakov@linaro.org>
---
 drivers/interconnect/core.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Saravana Kannan Oct. 13, 2020, 6:04 p.m. UTC | #1
On Tue, Oct 13, 2020 at 6:59 AM Georgi Djakov <georgi.djakov@linaro.org> 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 <georgi.djakov@linaro.org>

> ---

>  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 <saravanak@google.com>


-Saravana
diff mbox series

Patch

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;