aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/devfreq/devfreq.c22
-rw-r--r--drivers/devfreq/event/exynos-nocp.c3
2 files changed, 10 insertions, 15 deletions
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 1d6c803804d5..c7f47e34807b 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -552,6 +552,7 @@ struct devfreq *devfreq_add_device(struct device *dev,
552 devfreq->profile = profile; 552 devfreq->profile = profile;
553 strncpy(devfreq->governor_name, governor_name, DEVFREQ_NAME_LEN); 553 strncpy(devfreq->governor_name, governor_name, DEVFREQ_NAME_LEN);
554 devfreq->previous_freq = profile->initial_freq; 554 devfreq->previous_freq = profile->initial_freq;
555 devfreq->last_status.current_frequency = profile->initial_freq;
555 devfreq->data = data; 556 devfreq->data = data;
556 devfreq->nb.notifier_call = devfreq_notifier_call; 557 devfreq->nb.notifier_call = devfreq_notifier_call;
557 558
@@ -561,23 +562,22 @@ struct devfreq *devfreq_add_device(struct device *dev,
561 mutex_lock(&devfreq->lock); 562 mutex_lock(&devfreq->lock);
562 } 563 }
563 564
564 devfreq->trans_table = devm_kzalloc(dev, sizeof(unsigned int) *
565 devfreq->profile->max_state *
566 devfreq->profile->max_state,
567 GFP_KERNEL);
568 devfreq->time_in_state = devm_kzalloc(dev, sizeof(unsigned long) *
569 devfreq->profile->max_state,
570 GFP_KERNEL);
571 devfreq->last_stat_updated = jiffies;
572
573 dev_set_name(&devfreq->dev, "%s", dev_name(dev)); 565 dev_set_name(&devfreq->dev, "%s", dev_name(dev));
574 err = device_register(&devfreq->dev); 566 err = device_register(&devfreq->dev);
575 if (err) { 567 if (err) {
576 put_device(&devfreq->dev);
577 mutex_unlock(&devfreq->lock); 568 mutex_unlock(&devfreq->lock);
578 goto err_out; 569 goto err_out;
579 } 570 }
580 571
572 devfreq->trans_table = devm_kzalloc(&devfreq->dev, sizeof(unsigned int) *
573 devfreq->profile->max_state *
574 devfreq->profile->max_state,
575 GFP_KERNEL);
576 devfreq->time_in_state = devm_kzalloc(&devfreq->dev, sizeof(unsigned long) *
577 devfreq->profile->max_state,
578 GFP_KERNEL);
579 devfreq->last_stat_updated = jiffies;
580
581 srcu_init_notifier_head(&devfreq->transition_notifier_list); 581 srcu_init_notifier_head(&devfreq->transition_notifier_list);
582 582
583 mutex_unlock(&devfreq->lock); 583 mutex_unlock(&devfreq->lock);
@@ -603,7 +603,6 @@ struct devfreq *devfreq_add_device(struct device *dev,
603err_init: 603err_init:
604 list_del(&devfreq->node); 604 list_del(&devfreq->node);
605 device_unregister(&devfreq->dev); 605 device_unregister(&devfreq->dev);
606 kfree(devfreq);
607err_out: 606err_out:
608 return ERR_PTR(err); 607 return ERR_PTR(err);
609} 608}
@@ -621,7 +620,6 @@ int devfreq_remove_device(struct devfreq *devfreq)
621 return -EINVAL; 620 return -EINVAL;
622 621
623 device_unregister(&devfreq->dev); 622 device_unregister(&devfreq->dev);
624 put_device(&devfreq->dev);
625 623
626 return 0; 624 return 0;
627} 625}
diff --git a/drivers/devfreq/event/exynos-nocp.c b/drivers/devfreq/event/exynos-nocp.c
index 6b6a5f310486..a5841403bde8 100644
--- a/drivers/devfreq/event/exynos-nocp.c
+++ b/drivers/devfreq/event/exynos-nocp.c
@@ -220,9 +220,6 @@ static int exynos_nocp_parse_dt(struct platform_device *pdev,
220 220
221 /* Maps the memory mapped IO to control nocp register */ 221 /* Maps the memory mapped IO to control nocp register */
222 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 222 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
223 if (IS_ERR(res))
224 return PTR_ERR(res);
225
226 base = devm_ioremap_resource(dev, res); 223 base = devm_ioremap_resource(dev, res);
227 if (IS_ERR(base)) 224 if (IS_ERR(base))
228 return PTR_ERR(base); 225 return PTR_ERR(base);