@@ -1069,6 +1069,47 @@ static struct cpuidle_state gnr_cstates[] __initdata = {
10691069 .enter = NULL }
10701070};
10711071
1072+ static struct cpuidle_state gnrd_cstates [] __initdata = {
1073+ {
1074+ .name = "C1" ,
1075+ .desc = "MWAIT 0x00" ,
1076+ .flags = MWAIT2flg (0x00 ),
1077+ .exit_latency = 1 ,
1078+ .target_residency = 1 ,
1079+ .enter = & intel_idle ,
1080+ .enter_s2idle = intel_idle_s2idle , },
1081+ {
1082+ .name = "C1E" ,
1083+ .desc = "MWAIT 0x01" ,
1084+ .flags = MWAIT2flg (0x01 ) | CPUIDLE_FLAG_ALWAYS_ENABLE ,
1085+ .exit_latency = 4 ,
1086+ .target_residency = 4 ,
1087+ .enter = & intel_idle ,
1088+ .enter_s2idle = intel_idle_s2idle , },
1089+ {
1090+ .name = "C6" ,
1091+ .desc = "MWAIT 0x20" ,
1092+ .flags = MWAIT2flg (0x20 ) | CPUIDLE_FLAG_TLB_FLUSHED |
1093+ CPUIDLE_FLAG_INIT_XSTATE |
1094+ CPUIDLE_FLAG_PARTIAL_HINT_MATCH ,
1095+ .exit_latency = 220 ,
1096+ .target_residency = 650 ,
1097+ .enter = & intel_idle ,
1098+ .enter_s2idle = intel_idle_s2idle , },
1099+ {
1100+ .name = "C6P" ,
1101+ .desc = "MWAIT 0x21" ,
1102+ .flags = MWAIT2flg (0x21 ) | CPUIDLE_FLAG_TLB_FLUSHED |
1103+ CPUIDLE_FLAG_INIT_XSTATE |
1104+ CPUIDLE_FLAG_PARTIAL_HINT_MATCH ,
1105+ .exit_latency = 240 ,
1106+ .target_residency = 750 ,
1107+ .enter = & intel_idle ,
1108+ .enter_s2idle = intel_idle_s2idle , },
1109+ {
1110+ .enter = NULL }
1111+ };
1112+
10721113static struct cpuidle_state atom_cstates [] __initdata = {
10731114 {
10741115 .name = "C1E" ,
@@ -1508,6 +1549,12 @@ static const struct idle_cpu idle_cpu_gnr __initconst = {
15081549 .use_acpi = true,
15091550};
15101551
1552+ static const struct idle_cpu idle_cpu_gnrd __initconst = {
1553+ .state_table = gnrd_cstates ,
1554+ .disable_promotion_to_c1e = true,
1555+ .use_acpi = true,
1556+ };
1557+
15111558static const struct idle_cpu idle_cpu_avn __initconst = {
15121559 .state_table = avn_cstates ,
15131560 .disable_promotion_to_c1e = true,
@@ -1593,6 +1640,7 @@ static const struct x86_cpu_id intel_idle_ids[] __initconst = {
15931640 X86_MATCH_VFM (INTEL_SAPPHIRERAPIDS_X , & idle_cpu_spr ),
15941641 X86_MATCH_VFM (INTEL_EMERALDRAPIDS_X , & idle_cpu_spr ),
15951642 X86_MATCH_VFM (INTEL_GRANITERAPIDS_X , & idle_cpu_gnr ),
1643+ X86_MATCH_VFM (INTEL_GRANITERAPIDS_D , & idle_cpu_gnrd ),
15961644 X86_MATCH_VFM (INTEL_XEON_PHI_KNL , & idle_cpu_knl ),
15971645 X86_MATCH_VFM (INTEL_XEON_PHI_KNM , & idle_cpu_knl ),
15981646 X86_MATCH_VFM (INTEL_ATOM_GOLDMONT , & idle_cpu_bxt ),
0 commit comments