Re: [PATCH v18 2/4] dmaengine: tegra: Add tegra gpcdma driver

From: Dmitry Osipenko
Date: Fri Feb 04 2022 - 07:28:38 EST


04.02.2022 15:15, Dmitry Osipenko пишет:
> 04.02.2022 09:47, Akhil R пишет:
>>> 03.02.2022 06:44, Akhil R пишет:
>>>>> But why do you need to pause at all here and can't use
>>>>> tegra_dma_stop_client() even if pause is supported?
>>>> The recommended method to terminate a transfer in
>>>> between is to pause the channel first and then disable it.
>>>> This is more graceful and stable for the hardware.
>>>> stop_client() is more abrupt, though it does the job.
>>>
>>> If there is no real practical difference, then I'd use the common method
>>> only. This will make code cleaner and simpler a tad.
>> This is the documented way of clean exit from a transfer, especially for
>> cyclic transfers where the DMA is configured in continuous mode.
>> I guess it might not be a good idea to deviate from that unless there is
>> something demanding it compulsorily.
>>
>> I agree that the code will be cleaner. I would try to see if I can find a cleaner
>> way to do this. Please do let me know if you have any suggestion.
>
> Will be great if you could find out and provide a detailed explanation
> about the exact differences of the methods from software perspective.
> Try to ask the hardware people.
>
> If you won't be able to find out, then use both methods. Then you could
> specify the "pause" callback within the tegra_dma_chip_data
> [tdma->chip_data->pause(tdma)], instead of using condition in the code.

s/pause/terminate/