On 23.07.2019 15:21, Artur Świgoń wrote: > +static int exynos_bus_icc_aggregate(struct icc_node *node, u32 avg_bw, > + u32 peak_bw, u32 *agg_avg, u32 *agg_peak) > +{ > + *agg_peak = *agg_avg = peak_bw; > + > + return 0; > +} The only current provider aggregates "avg" with "sum" and "peak" with "max", any particular reason to do something different? This function doesn't even really do aggregation, if there is a second request for "0" then the first request is lost. I didn't find any docs but my interpretation of avg/peak is that "avg" is for constant traffic like a display or VPU pushing pixels and "peak" is for variable traffic like networking. I assume devices which make "peak" requests are aggregated with max because they're not expected to all max-out together. In PATCH 11 you're making a bandwidth request based on resolution, that traffic is constant and guaranteed to happend while the display is on so it would make sense to request it as an "avg" and aggregate it with "sum". -- Regards, Leonard