dmaengine: pl330: support transfer that doesn't align with (burst len * burst size)
authorHuibin Hong <huibin.hong@rock-chips.com>
Wed, 15 Jun 2016 09:24:03 +0000 (17:24 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 23 Jun 2016 03:33:09 +0000 (11:33 +0800)
commitc66ecf19b98ffac86177c29859e683de39f44e73
tree9430a2333d1d8e46ec9afb2c77be96cd6898eb63
parent691d13010d71b371c7a70edd820b047697f4370a
dmaengine: pl330: support transfer that doesn't align with (burst len * burst size)

Below code transfers 0x10002 bytes:
First loop 256*16*16=0x10000, burst size is 1, burst length is 16.
Then the second loop 2 bytes, burst size is 1, burst length is 1.

f0041000:        DMAMOV CCR 0xbc02f1
f0041006:        DMAMOV SAR 0xdd6c0000
f004100c:        DMAMOV DAR 0xff1d0400
f0041012:        DMALP_0 15
f0041014:        DMALP_1 255
f0041016:        DMAWFPB 12
f0041018:        DMALDA
f0041019:        DMASTPB 12
f004101b:        DMAFLUSHP 12
f004101d:        DMALPENDA_1 bjmpto_7
f004101f:        DMALPENDA_0 bjmpto_b
f0041021:        DMAMOV CCR 0x800201
f0041027:        DMALP_1 1
f0041029:        DMAWFPB 12
f004102b:        DMALDA
f004102c:        DMASTPB 12
f004102e:        DMAFLUSHP 12
f0041030:        DMALPENDA_1 bjmpto_7
f0041032:        DMASEV 0
f0041034:        DMAEND

Change-Id: I97ef33aeac8ebe18c63201cf4c1c04f5548e9a4a
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
drivers/dma/pl330.c