Commit 3d3a1ae9 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

intel_idle: Rearrange intel_idle_cpuidle_driver_init()

Notice that intel_idle_state_table_update() only needs to be called
if icpu is not NULL, so fold it into intel_idle_init_cstates_icpu(),
and pass a pointer to the driver object to
intel_idle_cpuidle_driver_init() as an argument instead of
referencing it locally in there.

No intentional functional impact.
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 533da74a
...@@ -1447,16 +1447,12 @@ static void sklh_idle_state_table_update(void) ...@@ -1447,16 +1447,12 @@ static void sklh_idle_state_table_update(void)
skl_cstates[5].flags |= CPUIDLE_FLAG_UNUSABLE; /* C8-SKL */ skl_cstates[5].flags |= CPUIDLE_FLAG_UNUSABLE; /* C8-SKL */
skl_cstates[6].flags |= CPUIDLE_FLAG_UNUSABLE; /* C9-SKL */ skl_cstates[6].flags |= CPUIDLE_FLAG_UNUSABLE; /* C9-SKL */
} }
/*
* intel_idle_state_table_update()
*
* Update the default state_table for this CPU-id
*/
static void intel_idle_state_table_update(void) static void intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
{ {
switch (boot_cpu_data.x86_model) { int cstate;
switch (boot_cpu_data.x86_model) {
case INTEL_FAM6_IVYBRIDGE_X: case INTEL_FAM6_IVYBRIDGE_X:
ivt_idle_state_table_update(); ivt_idle_state_table_update();
break; break;
...@@ -1468,11 +1464,6 @@ static void intel_idle_state_table_update(void) ...@@ -1468,11 +1464,6 @@ static void intel_idle_state_table_update(void)
sklh_idle_state_table_update(); sklh_idle_state_table_update();
break; break;
} }
}
static void intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
{
int cstate;
for (cstate = 0; cstate < CPUIDLE_STATE_MAX; ++cstate) { for (cstate = 0; cstate < CPUIDLE_STATE_MAX; ++cstate) {
unsigned int mwait_hint; unsigned int mwait_hint;
...@@ -1515,12 +1506,8 @@ static void intel_idle_init_cstates_icpu(struct cpuidle_driver *drv) ...@@ -1515,12 +1506,8 @@ static void intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
* intel_idle_cpuidle_driver_init() * intel_idle_cpuidle_driver_init()
* allocate, initialize cpuidle_states * allocate, initialize cpuidle_states
*/ */
static void __init intel_idle_cpuidle_driver_init(void) static void __init intel_idle_cpuidle_driver_init(struct cpuidle_driver *drv)
{ {
struct cpuidle_driver *drv = &intel_idle_driver;
intel_idle_state_table_update();
cpuidle_poll_state_init(drv); cpuidle_poll_state_init(drv);
drv->state_count = 1; drv->state_count = 1;
...@@ -1633,7 +1620,8 @@ static int __init intel_idle_init(void) ...@@ -1633,7 +1620,8 @@ static int __init intel_idle_init(void)
if (!intel_idle_cpuidle_devices) if (!intel_idle_cpuidle_devices)
return -ENOMEM; return -ENOMEM;
intel_idle_cpuidle_driver_init(); intel_idle_cpuidle_driver_init(&intel_idle_driver);
retval = cpuidle_register_driver(&intel_idle_driver); retval = cpuidle_register_driver(&intel_idle_driver);
if (retval) { if (retval) {
struct cpuidle_driver *drv = cpuidle_get_driver(); struct cpuidle_driver *drv = cpuidle_get_driver();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment