diff options
Diffstat (limited to 'lib/swiotlb.c')
| -rw-r--r-- | lib/swiotlb.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/swiotlb.c b/lib/swiotlb.c index e8a47c8cf77e..d81afab85167 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c | |||
| @@ -145,6 +145,12 @@ static void *swiotlb_bus_to_virt(dma_addr_t address) | |||
| 145 | return phys_to_virt(swiotlb_bus_to_phys(address)); | 145 | return phys_to_virt(swiotlb_bus_to_phys(address)); |
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | int __weak swiotlb_arch_address_needs_mapping(struct device *hwdev, | ||
| 149 | dma_addr_t addr, size_t size) | ||
| 150 | { | ||
| 151 | return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size); | ||
| 152 | } | ||
| 153 | |||
| 148 | int __weak swiotlb_arch_range_needs_mapping(phys_addr_t paddr, size_t size) | 154 | int __weak swiotlb_arch_range_needs_mapping(phys_addr_t paddr, size_t size) |
| 149 | { | 155 | { |
| 150 | return 0; | 156 | return 0; |
| @@ -309,10 +315,10 @@ cleanup1: | |||
| 309 | return -ENOMEM; | 315 | return -ENOMEM; |
| 310 | } | 316 | } |
| 311 | 317 | ||
| 312 | static int | 318 | static inline int |
| 313 | address_needs_mapping(struct device *hwdev, dma_addr_t addr, size_t size) | 319 | address_needs_mapping(struct device *hwdev, dma_addr_t addr, size_t size) |
| 314 | { | 320 | { |
| 315 | return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size); | 321 | return swiotlb_arch_address_needs_mapping(hwdev, addr, size); |
| 316 | } | 322 | } |
| 317 | 323 | ||
| 318 | static inline int range_needs_mapping(phys_addr_t paddr, size_t size) | 324 | static inline int range_needs_mapping(phys_addr_t paddr, size_t size) |
