diff options
Diffstat (limited to 'drivers/idle')
-rw-r--r-- | drivers/idle/intel_idle.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 146eed70bdf4..ba947df5a8c7 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c | |||
@@ -716,6 +716,26 @@ static struct cpuidle_state avn_cstates[] = { | |||
716 | { | 716 | { |
717 | .enter = NULL } | 717 | .enter = NULL } |
718 | }; | 718 | }; |
719 | static struct cpuidle_state knl_cstates[] = { | ||
720 | { | ||
721 | .name = "C1-KNL", | ||
722 | .desc = "MWAIT 0x00", | ||
723 | .flags = MWAIT2flg(0x00), | ||
724 | .exit_latency = 1, | ||
725 | .target_residency = 2, | ||
726 | .enter = &intel_idle, | ||
727 | .enter_freeze = intel_idle_freeze }, | ||
728 | { | ||
729 | .name = "C6-KNL", | ||
730 | .desc = "MWAIT 0x10", | ||
731 | .flags = MWAIT2flg(0x10) | CPUIDLE_FLAG_TLB_FLUSHED, | ||
732 | .exit_latency = 120, | ||
733 | .target_residency = 500, | ||
734 | .enter = &intel_idle, | ||
735 | .enter_freeze = intel_idle_freeze }, | ||
736 | { | ||
737 | .enter = NULL } | ||
738 | }; | ||
719 | 739 | ||
720 | /** | 740 | /** |
721 | * intel_idle | 741 | * intel_idle |
@@ -890,6 +910,10 @@ static const struct idle_cpu idle_cpu_avn = { | |||
890 | .disable_promotion_to_c1e = true, | 910 | .disable_promotion_to_c1e = true, |
891 | }; | 911 | }; |
892 | 912 | ||
913 | static const struct idle_cpu idle_cpu_knl = { | ||
914 | .state_table = knl_cstates, | ||
915 | }; | ||
916 | |||
893 | #define ICPU(model, cpu) \ | 917 | #define ICPU(model, cpu) \ |
894 | { X86_VENDOR_INTEL, 6, model, X86_FEATURE_MWAIT, (unsigned long)&cpu } | 918 | { X86_VENDOR_INTEL, 6, model, X86_FEATURE_MWAIT, (unsigned long)&cpu } |
895 | 919 | ||
@@ -921,6 +945,7 @@ static const struct x86_cpu_id intel_idle_ids[] __initconst = { | |||
921 | ICPU(0x56, idle_cpu_bdw), | 945 | ICPU(0x56, idle_cpu_bdw), |
922 | ICPU(0x4e, idle_cpu_skl), | 946 | ICPU(0x4e, idle_cpu_skl), |
923 | ICPU(0x5e, idle_cpu_skl), | 947 | ICPU(0x5e, idle_cpu_skl), |
948 | ICPU(0x57, idle_cpu_knl), | ||
924 | {} | 949 | {} |
925 | }; | 950 | }; |
926 | MODULE_DEVICE_TABLE(x86cpu, intel_idle_ids); | 951 | MODULE_DEVICE_TABLE(x86cpu, intel_idle_ids); |