@@ -660,6 +660,35 @@ static struct cpuidle_state skl_cstates[] = {
660
660
.enter = NULL }
661
661
};
662
662
663
+ static struct cpuidle_state skx_cstates [] = {
664
+ {
665
+ .name = "C1-SKX" ,
666
+ .desc = "MWAIT 0x00" ,
667
+ .flags = MWAIT2flg (0x00 ),
668
+ .exit_latency = 2 ,
669
+ .target_residency = 2 ,
670
+ .enter = & intel_idle ,
671
+ .enter_freeze = intel_idle_freeze , },
672
+ {
673
+ .name = "C1E-SKX" ,
674
+ .desc = "MWAIT 0x01" ,
675
+ .flags = MWAIT2flg (0x01 ),
676
+ .exit_latency = 10 ,
677
+ .target_residency = 20 ,
678
+ .enter = & intel_idle ,
679
+ .enter_freeze = intel_idle_freeze , },
680
+ {
681
+ .name = "C6-SKX" ,
682
+ .desc = "MWAIT 0x20" ,
683
+ .flags = MWAIT2flg (0x20 ) | CPUIDLE_FLAG_TLB_FLUSHED ,
684
+ .exit_latency = 133 ,
685
+ .target_residency = 600 ,
686
+ .enter = & intel_idle ,
687
+ .enter_freeze = intel_idle_freeze , },
688
+ {
689
+ .enter = NULL }
690
+ };
691
+
663
692
static struct cpuidle_state atom_cstates [] = {
664
693
{
665
694
.name = "C1E-ATM" ,
@@ -907,6 +936,10 @@ static const struct idle_cpu idle_cpu_skl = {
907
936
.disable_promotion_to_c1e = true,
908
937
};
909
938
939
+ static const struct idle_cpu idle_cpu_skx = {
940
+ .state_table = skx_cstates ,
941
+ .disable_promotion_to_c1e = true,
942
+ };
910
943
911
944
static const struct idle_cpu idle_cpu_avn = {
912
945
.state_table = avn_cstates ,
@@ -948,6 +981,7 @@ static const struct x86_cpu_id intel_idle_ids[] __initconst = {
948
981
ICPU (0x56 , idle_cpu_bdw ),
949
982
ICPU (0x4e , idle_cpu_skl ),
950
983
ICPU (0x5e , idle_cpu_skl ),
984
+ ICPU (0x55 , idle_cpu_skx ),
951
985
ICPU (0x57 , idle_cpu_knl ),
952
986
{}
953
987
};
0 commit comments