]> xenbits.xensource.com Git - people/pauldu/linux.git/commitdiff
Export swiotlb_map/unmap_single
authorPaul Durrant <paul.durrant@citrix.com>
Fri, 12 Oct 2018 14:57:35 +0000 (15:57 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Fri, 12 Oct 2018 14:57:35 +0000 (15:57 +0100)
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
include/linux/swiotlb.h
kernel/dma/swiotlb.c

index 965be92c33b56a7a77e792961a3794cf3293465e..850618d68c7f1a8001ff90002b1513acab2af1e7 100644 (file)
@@ -80,6 +80,14 @@ extern void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
                               size_t size, enum dma_data_direction dir,
                               unsigned long attrs);
 
+extern phys_addr_t swiotlb_map_single(struct device *hwdev,
+                                     phys_addr_t phys, size_t size,
+                                     enum dma_data_direction dir,
+                                     unsigned long attrs);
+extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr,
+                                size_t size, enum dma_data_direction dir,
+                                unsigned long attrs);
+
 extern int
 swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
                     enum dma_data_direction dir,
index 4f8a6dbf0b60973c875ee8b777be8b0a274c8907..3e23c33c6d4af7f31a97bd0fa43b9baec96bdf7a 100644 (file)
@@ -593,9 +593,9 @@ found:
 /*
  * Allocates bounce buffer and returns its physical address.
  */
-static phys_addr_t
-map_single(struct device *hwdev, phys_addr_t phys, size_t size,
-          enum dma_data_direction dir, unsigned long attrs)
+phys_addr_t
+swiotlb_map_single(struct device *hwdev, phys_addr_t phys, size_t size,
+                  enum dma_data_direction dir, unsigned long attrs)
 {
        dma_addr_t start_dma_addr;
 
@@ -816,7 +816,7 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
        trace_swiotlb_bounced(dev, dev_addr, size, swiotlb_force);
 
        /* Oh well, have to allocate and map a bounce buffer. */
-       map = map_single(dev, phys, size, dir, attrs);
+       map = swiotlb_map_single(dev, phys, size, dir, attrs);
        if (map == SWIOTLB_MAP_ERROR) {
                swiotlb_full(dev, size, dir, 1);
                return __phys_to_dma(dev, io_tlb_overflow_buffer);
@@ -842,9 +842,9 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
  * After this call, reads by the cpu to the buffer are guaranteed to see
  * whatever the device wrote there.
  */
-static void unmap_single(struct device *hwdev, dma_addr_t dev_addr,
-                        size_t size, enum dma_data_direction dir,
-                        unsigned long attrs)
+void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr,
+                          size_t size, enum dma_data_direction dir,
+                          unsigned long attrs)
 {
        phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
 
@@ -871,7 +871,7 @@ void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
                        size_t size, enum dma_data_direction dir,
                        unsigned long attrs)
 {
-       unmap_single(hwdev, dev_addr, size, dir, attrs);
+       swiotlb_unmap_single(hwdev, dev_addr, size, dir, attrs);
 }
 
 /*
@@ -949,8 +949,9 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
 
                if (swiotlb_force == SWIOTLB_FORCE ||
                    !dma_capable(hwdev, dev_addr, sg->length)) {
-                       phys_addr_t map = map_single(hwdev, sg_phys(sg),
-                                                    sg->length, dir, attrs);
+                       phys_addr_t map =
+                               swiotlb_map_single(hwdev, sg_phys(sg),
+                                                  sg->length, dir, attrs);
                        if (map == SWIOTLB_MAP_ERROR) {
                                /* Don't panic here, we expect map_sg users
                                   to do proper error handling. */
@@ -984,8 +985,8 @@ swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
        BUG_ON(dir == DMA_NONE);
 
        for_each_sg(sgl, sg, nelems, i)
-               unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir,
-                            attrs);
+               swiotlb_unmap_single(hwdev, sg->dma_address,
+                                    sg_dma_len(sg), dir, attrs);
 }
 
 /*