Jelajahi Sumber

[MIPS] Make dma_map_sg handle sg elements which are longer than one page

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Thomas Bogendoerfer 18 tahun lalu
induk
melakukan
fbd5604d56
1 mengubah file dengan 3 tambahan dan 2 penghapusan
  1. 3 2
      arch/mips/mm/dma-default.c

+ 3 - 2
arch/mips/mm/dma-default.c

@@ -168,8 +168,9 @@ int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		addr = (unsigned long) page_address(sg->page);
 		if (!plat_device_is_coherent(dev) && addr)
 			__dma_sync(addr + sg->offset, sg->length, direction);
-		sg->dma_address = plat_map_dma_mem_page(dev, sg->page) +
-		                  sg->offset;
+		sg->dma_address = plat_map_dma_mem(dev,
+				                   (void *)(addr + sg->offset),
+						   sg->length);
 	}
 
 	return nents;