On 26-11-18, 09:44, Daniel Lezcano wrote: > In the case of asymmetric SoC with the same micro-architecture, we > have a group of CPUs with smaller OPPs than the other group. One > example is the 96boards dragonboard 820c. There is no dmips/MHz > difference between both groups, so no need to specify the values in > the DT. Unfortunately, without these defined, there is no scaling > capacity computation triggered, so we need to write > 'capacity-dmips-mhz' for each CPU with the same value in order to > force the scaled capacity computation. > > In order to fix this situation, allocate 'raw_capacity' so the pointer > is set and the init_cpu_capacity_callback() function can be called. > > This was tested on db820c: > - specified values in the DT (correct results) > - partial values defined in the DT (error + fallback to defaults) > - no specified values in the DT (correct results) > > correct results are: > cat /sys/devices/system/cpu/cpu*/cpu_capacity > 758 > 758 > 1024 > 1024 > > ... respectively for CPU0, CPU1, CPU2 and CPU3. > > That reflects the capacity for the max frequencies 1593600 and 2150400. > > Cc: Chris Redpath <chris.redp...@linaro.org> > Cc: Quentin Perret <quentin.per...@linaro.org> > Cc: Viresh Kumar <viresh.ku...@linaro.org> > Cc: Amit Kucheria <amit.kuche...@linaro.org> > Cc: Nicolas Dechesne <nicolas.deche...@linaro.org> > Cc: Niklas Cassel <niklas.cas...@linaro.org> > Signed-off-by: Daniel Lezcano <daniel.lezc...@linaro.org> > --- > drivers/base/arch_topology.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-)
Reviewed-by: Viresh Kumar <viresh.ku...@linaro.org> -- viresh