Update arch/ to use sg helpers
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
@@ -165,12 +165,11 @@ int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
|
||||
for (i = 0; i < nents; i++, sg++) {
|
||||
unsigned long addr;
|
||||
|
||||
addr = (unsigned long) page_address(sg->page);
|
||||
addr = (unsigned long) sg_virt(sg);
|
||||
if (!plat_device_is_coherent(dev) && addr)
|
||||
__dma_sync(addr + sg->offset, sg->length, direction);
|
||||
__dma_sync(addr, sg->length, direction);
|
||||
sg->dma_address = plat_map_dma_mem(dev,
|
||||
(void *)(addr + sg->offset),
|
||||
sg->length);
|
||||
(void *)addr, sg->length);
|
||||
}
|
||||
|
||||
return nents;
|
||||
@@ -223,10 +222,9 @@ void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
|
||||
for (i = 0; i < nhwentries; i++, sg++) {
|
||||
if (!plat_device_is_coherent(dev) &&
|
||||
direction != DMA_TO_DEVICE) {
|
||||
addr = (unsigned long) page_address(sg->page);
|
||||
addr = (unsigned long) sg_virt(sg);
|
||||
if (addr)
|
||||
__dma_sync(addr + sg->offset, sg->length,
|
||||
direction);
|
||||
__dma_sync(addr, sg->length, direction);
|
||||
}
|
||||
plat_unmap_dma_mem(sg->dma_address);
|
||||
}
|
||||
@@ -304,7 +302,7 @@ void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
|
||||
/* Make sure that gcc doesn't leave the empty loop body. */
|
||||
for (i = 0; i < nelems; i++, sg++) {
|
||||
if (cpu_is_noncoherent_r10000(dev))
|
||||
__dma_sync((unsigned long)page_address(sg->page),
|
||||
__dma_sync((unsigned long)page_address(sg_page(sg)),
|
||||
sg->length, direction);
|
||||
plat_unmap_dma_mem(sg->dma_address);
|
||||
}
|
||||
@@ -322,7 +320,7 @@ void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nele
|
||||
/* Make sure that gcc doesn't leave the empty loop body. */
|
||||
for (i = 0; i < nelems; i++, sg++) {
|
||||
if (!plat_device_is_coherent(dev))
|
||||
__dma_sync((unsigned long)page_address(sg->page),
|
||||
__dma_sync((unsigned long)page_address(sg_page(sg)),
|
||||
sg->length, direction);
|
||||
plat_unmap_dma_mem(sg->dma_address);
|
||||
}
|
||||
|
Reference in New Issue
Block a user