|
@@ -15,7 +15,7 @@
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
*
|
|
|
- * Copyright (c) 2009 Silicon Graphics, Inc. All Rights Reserved.
|
|
|
+ * Copyright (c) 2009-2013 Silicon Graphics, Inc. All Rights Reserved.
|
|
|
* Copyright (c) Dimitri Sivanich
|
|
|
*/
|
|
|
#include <linux/clockchips.h>
|
|
@@ -102,9 +102,10 @@ static int uv_intr_pending(int pnode)
|
|
|
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;
|
|
|
+ else if (is_uvx_hub())
|
|
|
+ return uv_read_global_mmr64(pnode, UVXH_EVENT_OCCURRED2) &
|
|
|
+ UVXH_EVENT_OCCURRED2_RTC_1_MASK;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/* Setup interrupt and return non-zero if early expiration occurred. */
|
|
@@ -122,8 +123,8 @@ static int uv_setup_intr(int cpu, u64 expires)
|
|
|
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);
|
|
|
+ uv_write_global_mmr64(pnode, UVXH_EVENT_OCCURRED2_ALIAS,
|
|
|
+ UVXH_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);
|