diff options
author | Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 2010-10-26 14:22:17 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 16:52:12 -0700 |
commit | 98c532ecbe582586e204688c6cde7e27580cc43f (patch) | |
tree | 6659f979076730695af09d9e3653074a6d9643c3 /arch/alpha/kernel/machvec_impl.h | |
parent | 947272dd3e959c69ff0fc54e62e44163b729b796 (diff) | |
download | kernel_samsung_smdk4412-98c532ecbe582586e204688c6cde7e27580cc43f.zip kernel_samsung_smdk4412-98c532ecbe582586e204688c6cde7e27580cc43f.tar.gz kernel_samsung_smdk4412-98c532ecbe582586e204688c6cde7e27580cc43f.tar.bz2 |
alpha: use single HAE window on T2 core logic (gamma, sable)
T2 are the only alpha SMP systems that do HAE switching at runtime, which
is fundamentally racy on SMP. This patch limits MMIO space on T2 to HAE0
only, like we did on MCPCIA (rawhide) long ago. This leaves us with only
112 Mb of PCI MMIO (128 Mb HAE aperture minus 16 Mb reserved for EISA),
but since linux PCI allocations are reasonably tight, it should be enough
for sane hardware configurations.
Also, fix a typo in MCPCIA_FROB_MMIO macro which shouldn't call set_hae()
if MCPCIA_ONE_HAE_WINDOW is defined. It's more for correctness, as
set_hae() is a no-op anyway in that case.
Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/alpha/kernel/machvec_impl.h')
-rw-r--r-- | arch/alpha/kernel/machvec_impl.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/alpha/kernel/machvec_impl.h b/arch/alpha/kernel/machvec_impl.h index 512685f..7fa6248 100644 --- a/arch/alpha/kernel/machvec_impl.h +++ b/arch/alpha/kernel/machvec_impl.h @@ -25,6 +25,9 @@ #ifdef MCPCIA_ONE_HAE_WINDOW #define MCPCIA_HAE_ADDRESS (&alpha_mv.hae_cache) #endif +#ifdef T2_ONE_HAE_WINDOW +#define T2_HAE_ADDRESS (&alpha_mv.hae_cache) +#endif /* Only a few systems don't define IACK_SC, handling all interrupts through the SRM console. But splitting out that one case from IO() below |