diff options
Diffstat (limited to 'arch/x86/kernel/apic/apic.c')
-rw-r--r-- | arch/x86/kernel/apic/apic.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index d705c769f77d..ff891772c9f8 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c | |||
@@ -573,11 +573,21 @@ static u32 bdx_deadline_rev(void) | |||
573 | return ~0U; | 573 | return ~0U; |
574 | } | 574 | } |
575 | 575 | ||
576 | static u32 skx_deadline_rev(void) | ||
577 | { | ||
578 | switch (boot_cpu_data.x86_mask) { | ||
579 | case 0x03: return 0x01000136; | ||
580 | case 0x04: return 0x02000014; | ||
581 | } | ||
582 | |||
583 | return ~0U; | ||
584 | } | ||
585 | |||
576 | static const struct x86_cpu_id deadline_match[] = { | 586 | static const struct x86_cpu_id deadline_match[] = { |
577 | DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_HASWELL_X, hsx_deadline_rev), | 587 | DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_HASWELL_X, hsx_deadline_rev), |
578 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X, 0x0b000020), | 588 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X, 0x0b000020), |
579 | DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_XEON_D, bdx_deadline_rev), | 589 | DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_XEON_D, bdx_deadline_rev), |
580 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE_X, 0x02000014), | 590 | DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_SKYLAKE_X, skx_deadline_rev), |
581 | 591 | ||
582 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_CORE, 0x22), | 592 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_CORE, 0x22), |
583 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_ULT, 0x20), | 593 | DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_ULT, 0x20), |
@@ -600,7 +610,8 @@ static void apic_check_deadline_errata(void) | |||
600 | const struct x86_cpu_id *m; | 610 | const struct x86_cpu_id *m; |
601 | u32 rev; | 611 | u32 rev; |
602 | 612 | ||
603 | if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER)) | 613 | if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER) || |
614 | boot_cpu_has(X86_FEATURE_HYPERVISOR)) | ||
604 | return; | 615 | return; |
605 | 616 | ||
606 | m = x86_match_cpu(deadline_match); | 617 | m = x86_match_cpu(deadline_match); |