mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 10:44:14 +08:00
dmaengine: dma-jz4780: Add missing residue DTC mask
The 'dtc' word in jz DMA descriptors contains two fields: The lowest 24 bits are the transfer count, and upper 8 bits are the DOA offset to next descriptor. The upper 8 bits are now correctly masked off when computing residue in jz4780_dma_desc_residue(). Note that reads of the DTCn hardware reg are automatically masked this way. Signed-off-by: Daniel Silsby <dansilsby@gmail.com> Signed-off-by: Paul Cercueil <paul@crapouillou.net> Tested-by: Mathieu Malaterre <malat@debian.org> Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
17a8e30e9d
commit
5a6187d70f
@ -616,7 +616,8 @@ static size_t jz4780_dma_desc_residue(struct jz4780_dma_chan *jzchan,
|
||||
residue = 0;
|
||||
|
||||
for (i = next_sg; i < desc->count; i++)
|
||||
residue += desc->desc[i].dtc << jzchan->transfer_shift;
|
||||
residue += (desc->desc[i].dtc & GENMASK(23, 0)) <<
|
||||
jzchan->transfer_shift;
|
||||
|
||||
if (next_sg != 0) {
|
||||
count = jz4780_dma_chn_readl(jzdma, jzchan->id,
|
||||
|
Loading…
Reference in New Issue
Block a user