]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
opp: Create _of_add_table_indexed() to reduce code duplication
authorViresh Kumar <viresh.kumar@linaro.org>
Wed, 27 Jan 2021 07:15:56 +0000 (12:45 +0530)
committerViresh Kumar <viresh.kumar@linaro.org>
Tue, 2 Feb 2021 04:57:06 +0000 (10:27 +0530)
The implementation of dev_pm_opp_of_add_table() and
dev_pm_opp_of_add_table_indexed() are almost identical. Create
_of_add_table_indexed() to reduce code redundancy.

Also remove the duplication of the doc style comments by referring to
dev_pm_opp_of_add_table() from dev_pm_opp_of_add_table_indexed().

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Dmitry Osipenko <digetx@gmail.com>
drivers/opp/of.c

index d0c0336be39b43424d2a55ac78caa51adf66d519..c6856dcf4c34fd4bd4f18d5c7bc4a21b74de0720 100644 (file)
@@ -956,29 +956,23 @@ remove_static_opp:
        return ret;
 }
 
-/**
- * dev_pm_opp_of_add_table() - Initialize opp table from device tree
- * @dev:       device pointer used to lookup OPP table.
- *
- * Register the initial OPP table with the OPP library for given device.
- *
- * Return:
- * 0           On success OR
- *             Duplicate OPPs (both freq and volt are same) and opp->available
- * -EEXIST     Freq are same and volt are different OR
- *             Duplicate OPPs (both freq and volt are same) and !opp->available
- * -ENOMEM     Memory allocation failure
- * -ENODEV     when 'operating-points' property is not found or is invalid data
- *             in device node.
- * -ENODATA    when empty 'operating-points' property is found
- * -EINVAL     when invalid entries are found in opp-v2 table
- */
-int dev_pm_opp_of_add_table(struct device *dev)
+static int _of_add_table_indexed(struct device *dev, int index)
 {
        struct opp_table *opp_table;
-       int ret;
+       int ret, count;
 
-       opp_table = _add_opp_table_indexed(dev, 0);
+       if (index) {
+               /*
+                * If only one phandle is present, then the same OPP table
+                * applies for all index requests.
+                */
+               count = of_count_phandle_with_args(dev->of_node,
+                                                  "operating-points-v2", NULL);
+               if (count == 1)
+                       index = 0;
+       }
+
+       opp_table = _add_opp_table_indexed(dev, index);
        if (IS_ERR(opp_table))
                return PTR_ERR(opp_table);
 
@@ -996,15 +990,12 @@ int dev_pm_opp_of_add_table(struct device *dev)
 
        return ret;
 }
-EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table);
 
 /**
- * dev_pm_opp_of_add_table_indexed() - Initialize indexed opp table from device tree
+ * dev_pm_opp_of_add_table() - Initialize opp table from device tree
  * @dev:       device pointer used to lookup OPP table.
- * @index:     Index number.
  *
- * Register the initial OPP table with the OPP library for given device only
- * using the "operating-points-v2" property.
+ * Register the initial OPP table with the OPP library for given device.
  *
  * Return:
  * 0           On success OR
@@ -1017,31 +1008,25 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table);
  * -ENODATA    when empty 'operating-points' property is found
  * -EINVAL     when invalid entries are found in opp-v2 table
  */
-int dev_pm_opp_of_add_table_indexed(struct device *dev, int index)
+int dev_pm_opp_of_add_table(struct device *dev)
 {
-       struct opp_table *opp_table;
-       int ret, count;
-
-       if (index) {
-               /*
-                * If only one phandle is present, then the same OPP table
-                * applies for all index requests.
-                */
-               count = of_count_phandle_with_args(dev->of_node,
-                                                  "operating-points-v2", NULL);
-               if (count == 1)
-                       index = 0;
-       }
-
-       opp_table = _add_opp_table_indexed(dev, index);
-       if (IS_ERR(opp_table))
-               return PTR_ERR(opp_table);
-
-       ret = _of_add_opp_table_v2(dev, opp_table);
-       if (ret)
-               dev_pm_opp_put_opp_table(opp_table);
+       return _of_add_table_indexed(dev, 0);
+}
+EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table);
 
-       return ret;
+/**
+ * dev_pm_opp_of_add_table_indexed() - Initialize indexed opp table from device tree
+ * @dev:       device pointer used to lookup OPP table.
+ * @index:     Index number.
+ *
+ * Register the initial OPP table with the OPP library for given device only
+ * using the "operating-points-v2" property.
+ *
+ * Return: Refer to dev_pm_opp_of_add_table() for return values.
+ */
+int dev_pm_opp_of_add_table_indexed(struct device *dev, int index)
+{
+       return _of_add_table_indexed(dev, index);
 }
 EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table_indexed);