diff options
Diffstat (limited to 'arch/ia64/kernel/pci-swiotlb.c')
-rw-r--r-- | arch/ia64/kernel/pci-swiotlb.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c index 9f172c864377..6bf8f66786bd 100644 --- a/arch/ia64/kernel/pci-swiotlb.c +++ b/arch/ia64/kernel/pci-swiotlb.c | |||
@@ -16,24 +16,36 @@ EXPORT_SYMBOL(swiotlb); | |||
16 | /* Set this to 1 if there is a HW IOMMU in the system */ | 16 | /* Set this to 1 if there is a HW IOMMU in the system */ |
17 | int iommu_detected __read_mostly; | 17 | int iommu_detected __read_mostly; |
18 | 18 | ||
19 | struct dma_mapping_ops swiotlb_dma_ops = { | 19 | static dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, |
20 | unsigned long offset, size_t size, | ||
21 | enum dma_data_direction dir, | ||
22 | struct dma_attrs *attrs) | ||
23 | { | ||
24 | return swiotlb_map_single_attrs(dev, page_address(page) + offset, size, | ||
25 | dir, attrs); | ||
26 | } | ||
27 | |||
28 | static void swiotlb_unmap_page(struct device *dev, dma_addr_t dma_handle, | ||
29 | size_t size, enum dma_data_direction dir, | ||
30 | struct dma_attrs *attrs) | ||
31 | { | ||
32 | swiotlb_unmap_single_attrs(dev, dma_handle, size, dir, attrs); | ||
33 | } | ||
34 | |||
35 | struct dma_map_ops swiotlb_dma_ops = { | ||
20 | .alloc_coherent = swiotlb_alloc_coherent, | 36 | .alloc_coherent = swiotlb_alloc_coherent, |
21 | .free_coherent = swiotlb_free_coherent, | 37 | .free_coherent = swiotlb_free_coherent, |
22 | .map_single = swiotlb_map_single, | 38 | .map_page = swiotlb_map_page, |
23 | .unmap_single = swiotlb_unmap_single, | 39 | .unmap_page = swiotlb_unmap_page, |
24 | .map_single_attrs = swiotlb_map_single_attrs, | 40 | .map_sg = swiotlb_map_sg_attrs, |
25 | .unmap_single_attrs = swiotlb_unmap_single_attrs, | 41 | .unmap_sg = swiotlb_unmap_sg_attrs, |
26 | .map_sg_attrs = swiotlb_map_sg_attrs, | ||
27 | .unmap_sg_attrs = swiotlb_unmap_sg_attrs, | ||
28 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, | 42 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, |
29 | .sync_single_for_device = swiotlb_sync_single_for_device, | 43 | .sync_single_for_device = swiotlb_sync_single_for_device, |
30 | .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, | 44 | .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, |
31 | .sync_single_range_for_device = swiotlb_sync_single_range_for_device, | 45 | .sync_single_range_for_device = swiotlb_sync_single_range_for_device, |
32 | .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, | 46 | .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, |
33 | .sync_sg_for_device = swiotlb_sync_sg_for_device, | 47 | .sync_sg_for_device = swiotlb_sync_sg_for_device, |
34 | .map_sg = swiotlb_map_sg, | 48 | .dma_supported = swiotlb_dma_supported, |
35 | .unmap_sg = swiotlb_unmap_sg, | ||
36 | .dma_supported_op = swiotlb_dma_supported, | ||
37 | .mapping_error = swiotlb_dma_mapping_error, | 49 | .mapping_error = swiotlb_dma_mapping_error, |
38 | }; | 50 | }; |
39 | 51 | ||