Skip to content

Commit

Permalink
DMAENGINE: COH 901 318 lli sg offset fix
Browse files Browse the repository at this point in the history
This makes the COH 901 318 respect the scatter offset field by using
the sg_phys() rather than the sg_dma_address() so we get a pointer
to the actual data we want to send rather than the beginning of the
buffer. Also initialize the lli:s a bit more thoroughly.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Linus Walleij authored and Dan Williams committed Mar 2, 2010
1 parent 516fd43 commit 56a5d3c
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions drivers/dma/coh901318_lli.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ coh901318_lli_alloc(struct coh901318_pool *pool, unsigned int len)

lli = head;
lli->phy_this = phy;
lli->link_addr = 0x00000000;
lli->virt_link_addr = 0x00000000U;

for (i = 1; i < len; i++) {
lli_prev = lli;
Expand All @@ -85,13 +87,13 @@ coh901318_lli_alloc(struct coh901318_pool *pool, unsigned int len)

DEBUGFS_POOL_COUNTER_ADD(pool, 1);
lli->phy_this = phy;
lli->link_addr = 0x00000000;
lli->virt_link_addr = 0x00000000U;

lli_prev->link_addr = phy;
lli_prev->virt_link_addr = lli;
}

lli->link_addr = 0x00000000U;

spin_unlock(&pool->lock);

return head;
Expand Down Expand Up @@ -268,10 +270,10 @@ coh901318_lli_fill_sg(struct coh901318_pool *pool,

if (dir == DMA_TO_DEVICE)
/* increment source address */
src = sg_dma_address(sg);
src = sg_phys(sg);
else
/* increment destination address */
dst = sg_dma_address(sg);
dst = sg_phys(sg);

bytes_to_transfer = sg_dma_len(sg);

Expand Down

0 comments on commit 56a5d3c

Please sign in to comment.