Merge branch 'pm-devfreq'
* pm-devfreq: PM / devfreq: create_freezable_workqueue() doesn't return an ERR_PTR PM / devfreq: Remove duplicate header file inclusion in exynos5_bus.c PM / devfreq: Use devm_* APIs in exynos5_bus.c PM / devfreq: Remove redundant platform_set_drvdata() in exynos5_bus.c PM / devfreq: Fix incorrect usage of IS_ERR_OR_NULL in exynos5_bus.c
This commit is contained in:
commit
230b4b376e
@ -993,10 +993,10 @@ static int __init devfreq_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
devfreq_wq = create_freezable_workqueue("devfreq_wq");
|
devfreq_wq = create_freezable_workqueue("devfreq_wq");
|
||||||
if (IS_ERR(devfreq_wq)) {
|
if (!devfreq_wq) {
|
||||||
class_destroy(devfreq_class);
|
class_destroy(devfreq_class);
|
||||||
pr_err("%s: couldn't create workqueue\n", __FILE__);
|
pr_err("%s: couldn't create workqueue\n", __FILE__);
|
||||||
return PTR_ERR(devfreq_wq);
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
devfreq_class->dev_groups = devfreq_groups;
|
devfreq_class->dev_groups = devfreq_groups;
|
||||||
|
|
||||||
|
@ -350,20 +350,18 @@ static int exynos5_busfreq_int_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
err = exynos5250_init_int_tables(data);
|
err = exynos5250_init_int_tables(data);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_regulator;
|
return err;
|
||||||
|
|
||||||
data->vdd_int = regulator_get(dev, "vdd_int");
|
data->vdd_int = devm_regulator_get(dev, "vdd_int");
|
||||||
if (IS_ERR(data->vdd_int)) {
|
if (IS_ERR(data->vdd_int)) {
|
||||||
dev_err(dev, "Cannot get the regulator \"vdd_int\"\n");
|
dev_err(dev, "Cannot get the regulator \"vdd_int\"\n");
|
||||||
err = PTR_ERR(data->vdd_int);
|
return PTR_ERR(data->vdd_int);
|
||||||
goto err_regulator;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data->int_clk = clk_get(dev, "int_clk");
|
data->int_clk = devm_clk_get(dev, "int_clk");
|
||||||
if (IS_ERR(data->int_clk)) {
|
if (IS_ERR(data->int_clk)) {
|
||||||
dev_err(dev, "Cannot get clock \"int_clk\"\n");
|
dev_err(dev, "Cannot get clock \"int_clk\"\n");
|
||||||
err = PTR_ERR(data->int_clk);
|
return PTR_ERR(data->int_clk);
|
||||||
goto err_clock;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
@ -373,8 +371,7 @@ static int exynos5_busfreq_int_probe(struct platform_device *pdev)
|
|||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
dev_err(dev, "Invalid initial frequency %lu kHz.\n",
|
dev_err(dev, "Invalid initial frequency %lu kHz.\n",
|
||||||
exynos5_devfreq_int_profile.initial_freq);
|
exynos5_devfreq_int_profile.initial_freq);
|
||||||
err = PTR_ERR(opp);
|
return PTR_ERR(opp);
|
||||||
goto err_opp_add;
|
|
||||||
}
|
}
|
||||||
initial_freq = dev_pm_opp_get_freq(opp);
|
initial_freq = dev_pm_opp_get_freq(opp);
|
||||||
initial_volt = dev_pm_opp_get_voltage(opp);
|
initial_volt = dev_pm_opp_get_voltage(opp);
|
||||||
@ -384,12 +381,12 @@ static int exynos5_busfreq_int_probe(struct platform_device *pdev)
|
|||||||
err = clk_set_rate(data->int_clk, initial_freq * 1000);
|
err = clk_set_rate(data->int_clk, initial_freq * 1000);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "Failed to set initial frequency\n");
|
dev_err(dev, "Failed to set initial frequency\n");
|
||||||
goto err_opp_add;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = exynos5_int_setvolt(data, initial_volt);
|
err = exynos5_int_setvolt(data, initial_volt);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_opp_add;
|
return err;
|
||||||
|
|
||||||
platform_set_drvdata(pdev, data);
|
platform_set_drvdata(pdev, data);
|
||||||
|
|
||||||
@ -418,12 +415,6 @@ static int exynos5_busfreq_int_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
err_devfreq_add:
|
err_devfreq_add:
|
||||||
devfreq_remove_device(data->devfreq);
|
devfreq_remove_device(data->devfreq);
|
||||||
platform_set_drvdata(pdev, NULL);
|
|
||||||
err_opp_add:
|
|
||||||
clk_put(data->int_clk);
|
|
||||||
err_clock:
|
|
||||||
regulator_put(data->vdd_int);
|
|
||||||
err_regulator:
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -434,9 +425,6 @@ static int exynos5_busfreq_int_remove(struct platform_device *pdev)
|
|||||||
pm_qos_remove_request(&data->int_req);
|
pm_qos_remove_request(&data->int_req);
|
||||||
unregister_pm_notifier(&data->pm_notifier);
|
unregister_pm_notifier(&data->pm_notifier);
|
||||||
devfreq_remove_device(data->devfreq);
|
devfreq_remove_device(data->devfreq);
|
||||||
regulator_put(data->vdd_int);
|
|
||||||
clk_put(data->int_clk);
|
|
||||||
platform_set_drvdata(pdev, NULL);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -478,7 +466,7 @@ static int __init exynos5_busfreq_int_init(void)
|
|||||||
|
|
||||||
exynos5_devfreq_pdev =
|
exynos5_devfreq_pdev =
|
||||||
platform_device_register_simple("exynos5-bus-int", -1, NULL, 0);
|
platform_device_register_simple("exynos5-bus-int", -1, NULL, 0);
|
||||||
if (IS_ERR_OR_NULL(exynos5_devfreq_pdev)) {
|
if (IS_ERR(exynos5_devfreq_pdev)) {
|
||||||
ret = PTR_ERR(exynos5_devfreq_pdev);
|
ret = PTR_ERR(exynos5_devfreq_pdev);
|
||||||
goto out1;
|
goto out1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user