On 18 October 2012 12:15, Huang Shijie <b32955@xxxxxxxxxxxxx> wrote: > 于 2012年10月18日 14:18, Vinod Koul 写道: > >> 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? -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html