--- linux-4.9.37/arch/arm/mm/dma-mapping.c 2017-07-12 16:42:41.000000000 +0300 +++ linux-4.9.y/arch/arm/mm/dma-mapping.c 2021-06-07 13:01:32.000000000 +0300 @@ -275,7 +275,7 @@ return mask; } -static void __dma_clear_buffer(struct page *page, size_t size, int coherent_flag) +void __dma_clear_buffer(struct page *page, size_t size, int coherent_flag) { /* * Ensure that the allocated pages are zeroed, and that any data @@ -304,6 +304,7 @@ } } } +EXPORT_SYMBOL(__dma_clear_buffer); /* * Allocate a DMA buffer for 'dev' of size 'size' using the @@ -528,6 +529,12 @@ flush_tlb_kernel_range(start, end); } +void bsp_flush_tlb_kernel_range(unsigned long start, unsigned long end) +{ + flush_tlb_kernel_range(start, end); +} +EXPORT_SYMBOL(bsp_flush_tlb_kernel_range); + static void *__alloc_remap_buffer(struct device *dev, size_t size, gfp_t gfp, pgprot_t prot, struct page **ret_page, const void *caller, bool want_vaddr) @@ -2397,3 +2404,10 @@ { arm_teardown_iommu_dma_ops(dev); } + +void bsp_dmac_map_area(const void *kaddr, size_t size, + enum dma_data_direction dir) +{ + dmac_map_area(kaddr, size, dir); +} +EXPORT_SYMBOL(bsp_dmac_map_area);