Up until now, we've been aggregating the bandwidth values and only
dividing them by the bus width of the source node. This was completely
wrong, as different nodes on a given path may (and usually do) have
varying bus widths. That in turn, resulted in the calculated clock rates
being completely bogus - usually they ended up being much higher, as
NoC_A<->NoC_B links are very wide.
Since we're not using the aggregate bandwidth value for anything other
than clock rate calculations, remodel qcom_icc_bus_aggregate() to
calculate the per-context clock rate for a given provider, taking into
account the bus width of every individual node.
Fixes:
|
||
|---|---|---|
| .. | ||
| imx | ||
| qcom | ||
| samsung | ||
| Kconfig | ||
| Makefile | ||
| bulk.c | ||
| core.c | ||
| icc-clk.c | ||
| internal.h | ||
| trace.h | ||