lkml.org 
[lkml]   [2021]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V2 1/3] opp: Create _of_add_table_indexed() to reduce code duplication
    Date
    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>
    ---
    V2:
    - No change

    drivers/opp/of.c | 81 ++++++++++++++++++++----------------------------
    1 file changed, 33 insertions(+), 48 deletions(-)

    diff --git a/drivers/opp/of.c b/drivers/opp/of.c
    index d0c0336be39b..c6856dcf4c34 100644
    --- a/drivers/opp/of.c
    +++ b/drivers/opp/of.c
    @@ -956,29 +956,23 @@ static int _of_add_opp_table_v1(struct device *dev, struct opp_table *opp_table)
    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);

    --
    2.25.0.rc1.19.g042ed3e048af
    \
     
     \ /
      Last update: 2021-01-28 08:02    [W:5.943 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site