|
@@ -111,7 +111,7 @@ EXPORT_SYMBOL(dma_free_coherent);
|
|
* The 32-bit bus address to use is returned.
|
|
* The 32-bit bus address to use is returned.
|
|
*
|
|
*
|
|
* Once the device is given the dma address, the device owns this memory
|
|
* Once the device is given the dma address, the device owns this memory
|
|
- * until either pci_unmap_single or pci_dma_sync_single is performed.
|
|
|
|
|
|
+ * until either dma_unmap_single or pci_dma_sync_single is performed.
|
|
*/
|
|
*/
|
|
dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
|
|
dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
|
|
enum dma_data_direction direction)
|
|
enum dma_data_direction direction)
|
|
@@ -129,7 +129,7 @@ EXPORT_SYMBOL(dma_map_single);
|
|
/*
|
|
/*
|
|
* Map a set of buffers described by scatterlist in streaming
|
|
* Map a set of buffers described by scatterlist in streaming
|
|
* mode for DMA. This is the scather-gather version of the
|
|
* mode for DMA. This is the scather-gather version of the
|
|
- * above pci_map_single interface. Here the scatter gather list
|
|
|
|
|
|
+ * above dma_map_single interface. Here the scatter gather list
|
|
* elements are each tagged with the appropriate dma address
|
|
* elements are each tagged with the appropriate dma address
|
|
* and length. They are obtained via sg_dma_{address,length}(SG).
|
|
* and length. They are obtained via sg_dma_{address,length}(SG).
|
|
*
|
|
*
|
|
@@ -139,7 +139,7 @@ EXPORT_SYMBOL(dma_map_single);
|
|
* The routine returns the number of addr/length pairs actually
|
|
* The routine returns the number of addr/length pairs actually
|
|
* used, at most nents.
|
|
* used, at most nents.
|
|
*
|
|
*
|
|
- * Device ownership issues as mentioned above for pci_map_single are
|
|
|
|
|
|
+ * Device ownership issues as mentioned above for dma_map_single are
|
|
* the same here.
|
|
* the same here.
|
|
*/
|
|
*/
|
|
int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
|
|
int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
|
|
@@ -158,3 +158,20 @@ int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
|
|
}
|
|
}
|
|
|
|
|
|
EXPORT_SYMBOL(dma_map_sg);
|
|
EXPORT_SYMBOL(dma_map_sg);
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Map a single page of the indicated size for DMA in streaming mode.
|
|
|
|
+ * The 32-bit bus address to use is returned.
|
|
|
|
+ *
|
|
|
|
+ * Device ownership issues as mentioned above for dma_map_single are
|
|
|
|
+ * the same here.
|
|
|
|
+ */
|
|
|
|
+dma_addr_t dma_map_page(struct device *dev, struct page *page, unsigned long offset,
|
|
|
|
+ size_t size, enum dma_data_direction direction)
|
|
|
|
+{
|
|
|
|
+ BUG_ON(direction == DMA_NONE);
|
|
|
|
+ flush_dcache_page(page);
|
|
|
|
+ return (dma_addr_t) page_to_phys(page) + offset;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+EXPORT_SYMBOL(dma_map_page);
|