mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-16 22:38:04 +00:00
189ce92b4c
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
67 lines
2.1 KiB
Diff
67 lines
2.1 KiB
Diff
From dcca45052472bcbd331d0451777cb947588e1dd5 Mon Sep 17 00:00:00 2001
|
|
From: Cliff Wickman <cpw@sgi.com>
|
|
Date: Mon, 16 Jan 2012 15:18:48 -0600
|
|
Subject: [PATCH 114/129] x86/UV2: Fix BAU destination timeout initialization
|
|
|
|
commit d059f9fa84a30e04279c6ff615e9e2cf3b260191 upstream.
|
|
|
|
Move the call to enable_timeouts() forward so that
|
|
BAU_MISC_CONTROL is initialized before using it in
|
|
calculate_destination_timeout().
|
|
|
|
Fix the calculation of a BAU destination timeout
|
|
for UV2 (in calculate_destination_timeout()).
|
|
|
|
Signed-off-by: Cliff Wickman <cpw@sgi.com>
|
|
Link: http://lkml.kernel.org/r/20120116211848.GB5767@sgi.com
|
|
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
---
|
|
arch/x86/platform/uv/tlb_uv.c | 13 +++++++------
|
|
1 file changed, 7 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
|
|
index 1341a2e..c425ff1 100644
|
|
--- a/arch/x86/platform/uv/tlb_uv.c
|
|
+++ b/arch/x86/platform/uv/tlb_uv.c
|
|
@@ -1617,14 +1617,14 @@ static int calculate_destination_timeout(void)
|
|
ts_ns = base * mult1 * mult2;
|
|
ret = ts_ns / 1000;
|
|
} else {
|
|
- /* 4 bits 0/1 for 10/80us, 3 bits of multiplier */
|
|
- mmr_image = uv_read_local_mmr(UVH_AGING_PRESCALE_SEL);
|
|
+ /* 4 bits 0/1 for 10/80us base, 3 bits of multiplier */
|
|
+ mmr_image = uv_read_local_mmr(UVH_LB_BAU_MISC_CONTROL);
|
|
mmr_image = (mmr_image & UV_SA_MASK) >> UV_SA_SHFT;
|
|
if (mmr_image & (1L << UV2_ACK_UNITS_SHFT))
|
|
- mult1 = 80;
|
|
+ base = 80;
|
|
else
|
|
- mult1 = 10;
|
|
- base = mmr_image & UV2_ACK_MASK;
|
|
+ base = 10;
|
|
+ mult1 = mmr_image & UV2_ACK_MASK;
|
|
ret = mult1 * base;
|
|
}
|
|
return ret;
|
|
@@ -1886,6 +1886,8 @@ static int __init uv_bau_init(void)
|
|
uv_base_pnode = uv_blade_to_pnode(uvhub);
|
|
}
|
|
|
|
+ enable_timeouts();
|
|
+
|
|
if (init_per_cpu(nuvhubs, uv_base_pnode)) {
|
|
nobau = 1;
|
|
return 0;
|
|
@@ -1896,7 +1898,6 @@ static int __init uv_bau_init(void)
|
|
if (uv_blade_nr_possible_cpus(uvhub))
|
|
init_uvhub(uvhub, vector, uv_base_pnode);
|
|
|
|
- enable_timeouts();
|
|
alloc_intr_gate(vector, uv_bau_message_intr1);
|
|
|
|
for_each_possible_blade(uvhub) {
|
|
--
|
|
1.7.9.5
|
|
|