Re: [PATCH v6 11/16] dmaengine: tegra-apb: Keep clock enabled only during of DMA transfer

From: Jon Hunter
Date: Fri Jan 31 2020 - 04:02:38 EST



On 30/01/2020 20:04, Dmitry Osipenko wrote:

...

>>> The tegra_dma_stop() should put RPM anyways, which is missed in yours
>>> sample. Please see handle_continuous_head_request().
>>
>> Yes and that is deliberate. The cyclic transfers the transfers *should*
>> not stop until terminate_all is called. The tegra_dma_stop in
>> handle_continuous_head_request() is an error condition and so I am not
>> sure it is actually necessary to call pm_runtime_put() here.
>
> But then tegra_dma_stop() shouldn't unset the "busy" mark.

True.

>>> I'm also finding the explicit get/put a bit easier to follow in the
>>> code, don't you think so?
>>
>> I can see that, but I was thinking that in the case of cyclic transfers,
>> it should only really be necessary to call the get/put at the beginning
>> and end. So in my mind there should only be two exit points which are
>> the ISR handler for SG and terminate_all for SG and cyclic.
>
> Alright, I'll update this patch.

Hmmm ... I am wondering if we should not mess with that and leave how
you have it.

--
nvpublic