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/