|
@@ -134,7 +134,9 @@ static dma_addr_t m68k_dma_map_page(struct device *dev, struct page *page,
|
|
|
{
|
|
|
dma_addr_t handle = page_to_phys(page) + offset;
|
|
|
|
|
|
- dma_sync_single_for_device(dev, handle, size, dir);
|
|
|
+ if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
|
|
|
+ dma_sync_single_for_device(dev, handle, size, dir);
|
|
|
+
|
|
|
return handle;
|
|
|
}
|
|
|
|
|
@@ -146,6 +148,10 @@ static int m68k_dma_map_sg(struct device *dev, struct scatterlist *sglist,
|
|
|
|
|
|
for_each_sg(sglist, sg, nents, i) {
|
|
|
sg->dma_address = sg_phys(sg);
|
|
|
+
|
|
|
+ if (attrs & DMA_ATTR_SKIP_CPU_SYNC)
|
|
|
+ continue;
|
|
|
+
|
|
|
dma_sync_single_for_device(dev, sg->dma_address, sg->length,
|
|
|
dir);
|
|
|
}
|