[RFC PATCH] DMA: PL330: Update PL330 DMAC to support runtime PM
Chanwoo Choi
cw00.choi at samsung.com
Wed Jul 27 05:43:46 EDT 2011
Russell King - ARM Linux wrote:
> On Wed, Jul 27, 2011 at 03:14:27PM +0900, Chanwoo Choi wrote:
>> +#ifdef CONFIG_PM_RUNTIME
>> + struct dma_pl330_chan *pch;
>> + struct dma_pl330_dmac *pdmac;
>> +#endif
>>
>> dma_cap_zero(mask);
>> dma_cap_set(info->cap, mask);
>>
>> chan = dma_request_channel(mask, pl330_filter, (void *)dma_ch);
>>
>> +#ifdef CONFIG_PM_RUNTIME
>> + pch = container_of(chan, struct dma_pl330_chan, chan);
>> + pdmac = pch->dmac;
>> +
>> + pm_runtime_get_sync(pdmac->pif.dev);
>> +#endif
>
> This is not the right way to do this. The pm runtime stuff should be
> internal to the PL330 driver. Take a moment to think about this:
>
> You need to wake it up just before a transfer starts. You need to
> put it back to sleep just after the last transfer has finished.
> That gives you a hint where the calls need to be.
>
> That can only be done from within the PL330 driver.
>
Thanks for your comment&hint.
I will repost the patch which support runtime pm of PL330 in internal to the PL330 driver.
Regards,
Chanwoo Choi
More information about the linux-arm-kernel
mailing list