aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/idle/intel_idle.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2020-01-10 11:48:25 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2020-01-23 00:37:00 +0100
commit3d3a1ae9b4bedc3e8c88ff4baeb0a195cb447fa1 (patch)
treef6eeb3e7a7842f86caf50e958eb294061146cc50 /drivers/idle/intel_idle.c
parentintel_idle: Clean up NULL pointer check in intel_idle_init() (diff)
downloadlinux-dev-3d3a1ae9b4bedc3e8c88ff4baeb0a195cb447fa1.tar.xz
linux-dev-3d3a1ae9b4bedc3e8c88ff4baeb0a195cb447fa1.zip
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: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/idle/intel_idle.c')
-rw-r--r--drivers/idle/intel_idle.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index fddb72e5f6fa..c535b0b55ea5 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -1447,16 +1447,12 @@ static void sklh_idle_state_table_update(void)
skl_cstates[5].flags |= CPUIDLE_FLAG_UNUSABLE; /* C8-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:
ivt_idle_state_table_update();
break;
@@ -1468,11 +1464,6 @@ static void intel_idle_state_table_update(void)
sklh_idle_state_table_update();
break;
}
-}
-
-static void intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
-{
- int cstate;
for (cstate = 0; cstate < CPUIDLE_STATE_MAX; ++cstate) {
unsigned int mwait_hint;
@@ -1515,12 +1506,8 @@ static void intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
* intel_idle_cpuidle_driver_init()
* 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);
drv->state_count = 1;
@@ -1633,7 +1620,8 @@ static int __init intel_idle_init(void)
if (!intel_idle_cpuidle_devices)
return -ENOMEM;
- intel_idle_cpuidle_driver_init();
+ intel_idle_cpuidle_driver_init(&intel_idle_driver);
+
retval = cpuidle_register_driver(&intel_idle_driver);
if (retval) {
struct cpuidle_driver *drv = cpuidle_get_driver();