x86/UV2: Fix BAU destination timeout initialization
[deliverable/linux.git] / arch / x86 / platform / uv / uv_time.c
index 0eb90184515fe132c42b3fb8459f55671c71bd8d..9f29a01ee1b3fec6e8d13dce479d352d8a2eae0c 100644 (file)
@@ -99,8 +99,12 @@ static void uv_rtc_send_IPI(int cpu)
 /* Check for an RTC interrupt pending */
 static int uv_intr_pending(int pnode)
 {
-       return uv_read_global_mmr64(pnode, UVH_EVENT_OCCURRED0) &
-               UVH_EVENT_OCCURRED0_RTC1_MASK;
+       if (is_uv1_hub())
+               return uv_read_global_mmr64(pnode, UVH_EVENT_OCCURRED0) &
+                       UV1H_EVENT_OCCURRED0_RTC1_MASK;
+       else
+               return uv_read_global_mmr64(pnode, UV2H_EVENT_OCCURRED2) &
+                       UV2H_EVENT_OCCURRED2_RTC_1_MASK;
 }
 
 /* Setup interrupt and return non-zero if early expiration occurred. */
@@ -114,8 +118,12 @@ static int uv_setup_intr(int cpu, u64 expires)
                UVH_RTC1_INT_CONFIG_M_MASK);
        uv_write_global_mmr64(pnode, UVH_INT_CMPB, -1L);
 
-       uv_write_global_mmr64(pnode, UVH_EVENT_OCCURRED0_ALIAS,
-               UVH_EVENT_OCCURRED0_RTC1_MASK);
+       if (is_uv1_hub())
+               uv_write_global_mmr64(pnode, UVH_EVENT_OCCURRED0_ALIAS,
+                               UV1H_EVENT_OCCURRED0_RTC1_MASK);
+       else
+               uv_write_global_mmr64(pnode, UV2H_EVENT_OCCURRED2_ALIAS,
+                               UV2H_EVENT_OCCURRED2_RTC_1_MASK);
 
        val = (X86_PLATFORM_IPI_VECTOR << UVH_RTC1_INT_CONFIG_VECTOR_SHFT) |
                ((u64)apicid << UVH_RTC1_INT_CONFIG_APIC_ID_SHFT);
This page took 0.024951 seconds and 5 git commands to generate.