Skip to content

Commit

Permalink
arm64: Use swiotlb late initialisation
Browse files Browse the repository at this point in the history
Since arm64 does not support ISA, there is no need for early swiotlb
initialisation. This patch switches the DMA mapping code to
swiotlb_tlb_late_init_with_default_size(). A side effect of this is that
GFP_DMA is used for the swiotlb buffer and devices with a 32-bit
coherent mask are correctly supported.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  • Loading branch information
Catalin Marinas committed Feb 27, 2014
1 parent 19e7640 commit 3690951
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
10 changes: 8 additions & 2 deletions arch/arm64/mm/dma-mapping.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,17 @@ static struct dma_map_ops coherent_swiotlb_dma_ops = {
.mapping_error = swiotlb_dma_mapping_error,
};

void __init arm64_swiotlb_init(void)
extern int swiotlb_late_init_with_default_size(size_t default_size);

static int __init swiotlb_late_init(void)
{
size_t swiotlb_size = min(SZ_64M, MAX_ORDER_NR_PAGES << PAGE_SHIFT);

dma_ops = &coherent_swiotlb_dma_ops;
swiotlb_init(1);

return swiotlb_late_init_with_default_size(swiotlb_size);
}
subsys_initcall(swiotlb_late_init);

#define PREALLOC_DMA_DEBUG_ENTRIES 4096

Expand Down
2 changes: 0 additions & 2 deletions arch/arm64/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,6 @@ static void __init free_unused_memmap(void)
*/
void __init mem_init(void)
{
arm64_swiotlb_init();

max_mapnr = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;

#ifndef CONFIG_SPARSEMEM_VMEMMAP
Expand Down

0 comments on commit 3690951

Please sign in to comment.