Add a Kconfig symbol that indicates an architecture provides a arch_dma_prep_coherent implementation, and provide a stub otherwise. This will allow the generic dma-iommu code to use it while still allowing to be built for cache coherent architectures.
Unified · Split
| @@ -13,6 +13,7 @@ config ARM64 · 12 unmodified lines | |||
| 13 | select ARCH_HAS_DEVMEM_IS_ALLOWED | 13 | select ARCH_HAS_DEVMEM_IS_ALLOWED |
| 14 | select ARCH_HAS_DMA_COHERENT_TO_PFN | 14 | select ARCH_HAS_DMA_COHERENT_TO_PFN |
| 15 | select ARCH_HAS_DMA_MMAP_PGPROT | 15 | select ARCH_HAS_DMA_MMAP_PGPROT |
| 16 | select ARCH_HAS_DMA_PREP_COHERENT | ||
| 16 | select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI | 17 | select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI |
| 17 | select ARCH_HAS_ELF_RANDOMIZE | 18 | select ARCH_HAS_ELF_RANDOMIZE |
| 18 | select ARCH_HAS_FAST_MULTIPLIER | 19 | select ARCH_HAS_FAST_MULTIPLIER |
| @@ -1,6 +1,7 @@ | |||
| 1 | config CSKY | 1 | config CSKY |
| 2 | def_bool y | 2 | def_bool y |
| 3 | select ARCH_32BIT_OFF_T | 3 | select ARCH_32BIT_OFF_T |
| 4 | select ARCH_HAS_DMA_PREP_COHERENT | ||
| 4 | select ARCH_HAS_SYNC_DMA_FOR_CPU | 5 | select ARCH_HAS_SYNC_DMA_FOR_CPU |
| 5 | select ARCH_HAS_SYNC_DMA_FOR_DEVICE | 6 | select ARCH_HAS_SYNC_DMA_FOR_DEVICE |
| 6 | select ARCH_USE_BUILTIN_BSWAP | 7 | select ARCH_USE_BUILTIN_BSWAP |
| @@ -72,6 +72,12 @@ static inline void arch_sync_dma_for_cpu_all(struct device *dev) · 71 unmodified lines | |||
| 72 | } | 72 | } |
| 73 | #endif /* CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL */ | 73 | #endif /* CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL */ |
| 74 | 74 | ||
| 75 | #ifdef CONFIG_ARCH_HAS_DMA_PREP_COHERENT | ||
| 75 | void arch_dma_prep_coherent(struct page *page, size_t size); | 76 | void arch_dma_prep_coherent(struct page *page, size_t size); |
| 77 | #else | ||
| 78 | static inline void arch_dma_prep_coherent(struct page *page, size_t size) | ||
| 79 | { | ||
| 80 | } | ||
| 81 | #endif /* CONFIG_ARCH_HAS_DMA_PREP_COHERENT */ | ||
| 76 | 82 | ||
| 77 | #endif /* _LINUX_DMA_NONCOHERENT_H */ | 83 | #endif /* _LINUX_DMA_NONCOHERENT_H */ |
| @@ -38,6 +38,9 @@ config ARCH_HAS_SYNC_DMA_FOR_CPU · 37 unmodified lines | |||
| 38 | config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL | 38 | config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL |
| 39 | bool | 39 | bool |
| 40 | 40 | ||
| 41 | config ARCH_HAS_DMA_PREP_COHERENT | ||
| 42 | bool | ||
| 43 | |||
| 41 | config ARCH_HAS_DMA_COHERENT_TO_PFN | 44 | config ARCH_HAS_DMA_COHERENT_TO_PFN |
| 42 | bool | 45 | bool |
| 43 | 46 | ||