@@ -199,43 +199,6 @@ static __cpuidle int intel_idle_xstate(struct cpuidle_device *dev,
199199 return __intel_idle (dev , drv , index );
200200}
201201
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-
239202/**
240203 * intel_idle_s2idle - Ask the processor to enter the given idle state.
241204 * @dev: cpuidle device of the target CPU.
@@ -1279,18 +1242,6 @@ static struct cpuidle_state snr_cstates[] __initdata = {
12791242 .enter = NULL }
12801243};
12811244
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-
12941245static const struct idle_cpu idle_cpu_nehalem __initconst = {
12951246 .state_table = nehalem_cstates ,
12961247 .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)
18901841
18911842static void state_update_enter_method (struct cpuidle_state * state , int cstate )
18921843{
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-
19031844 if (state -> flags & CPUIDLE_FLAG_INIT_XSTATE ) {
19041845 /*
19051846 * 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)
19331874 }
19341875}
19351876
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-
19511877static void __init intel_idle_init_cstates_icpu (struct cpuidle_driver * drv )
19521878{
19531879 int cstate ;
@@ -1996,7 +1922,7 @@ static void __init intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
19961922 }
19971923
19981924 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 ))
20001926 continue ;
20011927
20021928 /* Structure copy. */
@@ -2130,45 +2056,6 @@ static void __init intel_idle_cpuidle_devices_uninit(void)
21302056 cpuidle_unregister_device (per_cpu_ptr (intel_idle_cpuidle_devices , i ));
21312057}
21322058
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-
21722059static int __init intel_idle_init (void )
21732060{
21742061 const struct x86_cpu_id * id ;
@@ -2187,8 +2074,6 @@ static int __init intel_idle_init(void)
21872074 id = x86_match_cpu (intel_idle_ids );
21882075 if (id ) {
21892076 if (!boot_cpu_has (X86_FEATURE_MWAIT )) {
2190- if (boot_cpu_has (X86_FEATURE_HYPERVISOR ))
2191- return intel_idle_vminit (id );
21922077 pr_debug ("Please enable MWAIT in BIOS SETUP\n" );
21932078 return - ENODEV ;
21942079 }
0 commit comments