Thread (18 messages) 18 messages, 7 authors, 2012-11-09

Re: [PATCH] dma: add new DMA control commands

From: Jassi Brar <hidden>
Date: 2012-10-18 15:25:34
Also in: alsa-devel, linux-arm-kernel, linux-i2c, 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help