[PATCH] dmaengine: add CSR SiRFprimaII DMAC driver

Barry Song 21cnbao at gmail.com
Fri Sep 9 19:37:59 EDT 2011


2011/9/10 Vinod Koul <vkoul at infradead.org>:
> On Fri, 2011-09-09 at 10:52 +0800, Barry Song wrote:
>> >
>> > Actually, there is no real case for xlen > dma_width. this picture is
>> > only explaining what will happen if we set xlen > dma_width.
>> > when xlen > dma_width, for every line, dma will transfer only
>> > dma_width. Then the extra data is wrapped around
>> > to the next data line, it will corrupt the DMA transfer for
>> > multiple-line 2-D DMA since the extra data will overlap with the real
>> > next line.
>> >
>> > if we set ylen to 0, the DMA becomes 1D, the wrap-around of the extra
>> > data has no issue nobody will overlap with it.
>> >
>>
>> For example, if we set xlen = 7, dma_width =4, ylen > 0
>> then dma will happen like:
>> 0~6
>> 4~10
>> 8~14
>> 12~18
>> ....
> Is there a real world use case of this??

no real case actually and hardware spec says it is wrong to set xlen >
dma_width since it causes the above overlap.

>
>>
>> But for ylen=0, it has no issue. there is no next line to overlap with
>> the extra data.
>>
>> in case we set xlen = 0, something funny will happen:
>> i will copy the same memory again and again(ylen+1 times).
>
>
> --
> ~Vinod Koul
> Intel Corp.
>
>

Thanks
barry



More information about the linux-arm-kernel mailing list