@@ -199,43 +199,6 @@ static __cpuidle int intel_idle_xstate(struct cpuidle_device *dev,
199
199
return __intel_idle (dev , drv , index );
200
200
}
201
201
202
- static __always_inline int __intel_idle_hlt (struct cpuidle_device * dev ,
203
- struct cpuidle_driver * drv , int index )
204
- {
205
- raw_safe_halt ();
206
- raw_local_irq_disable ();
207
- return index ;
208
- }
209
-
210
- /**
211
- * intel_idle_hlt - Ask the processor to enter the given idle state using hlt.
212
- * @dev: cpuidle device of the target CPU.
213
- * @drv: cpuidle driver (assumed to point to intel_idle_driver).
214
- * @index: Target idle state index.
215
- *
216
- * Use the HLT instruction to notify the processor that the CPU represented by
217
- * @dev is idle and it can try to enter the idle state corresponding to @index.
218
- *
219
- * Must be called under local_irq_disable().
220
- */
221
- static __cpuidle int intel_idle_hlt (struct cpuidle_device * dev ,
222
- struct cpuidle_driver * drv , int index )
223
- {
224
- return __intel_idle_hlt (dev , drv , index );
225
- }
226
-
227
- static __cpuidle int intel_idle_hlt_irq_on (struct cpuidle_device * dev ,
228
- struct cpuidle_driver * drv , int index )
229
- {
230
- int ret ;
231
-
232
- raw_local_irq_enable ();
233
- ret = __intel_idle_hlt (dev , drv , index );
234
- raw_local_irq_disable ();
235
-
236
- return ret ;
237
- }
238
-
239
202
/**
240
203
* intel_idle_s2idle - Ask the processor to enter the given idle state.
241
204
* @dev: cpuidle device of the target CPU.
@@ -1279,18 +1242,6 @@ static struct cpuidle_state snr_cstates[] __initdata = {
1279
1242
.enter = NULL }
1280
1243
};
1281
1244
1282
- static struct cpuidle_state vmguest_cstates [] __initdata = {
1283
- {
1284
- .name = "C1" ,
1285
- .desc = "HLT" ,
1286
- .flags = MWAIT2flg (0x00 ) | CPUIDLE_FLAG_IRQ_ENABLE ,
1287
- .exit_latency = 5 ,
1288
- .target_residency = 10 ,
1289
- .enter = & intel_idle_hlt , },
1290
- {
1291
- .enter = NULL }
1292
- };
1293
-
1294
1245
static const struct idle_cpu idle_cpu_nehalem __initconst = {
1295
1246
.state_table = nehalem_cstates ,
1296
1247
.auto_demotion_disable_flags = NHM_C1_AUTO_DEMOTE | NHM_C3_AUTO_DEMOTE ,
@@ -1890,16 +1841,6 @@ static bool __init intel_idle_verify_cstate(unsigned int mwait_hint)
1890
1841
1891
1842
static void state_update_enter_method (struct cpuidle_state * state , int cstate )
1892
1843
{
1893
- if (state -> enter == intel_idle_hlt ) {
1894
- if (force_irq_on ) {
1895
- pr_info ("forced intel_idle_irq for state %d\n" , cstate );
1896
- state -> enter = intel_idle_hlt_irq_on ;
1897
- }
1898
- return ;
1899
- }
1900
- if (state -> enter == intel_idle_hlt_irq_on )
1901
- return ; /* no update scenarios */
1902
-
1903
1844
if (state -> flags & CPUIDLE_FLAG_INIT_XSTATE ) {
1904
1845
/*
1905
1846
* Combining with XSTATE with IBRS or IRQ_ENABLE flags
@@ -1933,21 +1874,6 @@ static void state_update_enter_method(struct cpuidle_state *state, int cstate)
1933
1874
}
1934
1875
}
1935
1876
1936
- /*
1937
- * For mwait based states, we want to verify the cpuid data to see if the state
1938
- * is actually supported by this specific CPU.
1939
- * For non-mwait based states, this check should be skipped.
1940
- */
1941
- static bool should_verify_mwait (struct cpuidle_state * state )
1942
- {
1943
- if (state -> enter == intel_idle_hlt )
1944
- return false;
1945
- if (state -> enter == intel_idle_hlt_irq_on )
1946
- return false;
1947
-
1948
- return true;
1949
- }
1950
-
1951
1877
static void __init intel_idle_init_cstates_icpu (struct cpuidle_driver * drv )
1952
1878
{
1953
1879
int cstate ;
@@ -1996,7 +1922,7 @@ static void __init intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
1996
1922
}
1997
1923
1998
1924
mwait_hint = flg2MWAIT (cpuidle_state_table [cstate ].flags );
1999
- if (should_verify_mwait ( & cpuidle_state_table [ cstate ]) && !intel_idle_verify_cstate (mwait_hint ))
1925
+ if (!intel_idle_verify_cstate (mwait_hint ))
2000
1926
continue ;
2001
1927
2002
1928
/* Structure copy. */
@@ -2130,45 +2056,6 @@ static void __init intel_idle_cpuidle_devices_uninit(void)
2130
2056
cpuidle_unregister_device (per_cpu_ptr (intel_idle_cpuidle_devices , i ));
2131
2057
}
2132
2058
2133
- static int __init intel_idle_vminit (const struct x86_cpu_id * id )
2134
- {
2135
- int retval ;
2136
-
2137
- cpuidle_state_table = vmguest_cstates ;
2138
-
2139
- icpu = (const struct idle_cpu * )id -> driver_data ;
2140
-
2141
- pr_debug ("v" INTEL_IDLE_VERSION " model 0x%X\n" ,
2142
- boot_cpu_data .x86_model );
2143
-
2144
- intel_idle_cpuidle_devices = alloc_percpu (struct cpuidle_device );
2145
- if (!intel_idle_cpuidle_devices )
2146
- return - ENOMEM ;
2147
-
2148
- intel_idle_cpuidle_driver_init (& intel_idle_driver );
2149
-
2150
- retval = cpuidle_register_driver (& intel_idle_driver );
2151
- if (retval ) {
2152
- struct cpuidle_driver * drv = cpuidle_get_driver ();
2153
- printk (KERN_DEBUG pr_fmt ("intel_idle yielding to %s\n" ),
2154
- drv ? drv -> name : "none" );
2155
- goto init_driver_fail ;
2156
- }
2157
-
2158
- retval = cpuhp_setup_state (CPUHP_AP_ONLINE_DYN , "idle/intel:online" ,
2159
- intel_idle_cpu_online , NULL );
2160
- if (retval < 0 )
2161
- goto hp_setup_fail ;
2162
-
2163
- return 0 ;
2164
- hp_setup_fail :
2165
- intel_idle_cpuidle_devices_uninit ();
2166
- cpuidle_unregister_driver (& intel_idle_driver );
2167
- init_driver_fail :
2168
- free_percpu (intel_idle_cpuidle_devices );
2169
- return retval ;
2170
- }
2171
-
2172
2059
static int __init intel_idle_init (void )
2173
2060
{
2174
2061
const struct x86_cpu_id * id ;
@@ -2187,8 +2074,6 @@ static int __init intel_idle_init(void)
2187
2074
id = x86_match_cpu (intel_idle_ids );
2188
2075
if (id ) {
2189
2076
if (!boot_cpu_has (X86_FEATURE_MWAIT )) {
2190
- if (boot_cpu_has (X86_FEATURE_HYPERVISOR ))
2191
- return intel_idle_vminit (id );
2192
2077
pr_debug ("Please enable MWAIT in BIOS SETUP\n" );
2193
2078
return - ENODEV ;
2194
2079
}
0 commit comments