浏览代码

x86/platform/UV: Update MMIOH setup function to work for both UV3 and UV4

Since UV3 and UV4 MMIOH regions are setup the same, we can use a common
function to setup both.

Tested-by: John Estabrook <estabrook@sgi.com>
Tested-by: Gary Kroening <gfk@sgi.com>
Tested-by: Nathan Zimmer <nzimmer@sgi.com>
Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Dimitri Sivanich <sivanich@sgi.com>
Cc: Andrew Banman <abanman@sgi.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russ Anderson <rja@sgi.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20160429215404.100504077@asylum.americas.sgi.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Mike Travis 9 年之前
父节点
当前提交
a2f28e6950
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      arch/x86/kernel/apic/x2apic_uv_x.c

+ 2 - 1
arch/x86/kernel/apic/x2apic_uv_x.c

@@ -608,6 +608,7 @@ static __initdata struct mmioh_config mmiohs[] = {
 	},
 	},
 };
 };
 
 
+/* UV3 & UV4 have identical MMIOH overlay configs */
 static __init void map_mmioh_high_uv3(int index, int min_pnode, int max_pnode)
 static __init void map_mmioh_high_uv3(int index, int min_pnode, int max_pnode)
 {
 {
 	union uv3h_rh_gam_mmioh_overlay_config0_mmr_u overlay;
 	union uv3h_rh_gam_mmioh_overlay_config0_mmr_u overlay;
@@ -687,7 +688,7 @@ static __init void map_mmioh_high(int min_pnode, int max_pnode)
 	unsigned long mmr, base;
 	unsigned long mmr, base;
 	int shift, enable, m_io, n_io;
 	int shift, enable, m_io, n_io;
 
 
-	if (is_uv3_hub()) {
+	if (is_uv3_hub() || is_uv4_hub()) {
 		/* Map both MMIOH Regions */
 		/* Map both MMIOH Regions */
 		map_mmioh_high_uv3(0, min_pnode, max_pnode);
 		map_mmioh_high_uv3(0, min_pnode, max_pnode);
 		map_mmioh_high_uv3(1, min_pnode, max_pnode);
 		map_mmioh_high_uv3(1, min_pnode, max_pnode);