[PATCH v5] ARM: omap: edma: add suspend suspend/resume hooks
Joel Fernandes
joelf at ti.com
Fri Nov 8 11:14:30 EST 2013
On 11/08/2013 12:28 AM, Kevin Hilman wrote:
[..]
>>> Also, I believe it was already suggested by Nishanth, but the late/early
>>> callbacks are probably more appropriate here than the noirq callbacks.
>>> Unless there's a *really* good reason to use the noirq callbacks, they
>>> should be avoided.
>>>
>>> That being said, I wonder if the whole approach here is the right one.
>>> I know you're basing your stuff on some TI tree, but that doesn't make
>>> it the right way (usually, it's the opposite, but I digress...) ;)
>>>
>>> IMO, EDMA should be done like we currently do I2C and not implement
>>> suspend/resume at all. Instead, the driver should do runtime PM done on
>>
>> But a potential problem with this is powering edma on or off between xfers may
>> slow things down quite a bit because xfers happen so much often and there is
>> some overhead in the pm_runtime calls which adds up overtime when dealing with
>> something as frequent as EDMA. Also we would lose the global EDMA context right
>> so we'd have to restore the context every time during runtime PM (?).
>
> Have a look at the autosuspend feature of runtime PM. (c.f.
> Documentation/power/pm_runtime.txt)
Sure, will do that. Thanks :)
Just one more silly question, in very frequent operations is there no over-head
even when using autosuspend? Because when I traced last time (without
autosuspend), the depth of pm runtime calls were quite a lot but this could also
be because of the OMAP implementation.
>> I had a patch that also made AES driver not pm_runtime_get/put specially when
>> the next crypto request was imminent. But instead adopted a softer approach
>> where the pm_runtime_put call would happen at a time when we are sure we're at
>> the end of all requests. This resulted in quite a speed up.
>
> Sounds like you partially re-invented autosuspend.
Hehe. :)
regards,
-Joel
More information about the linux-arm-kernel
mailing list