lkml.org 
[lkml]   [2019]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 135/258] OPP: Use opp_table->regulators to verify no regulator case
    Date
    From: Viresh Kumar <viresh.kumar@linaro.org>

    [ Upstream commit 90e3577b5feb42bac1269e16bb3d2bdd8f6df40f ]

    The value of opp_table->regulator_count is not very consistent right now
    and it may end up being 0 while we do have a "opp-microvolt" property in
    the OPP table. It was kept that way as we used to check if any
    regulators are set with the OPP core for a device or not using value of
    regulator_count.

    Lets use opp_table->regulators for that purpose as the meaning of
    regulator_count is going to change in the later patches.

    Reported-by: Quentin Perret <quentin.perret@arm.com>
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/opp/core.c | 11 +++++++----
    1 file changed, 7 insertions(+), 4 deletions(-)

    diff --git a/drivers/opp/core.c b/drivers/opp/core.c
    index 31ff03dbeb83..f3433bf47b10 100644
    --- a/drivers/opp/core.c
    +++ b/drivers/opp/core.c
    @@ -191,12 +191,12 @@ unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
    if (IS_ERR(opp_table))
    return 0;

    - count = opp_table->regulator_count;
    -
    /* Regulator may not be required for the device */
    - if (!count)
    + if (!opp_table->regulators)
    goto put_opp_table;

    + count = opp_table->regulator_count;
    +
    uV = kmalloc_array(count, sizeof(*uV), GFP_KERNEL);
    if (!uV)
    goto put_opp_table;
    @@ -976,6 +976,9 @@ static bool _opp_supported_by_regulators(struct dev_pm_opp *opp,
    struct regulator *reg;
    int i;

    + if (!opp_table->regulators)
    + return true;
    +
    for (i = 0; i < opp_table->regulator_count; i++) {
    reg = opp_table->regulators[i];

    @@ -1263,7 +1266,7 @@ static int _allocate_set_opp_data(struct opp_table *opp_table)
    struct dev_pm_set_opp_data *data;
    int len, count = opp_table->regulator_count;

    - if (WARN_ON(!count))
    + if (WARN_ON(!opp_table->regulators))
    return -EINVAL;

    /* space for set_opp_data */
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-01-28 17:06    [W:4.135 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site