• Jon Hunter's avatar
    ARM: PMU: fix runtime PM enable · 2ac29a14
    Jon Hunter authored
    Commit 7be2958e (ARM: PMU: Add runtime PM Support) updated the ARM PMU code to
    use runtime PM which was prototyped and validated on the OMAP devices. In this
    commit, there is no call pm_runtime_enable() and for OMAP devices
    pm_runtime_enable() is currently being called from the OMAP PMU code when the
    PMU device is created. However, there are two problems with this:
    
    1. For any other ARM device wishing to use runtime PM for PMU they will need
       to call pm_runtime_enable() for runtime PM to work.
    2. When booting with device-tree and using device-tree to create the PMU
       device, pm_runtime_enable() needs to be called from within the ARM PERF
       driver as we are no longer calling any device specific code to create the
       device. Hence, PMU does not work on OMAP devices that use the runtime PM
       callbacks when using device-tree to create the PMU device.
    
    Therefore,  call pm_runtime_enable() directly from the ARM PMU driver when
    registering the device. For platforms that do not use runtime PM,
    pm_runtime_enable() does nothing and for platforms that do use runtime PM but
    may not require it specifically for PMU, this will just add a little overhead
    when initialising and uninitialising the PMU device.
    
    Tested with PERF on OMAP2420, OMAP3430 and OMAP4460.
    Acked-by: default avatarKevin Hilman <khilman@ti.com>
    Acked-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    2ac29a14
pmu.c 2.54 KB