[PATCH v4 4/4] OMAP3/4: iommu: adapt to runtime pm
felipe.contreras at gmail.com
Fri Dec 23 12:04:43 EST 2011
On Fri, Dec 23, 2011 at 6:30 PM, Ramirez Luna, Omar <omar.ramirez at ti.com> wrote:
> On Mon, Dec 19, 2011 at 10:27 AM, Felipe Contreras
> <felipe.contreras at gmail.com> wrote:
>> 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.
> There are 2 omap_iommu_init :/ Thought you were talking about the one
> in drivers/iommu/omap-iommu.c.
>> If the 'iommu' module is
>> never loaded, then the devices will remain active the whole time.
> oma-iommu is meant to be built-in as part of the kernel, there is no
> option for module anymore.
Which omap-iommu? The platform driver, or the device stuff? The device
stuff is always built-in, but not the platform driver
(drivers/iommu/omap-iommu.c), that can be a module.
More information about the linux-arm-kernel