[PATCH v4 4/4] OMAP3/4: iommu: adapt to runtime pm
felipe.contreras at gmail.com
Mon Dec 19 11:27:17 EST 2011
On Fri, Dec 16, 2011 at 5:18 AM, Ramirez Luna, Omar <omar.ramirez at ti.com> wrote:
> On Thu, Dec 15, 2011 at 6:53 PM, Felipe Contreras
> <felipe.contreras at gmail.com> wrote:
>> On Thu, Dec 15, 2011 at 6:18 AM, Omar Ramirez Luna <omar.ramirez at ti.com> wrote:
>>> Use runtime PM functionality interfaced with hwmod enable/idle
>>> functions, to replace direct clock operations, reset and sysconfig
>>> Removed clk handling during interrupt, given that in order to receive one,
>>> the device should be powered on in advance. Now doing pm_runtime_get/put
>>> on iommu_enable/disable so it doesn't rely on others to keep the clocks on.
>>> Signed-off-by: Omar Ramirez Luna <omar.ramirez at ti.com>
>>> arch/arm/mach-omap2/iommu2.c | 17 -----------
>>> arch/arm/mach-omap2/omap-iommu.c | 1 -
>>> arch/arm/plat-omap/include/plat/iommu.h | 2 -
>>> arch/arm/plat-omap/include/plat/iommu2.h | 2 -
>>> drivers/iommu/omap-iommu.c | 44 ++++++++++++-----------------
>>> 5 files changed, 18 insertions(+), 48 deletions(-)
>> Shouldn't pm_runtime_enable() be called in omap_iommu_init(), and
>> omap_iommu_probe() call pm_runtime_get_sync()/put() on the sections
>> where the device should be active?
> omap_iommu_init is called on module init however omap_iommu_probe is
> called by driver instance (isp, iva), on probe pm_runtime_enable
> activates runtime for both isp and iva devices, one at a time.
Yes, but omap_iommu_init() will *always* be called at boot time and
will register the data for all the devices. If the 'iommu' module is
never loaded, then the devices will remain active the whole time.
Maybe Paul or somebody with better knowledge of the pm runtime
framework can clarify this.
More information about the linux-arm-kernel