Merge branch 'pm-devfreq'
* pm-devfreq: PM / devfreq: exynos-bus: add missing of_node_put after calling of_parse_phandle PM / devfreq: add missing of_node_put after calling of_parse_phandle PM / devfreq: exynos-ppmu: fix error path in exynos_ppmu_probe() PM / devfreq: exynos: fix error path in exynos_bus_probe() PM / devfreq: make event/exynos-ppmu DEVFREQ_EVENT_EXYNOS_PPMU tristate PM / devfreq: make event/exynos-nocp DEVFREQ_EVENT_EXYNOS_NOCP tristate PM / devfreq: make exynos-bus ARM_EXYNOS_BUS_DEVFREQ tristate PM / devfreq: make devfreq-event explicitly non-modular PM / devfreq: make devfreq explicitly non-modular
This commit is contained in:
commit
dbac75468e
@ -75,7 +75,7 @@ config DEVFREQ_GOV_PASSIVE
|
||||
comment "DEVFREQ Drivers"
|
||||
|
||||
config ARM_EXYNOS_BUS_DEVFREQ
|
||||
bool "ARM EXYNOS Generic Memory Bus DEVFREQ Driver"
|
||||
tristate "ARM EXYNOS Generic Memory Bus DEVFREQ Driver"
|
||||
depends on ARCH_EXYNOS
|
||||
select DEVFREQ_GOV_SIMPLE_ONDEMAND
|
||||
select DEVFREQ_GOV_PASSIVE
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/of.h>
|
||||
@ -481,13 +481,3 @@ static int __init devfreq_event_init(void)
|
||||
return 0;
|
||||
}
|
||||
subsys_initcall(devfreq_event_init);
|
||||
|
||||
static void __exit devfreq_event_exit(void)
|
||||
{
|
||||
class_destroy(devfreq_event_class);
|
||||
}
|
||||
module_exit(devfreq_event_exit);
|
||||
|
||||
MODULE_AUTHOR("Chanwoo Choi <cw00.choi@samsung.com>");
|
||||
MODULE_DESCRIPTION("DEVFREQ-Event class support");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/stat.h>
|
||||
#include <linux/pm_opp.h>
|
||||
@ -707,10 +707,12 @@ struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index)
|
||||
if (devfreq->dev.parent
|
||||
&& devfreq->dev.parent->of_node == node) {
|
||||
mutex_unlock(&devfreq_list_lock);
|
||||
of_node_put(node);
|
||||
return devfreq;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&devfreq_list_lock);
|
||||
of_node_put(node);
|
||||
|
||||
return ERR_PTR(-EPROBE_DEFER);
|
||||
}
|
||||
@ -1199,13 +1201,6 @@ static int __init devfreq_init(void)
|
||||
}
|
||||
subsys_initcall(devfreq_init);
|
||||
|
||||
static void __exit devfreq_exit(void)
|
||||
{
|
||||
class_destroy(devfreq_class);
|
||||
destroy_workqueue(devfreq_wq);
|
||||
}
|
||||
module_exit(devfreq_exit);
|
||||
|
||||
/*
|
||||
* The followings are helper functions for devfreq user device drivers with
|
||||
* OPP framework.
|
||||
@ -1471,7 +1466,3 @@ void devm_devfreq_unregister_notifier(struct device *dev,
|
||||
devm_devfreq_dev_match, devfreq));
|
||||
}
|
||||
EXPORT_SYMBOL(devm_devfreq_unregister_notifier);
|
||||
|
||||
MODULE_AUTHOR("MyungJoo Ham <myungjoo.ham@samsung.com>");
|
||||
MODULE_DESCRIPTION("devfreq class support");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -14,7 +14,7 @@ menuconfig PM_DEVFREQ_EVENT
|
||||
if PM_DEVFREQ_EVENT
|
||||
|
||||
config DEVFREQ_EVENT_EXYNOS_NOCP
|
||||
bool "EXYNOS NoC (Network On Chip) Probe DEVFREQ event Driver"
|
||||
tristate "EXYNOS NoC (Network On Chip) Probe DEVFREQ event Driver"
|
||||
depends on ARCH_EXYNOS
|
||||
select PM_OPP
|
||||
help
|
||||
@ -22,7 +22,7 @@ config DEVFREQ_EVENT_EXYNOS_NOCP
|
||||
(Network on Chip) Probe counters to measure the bandwidth of AXI bus.
|
||||
|
||||
config DEVFREQ_EVENT_EXYNOS_PPMU
|
||||
bool "EXYNOS PPMU (Platform Performance Monitoring Unit) DEVFREQ event Driver"
|
||||
tristate "EXYNOS PPMU (Platform Performance Monitoring Unit) DEVFREQ event Driver"
|
||||
depends on ARCH_EXYNOS
|
||||
select PM_OPP
|
||||
help
|
||||
|
@ -482,7 +482,8 @@ static int exynos_ppmu_probe(struct platform_device *pdev)
|
||||
if (!info->edev) {
|
||||
dev_err(&pdev->dev,
|
||||
"failed to allocate memory devfreq-event devices\n");
|
||||
return -ENOMEM;
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
edev = info->edev;
|
||||
platform_set_drvdata(pdev, info);
|
||||
|
@ -383,7 +383,7 @@ err_clk:
|
||||
static int exynos_bus_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct device_node *np = dev->of_node;
|
||||
struct device_node *np = dev->of_node, *node;
|
||||
struct devfreq_dev_profile *profile;
|
||||
struct devfreq_simple_ondemand_data *ondemand_data;
|
||||
struct devfreq_passive_data *passive_data;
|
||||
@ -407,7 +407,7 @@ static int exynos_bus_probe(struct platform_device *pdev)
|
||||
/* Parse the device-tree to get the resource information */
|
||||
ret = exynos_bus_parse_of(np, bus);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
return ret;
|
||||
|
||||
profile = devm_kzalloc(dev, sizeof(*profile), GFP_KERNEL);
|
||||
if (!profile) {
|
||||
@ -415,10 +415,13 @@ static int exynos_bus_probe(struct platform_device *pdev)
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (of_parse_phandle(dev->of_node, "devfreq", 0))
|
||||
node = of_parse_phandle(dev->of_node, "devfreq", 0);
|
||||
if (node) {
|
||||
of_node_put(node);
|
||||
goto passive;
|
||||
else
|
||||
} else {
|
||||
ret = exynos_bus_parent_parse_of(np, bus);
|
||||
}
|
||||
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
Loading…
Reference in New Issue
Block a user