|
@@ -156,7 +156,7 @@ int cpuidle_enable_device(struct cpuidle_device *dev)
|
|
|
|
|
|
if (dev->enabled)
|
|
|
return 0;
|
|
|
- if (!cpuidle_curr_driver || !cpuidle_curr_governor)
|
|
|
+ if (!cpuidle_get_driver() || !cpuidle_curr_governor)
|
|
|
return -EIO;
|
|
|
if (!dev->state_count)
|
|
|
return -EINVAL;
|
|
@@ -207,7 +207,7 @@ void cpuidle_disable_device(struct cpuidle_device *dev)
|
|
|
{
|
|
|
if (!dev->enabled)
|
|
|
return;
|
|
|
- if (!cpuidle_curr_driver || !cpuidle_curr_governor)
|
|
|
+ if (!cpuidle_get_driver() || !cpuidle_curr_governor)
|
|
|
return;
|
|
|
|
|
|
dev->enabled = 0;
|
|
@@ -271,10 +271,11 @@ static int __cpuidle_register_device(struct cpuidle_device *dev)
|
|
|
{
|
|
|
int ret;
|
|
|
struct sys_device *sys_dev = get_cpu_sysdev((unsigned long)dev->cpu);
|
|
|
+ struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver();
|
|
|
|
|
|
if (!sys_dev)
|
|
|
return -EINVAL;
|
|
|
- if (!try_module_get(cpuidle_curr_driver->owner))
|
|
|
+ if (!try_module_get(cpuidle_driver->owner))
|
|
|
return -EINVAL;
|
|
|
|
|
|
init_completion(&dev->kobj_unregister);
|
|
@@ -284,7 +285,7 @@ static int __cpuidle_register_device(struct cpuidle_device *dev)
|
|
|
per_cpu(cpuidle_devices, dev->cpu) = dev;
|
|
|
list_add(&dev->device_list, &cpuidle_detected_devices);
|
|
|
if ((ret = cpuidle_add_sysfs(sys_dev))) {
|
|
|
- module_put(cpuidle_curr_driver->owner);
|
|
|
+ module_put(cpuidle_driver->owner);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -325,6 +326,7 @@ EXPORT_SYMBOL_GPL(cpuidle_register_device);
|
|
|
void cpuidle_unregister_device(struct cpuidle_device *dev)
|
|
|
{
|
|
|
struct sys_device *sys_dev = get_cpu_sysdev((unsigned long)dev->cpu);
|
|
|
+ struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver();
|
|
|
|
|
|
if (dev->registered == 0)
|
|
|
return;
|
|
@@ -340,7 +342,7 @@ void cpuidle_unregister_device(struct cpuidle_device *dev)
|
|
|
|
|
|
cpuidle_resume_and_unlock();
|
|
|
|
|
|
- module_put(cpuidle_curr_driver->owner);
|
|
|
+ module_put(cpuidle_driver->owner);
|
|
|
}
|
|
|
|
|
|
EXPORT_SYMBOL_GPL(cpuidle_unregister_device);
|