diff options
author | Mike Travis <travis@sgi.com> | 2013-02-11 14:45:13 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-02-11 20:18:12 -0500 |
commit | 0af6352045a3bf359a2d5f55965266d67d262b47 (patch) | |
tree | d1eaff3e2731b388055a45dc7cc0d7f7f6f7518a /arch | |
parent | b15cc4a12bed8026bc70f469f514862b027b0c75 (diff) |
x86, uv, uv3: Update Time Support for SGI UV3
This patch updates time support for the SGI UV3 hub. Since the UV2
and UV3 time support is identical, "is_uvx_hub" is used instead of
having both "is_uv2_hub" and "is_uv3_hub".
Signed-off-by: Mike Travis <travis@sgi.com>
Link: http://lkml.kernel.org/r/20130211194508.893907185@gulag1.americas.sgi.com
Acked-by: Russ Anderson <rja@sgi.com>
Reviewed-by: Dimitri Sivanich <sivanich@sgi.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/platform/uv/uv_time.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/x86/platform/uv/uv_time.c b/arch/x86/platform/uv/uv_time.c index 5032e0d19b86..98718f604eb6 100644 --- a/arch/x86/platform/uv/uv_time.c +++ b/arch/x86/platform/uv/uv_time.c | |||
@@ -15,7 +15,7 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
17 | * | 17 | * |
18 | * Copyright (c) 2009 Silicon Graphics, Inc. All Rights Reserved. | 18 | * Copyright (c) 2009-2013 Silicon Graphics, Inc. All Rights Reserved. |
19 | * Copyright (c) Dimitri Sivanich | 19 | * Copyright (c) Dimitri Sivanich |
20 | */ | 20 | */ |
21 | #include <linux/clockchips.h> | 21 | #include <linux/clockchips.h> |
@@ -102,9 +102,10 @@ static int uv_intr_pending(int pnode) | |||
102 | if (is_uv1_hub()) | 102 | if (is_uv1_hub()) |
103 | return uv_read_global_mmr64(pnode, UVH_EVENT_OCCURRED0) & | 103 | return uv_read_global_mmr64(pnode, UVH_EVENT_OCCURRED0) & |
104 | UV1H_EVENT_OCCURRED0_RTC1_MASK; | 104 | UV1H_EVENT_OCCURRED0_RTC1_MASK; |
105 | else | 105 | else if (is_uvx_hub()) |
106 | return uv_read_global_mmr64(pnode, UV2H_EVENT_OCCURRED2) & | 106 | return uv_read_global_mmr64(pnode, UVXH_EVENT_OCCURRED2) & |
107 | UV2H_EVENT_OCCURRED2_RTC_1_MASK; | 107 | UVXH_EVENT_OCCURRED2_RTC_1_MASK; |
108 | return 0; | ||
108 | } | 109 | } |
109 | 110 | ||
110 | /* Setup interrupt and return non-zero if early expiration occurred. */ | 111 | /* Setup interrupt and return non-zero if early expiration occurred. */ |
@@ -122,8 +123,8 @@ static int uv_setup_intr(int cpu, u64 expires) | |||
122 | uv_write_global_mmr64(pnode, UVH_EVENT_OCCURRED0_ALIAS, | 123 | uv_write_global_mmr64(pnode, UVH_EVENT_OCCURRED0_ALIAS, |
123 | UV1H_EVENT_OCCURRED0_RTC1_MASK); | 124 | UV1H_EVENT_OCCURRED0_RTC1_MASK); |
124 | else | 125 | else |
125 | uv_write_global_mmr64(pnode, UV2H_EVENT_OCCURRED2_ALIAS, | 126 | uv_write_global_mmr64(pnode, UVXH_EVENT_OCCURRED2_ALIAS, |
126 | UV2H_EVENT_OCCURRED2_RTC_1_MASK); | 127 | UVXH_EVENT_OCCURRED2_RTC_1_MASK); |
127 | 128 | ||
128 | val = (X86_PLATFORM_IPI_VECTOR << UVH_RTC1_INT_CONFIG_VECTOR_SHFT) | | 129 | val = (X86_PLATFORM_IPI_VECTOR << UVH_RTC1_INT_CONFIG_VECTOR_SHFT) | |
129 | ((u64)apicid << UVH_RTC1_INT_CONFIG_APIC_ID_SHFT); | 130 | ((u64)apicid << UVH_RTC1_INT_CONFIG_APIC_ID_SHFT); |