Skip to content

Commit

Permalink
sh: Bump up dma_ops initialization far earlier in the boot process.
Browse files Browse the repository at this point in the history
Presently this was tacked on to the dma debug init bits from
fs_initcall(), which is far too late for devices setting up their own
per-device coherent areas.

Throw this in the beginning of mem_init(), as per the x86 iommu
allocation.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Oct 27, 2009
1 parent 4c978ca commit 94c2851
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
2 changes: 0 additions & 2 deletions arch/sh/mm/consistent.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ EXPORT_SYMBOL(dma_ops);
static int __init dma_init(void)
{
dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES);

no_iommu_init();
return 0;
}
fs_initcall(dma_init);
Expand Down
11 changes: 11 additions & 0 deletions arch/sh/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/pagemap.h>
#include <linux/percpu.h>
#include <linux/io.h>
#include <linux/dma-mapping.h>
#include <asm/mmu_context.h>
#include <asm/tlb.h>
#include <asm/cacheflush.h>
Expand Down Expand Up @@ -186,11 +187,21 @@ void __init paging_init(void)
set_fixmap_nocache(FIX_UNCACHED, __pa(&__uncached_start));
}

/*
* Early initialization for any I/O MMUs we might have.
*/
static void __init iommu_init(void)
{
no_iommu_init();
}

void __init mem_init(void)
{
int codesize, datasize, initsize;
int nid;

iommu_init();

num_physpages = 0;
high_memory = NULL;

Expand Down

0 comments on commit 94c2851

Please sign in to comment.