From: Artur Świgoń <a.swi...@partner.samsung.com>

This patch adds a new static function, exynos_bus_profile_init(), extracted
from exynos_bus_probe().

Signed-off-by: Artur Świgoń <a.swi...@partner.samsung.com>
---
 drivers/devfreq/exynos-bus.c | 92 +++++++++++++++++++++---------------
 1 file changed, 53 insertions(+), 39 deletions(-)

diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
index 29f422469960..78f38b7fb596 100644
--- a/drivers/devfreq/exynos-bus.c
+++ b/drivers/devfreq/exynos-bus.c
@@ -287,12 +287,62 @@ static int exynos_bus_parse_of(struct device_node *np,
        return ret;
 }
 
+static int exynos_bus_profile_init(struct exynos_bus *bus,
+                                  struct devfreq_dev_profile *profile)
+{
+       struct device *dev = bus->dev;
+       struct devfreq_simple_ondemand_data *ondemand_data;
+       int ret;
+
+       /* Initialize the struct profile and governor data for parent device */
+       profile->polling_ms = 50;
+       profile->target = exynos_bus_target;
+       profile->get_dev_status = exynos_bus_get_dev_status;
+       profile->exit = exynos_bus_exit;
+
+       ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
+       if (!ondemand_data) {
+               ret = -ENOMEM;
+               goto err;
+       }
+       ondemand_data->upthreshold = 40;
+       ondemand_data->downdifferential = 5;
+
+       /* Add devfreq device to monitor and handle the exynos bus */
+       bus->devfreq = devm_devfreq_add_device(dev, profile,
+                                               DEVFREQ_GOV_SIMPLE_ONDEMAND,
+                                               ondemand_data);
+       if (IS_ERR(bus->devfreq)) {
+               dev_err(dev, "failed to add devfreq device\n");
+               ret = PTR_ERR(bus->devfreq);
+               goto err;
+       }
+
+       /*
+        * Enable devfreq-event to get raw data which is used to determine
+        * current bus load.
+        */
+       ret = exynos_bus_enable_edev(bus);
+       if (ret < 0) {
+               dev_err(dev, "failed to enable devfreq-event devices\n");
+               goto err;
+       }
+
+       ret = exynos_bus_set_event(bus);
+       if (ret < 0) {
+               dev_err(dev, "failed to set event to devfreq-event devices\n");
+               goto err;
+       }
+
+err:
+       return ret;
+}
+
 static int exynos_bus_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
        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;
        struct devfreq *parent_devfreq;
        struct exynos_bus *bus;
@@ -334,45 +384,9 @@ static int exynos_bus_probe(struct platform_device *pdev)
        if (passive)
                goto passive;
 
-       /* Initialize the struct profile and governor data for parent device */
-       profile->polling_ms = 50;
-       profile->target = exynos_bus_target;
-       profile->get_dev_status = exynos_bus_get_dev_status;
-       profile->exit = exynos_bus_exit;
-
-       ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
-       if (!ondemand_data) {
-               ret = -ENOMEM;
+       ret = exynos_bus_profile_init(bus, profile);
+       if (ret < 0)
                goto err;
-       }
-       ondemand_data->upthreshold = 40;
-       ondemand_data->downdifferential = 5;
-
-       /* Add devfreq device to monitor and handle the exynos bus */
-       bus->devfreq = devm_devfreq_add_device(dev, profile,
-                                               DEVFREQ_GOV_SIMPLE_ONDEMAND,
-                                               ondemand_data);
-       if (IS_ERR(bus->devfreq)) {
-               dev_err(dev, "failed to add devfreq device\n");
-               ret = PTR_ERR(bus->devfreq);
-               goto err;
-       }
-
-       /*
-        * Enable devfreq-event to get raw data which is used to determine
-        * current bus load.
-        */
-       ret = exynos_bus_enable_edev(bus);
-       if (ret < 0) {
-               dev_err(dev, "failed to enable devfreq-event devices\n");
-               goto err;
-       }
-
-       ret = exynos_bus_set_event(bus);
-       if (ret < 0) {
-               dev_err(dev, "failed to set event to devfreq-event devices\n");
-               goto err;
-       }
 
        goto out;
 passive:
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to