diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-23 09:36:31 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-23 09:36:31 -0700 |
| commit | a580e5b9a5ba7d6db5647c36ee118b8890ba3033 (patch) | |
| tree | bfb7bbf852315085d7868165691057b170af1ab1 /arch/powerpc/sysdev/dart_iommu.c | |
| parent | 93e1b7d42e1edb4ddde6257e9a02513fef26f715 (diff) | |
| parent | d0e15bed84db7a9b0ea85d2ad9707b5e6d2e38da (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge:
powerpc: Fix define_machine so machine_is() works from modules
powerpc/ppc: export strncasecmp
[PATCH] powerpc: fix oops in alsa powermac driver
[PATCH] powerpc: update {g5,iseries,pseries}_defconfigs
[PATCH] ppc: Fix powersave code on arch/ppc
[PATCH] powerpc/cell: remove BUILD_BUG_ON and add sys_tee to spu_syscall_table
[PATCH] powermac: Fix i2c on keywest based chips
[PATCH] powerpc: Lower threshold for DART enablement to 1GB
[PATCH] powerpc: IOMMU support for honoring dma_mask
Diffstat (limited to 'arch/powerpc/sysdev/dart_iommu.c')
| -rw-r--r-- | arch/powerpc/sysdev/dart_iommu.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c index 61d31742861..38087bd6e3c 100644 --- a/arch/powerpc/sysdev/dart_iommu.c +++ b/arch/powerpc/sysdev/dart_iommu.c @@ -49,6 +49,7 @@ #include "dart.h" +extern int iommu_is_off; extern int iommu_force_on; /* Physical base address and size of the DART table */ @@ -329,10 +330,17 @@ void iommu_init_early_dart(void) void __init alloc_dart_table(void) { - /* Only reserve DART space if machine has more than 2GB of RAM + /* Only reserve DART space if machine has more than 1GB of RAM * or if requested with iommu=on on cmdline. + * + * 1GB of RAM is picked as limit because some default devices + * (i.e. Airport Extreme) have 30 bit address range limits. */ - if (lmb_end_of_DRAM() <= 0x80000000ull && !iommu_force_on) + + if (iommu_is_off) + return; + + if (!iommu_force_on && lmb_end_of_DRAM() <= 0x40000000ull) return; /* 512 pages (2MB) is max DART tablesize. */ |
