• Quentin Perret's avatar
    PM / OPP: Introduce a power estimation helper · a4f342b9
    Quentin Perret authored
    The Energy Model (EM) framework provides an API to let drivers register
    the active power of CPUs. The drivers are expected to provide a callback
    method which estimates the power consumed by a CPU at each available
    performance levels. How exactly this should be implemented, however,
    depends on the platform.
    
    On some systems, PM_OPP knows the voltage and frequency at which CPUs
    can run. When coupled with the CPU 'capacitance' (as provided by the
    'dynamic-power-coefficient' devicetree binding), it is possible to
    estimate the dynamic power consumption of a CPU as P = C * V^2 * f, with
    C its capacitance and V and f respectively the voltage and frequency of
    the OPP. The Intelligent Power Allocator (IPA) thermal governor already
    implements that estimation method, in the thermal framework.
    
    However, this power estimation method can be applied to any platform
    where all the parameters are known (C, V and f), and not only those
    suffering thermal issues. As such, the code implementing this feature
    can be re-used to also populate the EM framework now used by EAS.
    
    As a first step, introduce in PM_OPP a helper function which CPUFreq
    drivers can use to register into the EM framework. This duplicates the
    power estimation done in IPA until it can be migrated to using the EM
    framework. This will be done later, once the EM framework has support
    for at least all platforms currently supported by IPA.
    Signed-off-by: default avatarQuentin Perret <quentin.perret@arm.com>
    Tested-by: default avatarMatthias Kaehlcke <mka@chromium.org>
    Reviewed-by: default avatarMatthias Kaehlcke <mka@chromium.org>
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    a4f342b9
of.c 28.8 KB