summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mm/dma-mapping.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index b9677ada421f..e7380bafbfa6 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -353,8 +353,6 @@ static void __dma_free_buffer(struct page *page, size_t size)
353 } 353 }
354} 354}
355 355
356#ifdef CONFIG_MMU
357
358static void *__alloc_from_contiguous(struct device *dev, size_t size, 356static void *__alloc_from_contiguous(struct device *dev, size_t size,
359 pgprot_t prot, struct page **ret_page, 357 pgprot_t prot, struct page **ret_page,
360 const void *caller, bool want_vaddr, 358 const void *caller, bool want_vaddr,
@@ -656,22 +654,6 @@ static inline pgprot_t __get_dma_pgprot(unsigned long attrs, pgprot_t prot)
656 return prot; 654 return prot;
657} 655}
658 656
659#define nommu() 0
660
661#else /* !CONFIG_MMU */
662
663#define nommu() 1
664
665#define __get_dma_pgprot(attrs, prot) __pgprot(0)
666#define __alloc_remap_buffer(dev, size, gfp, prot, ret, c, wv) NULL
667#define __alloc_from_pool(size, ret_page) NULL
668#define __alloc_from_contiguous(dev, size, prot, ret, c, wv, coherent_flag, gfp) NULL
669#define __free_from_pool(cpu_addr, size) do { } while (0)
670#define __free_from_contiguous(dev, page, cpu_addr, size, wv) do { } while (0)
671#define __dma_free_remap(cpu_addr, size) do { } while (0)
672
673#endif /* CONFIG_MMU */
674
675static void *__alloc_simple_buffer(struct device *dev, size_t size, gfp_t gfp, 657static void *__alloc_simple_buffer(struct device *dev, size_t size, gfp_t gfp,
676 struct page **ret_page) 658 struct page **ret_page)
677{ 659{
@@ -814,7 +796,7 @@ static void *__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle,
814 796
815 if (cma) 797 if (cma)
816 buf->allocator = &cma_allocator; 798 buf->allocator = &cma_allocator;
817 else if (nommu() || is_coherent) 799 else if (is_coherent)
818 buf->allocator = &simple_allocator; 800 buf->allocator = &simple_allocator;
819 else if (allowblock) 801 else if (allowblock)
820 buf->allocator = &remap_allocator; 802 buf->allocator = &remap_allocator;
@@ -863,8 +845,7 @@ static int __arm_dma_mmap(struct device *dev, struct vm_area_struct *vma,
863 void *cpu_addr, dma_addr_t dma_addr, size_t size, 845 void *cpu_addr, dma_addr_t dma_addr, size_t size,
864 unsigned long attrs) 846 unsigned long attrs)
865{ 847{
866 int ret = -ENXIO; 848 int ret;
867#ifdef CONFIG_MMU
868 unsigned long nr_vma_pages = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; 849 unsigned long nr_vma_pages = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
869 unsigned long nr_pages = PAGE_ALIGN(size) >> PAGE_SHIFT; 850 unsigned long nr_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
870 unsigned long pfn = dma_to_pfn(dev, dma_addr); 851 unsigned long pfn = dma_to_pfn(dev, dma_addr);
@@ -879,10 +860,6 @@ static int __arm_dma_mmap(struct device *dev, struct vm_area_struct *vma,
879 vma->vm_end - vma->vm_start, 860 vma->vm_end - vma->vm_start,
880 vma->vm_page_prot); 861 vma->vm_page_prot);
881 } 862 }
882#else
883 ret = vm_iomap_memory(vma, vma->vm_start,
884 (vma->vm_end - vma->vm_start));
885#endif /* CONFIG_MMU */
886 863
887 return ret; 864 return ret;
888} 865}
@@ -901,9 +878,7 @@ int arm_dma_mmap(struct device *dev, struct vm_area_struct *vma,
901 void *cpu_addr, dma_addr_t dma_addr, size_t size, 878 void *cpu_addr, dma_addr_t dma_addr, size_t size,
902 unsigned long attrs) 879 unsigned long attrs)
903{ 880{
904#ifdef CONFIG_MMU
905 vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot); 881 vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot);
906#endif /* CONFIG_MMU */
907 return __arm_dma_mmap(dev, vma, cpu_addr, dma_addr, size, attrs); 882 return __arm_dma_mmap(dev, vma, cpu_addr, dma_addr, size, attrs);
908} 883}
909 884