[PATCH] dma: add new DMA control commands
From: Jassi Brar <hidden>
Date: 2012-10-18 15:25:34
Also in:
alsa-devel, linux-i2c, linux-mmc, lkml
On 18 October 2012 20:48, Huang Shijie [off-list ref] wrote:
On Thu, Oct 18, 2012 at 5:29 AM, Jassi Brar [off-list ref] wrote:quoted
On 18 October 2012 12:15, Huang Shijie [off-list ref] wrote:quoted
? 2012?10?18? 14:18, Vinod Koul ??:quoted
Why cant you do start (prepare clock etc) when you submit the descriptor to dmaengine. Can be done in tx_submit callback. Similarly remove the clock when dma transaction gets completed.I ever thought this method too. But it will become low efficient in the following case: Assuming the gpmi-nand driver has to read out 1024 pages in one _SINGLE_ read operation. The gpmi-nand will submit the descriptor to dmaengine per page. So with your method, the system will repeat the enable/disable dma clock 1024 time. At every enable/disable dma clock, the system has to enable the clock chain and it's parents ... But with this patch, we only need to enable/disable dma clock one time, just at we select the nand chip.If the clock is the dmac's property (not channels'), the toggling seems too aggressive. You could try using runtime_suspend/resume for clock disabling/enabling. How about employing autosuspend with a few ms delay?Yes, employing the autosuspend is workable method too.o But it's a little more complicated then this patch. You have to create a thread or workqueue to do the job.
I am not sure why you would need to create any thread/workqueue ? Just pm_runtime_put_autosuspend() in drivers/ to see how it works.