Re: [PATCH v5] ARM: omap: edma: add suspend suspend/resume hooks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Joel,

On Thu, Nov 7, 2013 at 8:58 PM, Joel Fernandes <joelf@xxxxxx> wrote:

> On 11/07/2013 06:02 PM, Kevin Hilman wrote:
>> Daniel Mack <zonque@xxxxxxxxx> writes:
> [..]
>>> +    .resume_noirq   = edma_pm_resume,
>>> +};
>>
>> 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)

> 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.

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux