From 2f3f1a261c0f4827bda86009f0059aefbe30ed11 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 19 Oct 2016 18:06:24 -0300 Subject: PM / devfreq: rk3399_dmc: Fix module autoload If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module. Export the module alias information using the MODULE_DEVICE_TABLE() macro. Before this patch: $ modinfo drivers/devfreq/rk3399_dmc.ko | grep alias $ After this patch: $ modinfo drivers/devfreq/rk3399_dmc.ko | grep alias alias: of:N*T*Crockchip,rk3399-dmcC* alias: of:N*T*Crockchip,rk3399-dmc Signed-off-by: Javier Martinez Canillas Signed-off-by: MyungJoo Ham --- drivers/devfreq/rk3399_dmc.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c index e24b73d66659..77bd9d02e870 100644 --- a/drivers/devfreq/rk3399_dmc.c +++ b/drivers/devfreq/rk3399_dmc.c @@ -454,6 +454,7 @@ static const struct of_device_id rk3399dmc_devfreq_of_match[] = { { .compatible = "rockchip,rk3399-dmc" }, { }, }; +MODULE_DEVICE_TABLE(of, rk3399dmc_devfreq_of_match); static struct platform_driver rk3399_dmcfreq_driver = { .probe = rk3399_dmcfreq_probe, -- cgit v1.2.3 From ca5c3b216fcbbfb1cfa30c82267c9ee5c8763069 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 19 Oct 2016 18:06:25 -0300 Subject: PM / devfreq: exynos-nocp: Fix module autoload If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module. Export the module alias information using the MODULE_DEVICE_TABLE() macro. Before this patch: $ modinfo drivers/devfreq/event/exynos-nocp.ko | grep alias $ After this patch: $ modinfo drivers/devfreq/event/exynos-nocp.ko | grep alias alias: of:N*T*Csamsung,exynos5420-nocpC* alias: of:N*T*Csamsung,exynos5420-nocp Signed-off-by: Javier Martinez Canillas Signed-off-by: MyungJoo Ham --- drivers/devfreq/event/exynos-nocp.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/event/exynos-nocp.c b/drivers/devfreq/event/exynos-nocp.c index 49e712aca0c1..5c3e7b11e8a6 100644 --- a/drivers/devfreq/event/exynos-nocp.c +++ b/drivers/devfreq/event/exynos-nocp.c @@ -190,6 +190,7 @@ static const struct of_device_id exynos_nocp_id_match[] = { { .compatible = "samsung,exynos5420-nocp", }, { /* sentinel */ }, }; +MODULE_DEVICE_TABLE(of, exynos_nocp_id_match); static struct regmap_config exynos_nocp_regmap_config = { .reg_bits = 32, -- cgit v1.2.3 From dfd7c845ba981af4994b50c11d58fd230ca15a32 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 19 Oct 2016 18:06:26 -0300 Subject: PM / devfreq: rockchip-dfi: Fix module autoload If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module. Export the module alias information using the MODULE_DEVICE_TABLE() macro. Before this patch: $ modinfo drivers/devfreq/event/rockchip-dfi.ko | grep alias $ After this patch: $ modinfo drivers/devfreq/event/rockchip-dfi.ko | grep alias alias: of:N*T*Crockchip,rk3399-dfiC* alias: of:N*T*Crockchip,rk3399-dfi Signed-off-by: Javier Martinez Canillas Signed-off-by: MyungJoo Ham --- drivers/devfreq/event/rockchip-dfi.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/event/rockchip-dfi.c b/drivers/devfreq/event/rockchip-dfi.c index 43fcc5a7f515..22b113363ffc 100644 --- a/drivers/devfreq/event/rockchip-dfi.c +++ b/drivers/devfreq/event/rockchip-dfi.c @@ -188,6 +188,7 @@ static const struct of_device_id rockchip_dfi_id_match[] = { { .compatible = "rockchip,rk3399-dfi" }, { }, }; +MODULE_DEVICE_TABLE(of, rockchip_dfi_id_match); static int rockchip_dfi_probe(struct platform_device *pdev) { -- cgit v1.2.3 From 29e477f23598b850b08bae22d142bd3abf491248 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 19 Oct 2016 18:06:27 -0300 Subject: PM / devfreq: exynos-ppmu: Fix module autoload If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module. Export the module alias information using the MODULE_DEVICE_TABLE() macro. Before this patch: $ modinfo drivers/devfreq/event/exynos-ppmu.ko | grep alias $ After this patch: $ modinfo drivers/devfreq/event/exynos-ppmu.ko | grep alias alias: of:N*T*Csamsung,exynos-ppmu-v2C* alias: of:N*T*Csamsung,exynos-ppmu-v2 alias: of:N*T*Csamsung,exynos-ppmuC* alias: of:N*T*Csamsung,exynos-ppmu Signed-off-by: Javier Martinez Canillas Signed-off-by: MyungJoo Ham --- drivers/devfreq/event/exynos-ppmu.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c index f55cf0eb2a66..a112034997eb 100644 --- a/drivers/devfreq/event/exynos-ppmu.c +++ b/drivers/devfreq/event/exynos-ppmu.c @@ -351,6 +351,7 @@ static const struct of_device_id exynos_ppmu_id_match[] = { }, { /* sentinel */ }, }; +MODULE_DEVICE_TABLE(of, exynos_ppmu_id_match); static struct devfreq_event_ops *exynos_bus_get_ops(struct device_node *np) { -- cgit v1.2.3 From f8dbe363ba01de9bebb023f499e7bf9c31f028ab Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Fri, 21 Oct 2016 09:09:08 +0800 Subject: PM / devfreq: exynos-ppmu: ppmu_events array should not be NULL terminated The rest of the code uses ARRAY_SIZE to count the number of entries in ppmu_events array. The NULL terminated entry makes ARRAY_SIZE return off-by-one value. Signed-off-by: Axel Lin Acked-by: Chanwoo Choi Signed-off-by: MyungJoo Ham --- drivers/devfreq/event/exynos-ppmu.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c index a112034997eb..958285d5d64b 100644 --- a/drivers/devfreq/event/exynos-ppmu.c +++ b/drivers/devfreq/event/exynos-ppmu.c @@ -90,8 +90,6 @@ struct __exynos_ppmu_events { PPMU_EVENT(d1-cpu), PPMU_EVENT(d1-general), PPMU_EVENT(d1-rt), - - { /* sentinel */ }, }; static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev) -- cgit v1.2.3 From 6bbda2d4f83f7bfeb20fcf67670c47193d6ee6b0 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Fri, 21 Oct 2016 09:09:09 +0800 Subject: PM / devfreq: exynos-ppmu: Remove unused mutex from struct exynos_ppmu The mutex is not used at all, remove it. Signed-off-by: Axel Lin Acked-by: Chanwoo Choi Signed-off-by: MyungJoo Ham --- drivers/devfreq/event/exynos-ppmu.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c index 958285d5d64b..107eb91a9415 100644 --- a/drivers/devfreq/event/exynos-ppmu.c +++ b/drivers/devfreq/event/exynos-ppmu.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -34,7 +33,6 @@ struct exynos_ppmu { unsigned int num_events; struct device *dev; - struct mutex lock; struct exynos_ppmu_data ppmu; }; @@ -462,7 +460,6 @@ static int exynos_ppmu_probe(struct platform_device *pdev) if (!info) return -ENOMEM; - mutex_init(&info->lock); info->dev = &pdev->dev; /* Parse dt data to get resource */ -- cgit v1.2.3 From bafeb42bd80fb269d5cc396d28165818aae5994c Mon Sep 17 00:00:00 2001 From: MyungJoo Ham Date: Wed, 9 Nov 2016 10:29:14 +0900 Subject: PM / devfreq: correct comment typo. The function name in the comment was incorrect. Signed-off-by: MyungJoo Ham Reviewed-by: Chanwoo Choi --- drivers/devfreq/devfreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index bf3ea7603a58..a324801d6a66 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -850,7 +850,7 @@ err_out: EXPORT_SYMBOL(devfreq_add_governor); /** - * devfreq_remove_device() - Remove devfreq feature from a device. + * devfreq_remove_governor() - Remove devfreq feature from a device. * @governor: the devfreq governor to be removed */ int devfreq_remove_governor(struct devfreq_governor *governor) -- cgit v1.2.3 From 927b75a628b1d80fef171420fbd694fc28d9b8e9 Mon Sep 17 00:00:00 2001 From: Chanwoo Choi Date: Tue, 8 Nov 2016 18:13:27 +0900 Subject: PM / devfreq: rk3399_dmc: Use the resource-managed function to add devfreq dev This patch uses the resource-managed to add the devfreq device. This function will make it easy to handle the devfreq device. - struct devfreq *devm_devfreq_add_device(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data); Signed-off-by: Chanwoo Choi Signed-off-by: MyungJoo Ham --- drivers/devfreq/rk3399_dmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/devfreq') diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c index 77bd9d02e870..5063ac1a5939 100644 --- a/drivers/devfreq/rk3399_dmc.c +++ b/drivers/devfreq/rk3399_dmc.c @@ -436,7 +436,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev) rk3399_devfreq_dmc_profile.initial_freq = data->rate; - data->devfreq = devfreq_add_device(dev, + data->devfreq = devm_devfreq_add_device(dev, &rk3399_devfreq_dmc_profile, "simple_ondemand", &data->ondemand_data); -- cgit v1.2.3