|
@@ -575,10 +575,6 @@ static void devfreq_dev_release(struct device *dev)
|
|
|
list_del(&devfreq->node);
|
|
|
mutex_unlock(&devfreq_list_lock);
|
|
|
|
|
|
- if (devfreq->governor)
|
|
|
- devfreq->governor->event_handler(devfreq,
|
|
|
- DEVFREQ_GOV_STOP, NULL);
|
|
|
-
|
|
|
if (devfreq->profile->exit)
|
|
|
devfreq->profile->exit(devfreq->dev.parent);
|
|
|
|
|
@@ -714,7 +710,7 @@ struct devfreq *devfreq_add_device(struct device *dev,
|
|
|
err_init:
|
|
|
mutex_unlock(&devfreq_list_lock);
|
|
|
|
|
|
- device_unregister(&devfreq->dev);
|
|
|
+ devfreq_remove_device(devfreq);
|
|
|
devfreq = NULL;
|
|
|
err_dev:
|
|
|
if (devfreq)
|
|
@@ -735,6 +731,9 @@ int devfreq_remove_device(struct devfreq *devfreq)
|
|
|
if (!devfreq)
|
|
|
return -EINVAL;
|
|
|
|
|
|
+ if (devfreq->governor)
|
|
|
+ devfreq->governor->event_handler(devfreq,
|
|
|
+ DEVFREQ_GOV_STOP, NULL);
|
|
|
device_unregister(&devfreq->dev);
|
|
|
|
|
|
return 0;
|