The patch

   regulator: 88pm8607: Simplify pm8607_list_voltage implementation

has been applied to the regulator tree at

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 2654d368ea3dc7e04a78ff2531ffd886736ae374 Mon Sep 17 00:00:00 2001
From: Axel Lin <[email protected]>
Date: Tue, 26 Feb 2019 20:40:58 +0800
Subject: [PATCH] regulator: 88pm8607: Simplify pm8607_list_voltage
 implementation

Set volt_table filed then we can use regulator_list_voltage_table.
Since we have volt_table setting, now we can remove vol_table from
struct pm8607_regulator_info.

Signed-off-by: Axel Lin <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
 drivers/regulator/88pm8607.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/regulator/88pm8607.c b/drivers/regulator/88pm8607.c
index 28f55248eb90..597385d25201 100644
--- a/drivers/regulator/88pm8607.c
+++ b/drivers/regulator/88pm8607.c
@@ -27,7 +27,6 @@ struct pm8607_regulator_info {
        struct i2c_client       *i2c;
        struct i2c_client       *i2c_8606;
 
-       unsigned int    *vol_table;
        unsigned int    *vol_suspend;
 
        int     slope_double;
@@ -210,13 +209,15 @@ static const unsigned int LDO14_suspend_table[] = {
 static int pm8607_list_voltage(struct regulator_dev *rdev, unsigned index)
 {
        struct pm8607_regulator_info *info = rdev_get_drvdata(rdev);
-       int ret = -EINVAL;
+       int ret;
+
+       ret = regulator_list_voltage_table(rdev, index);
+       if (ret < 0)
+               return ret;
+
+       if (info->slope_double)
+               ret <<= 1;
 
-       if (info->vol_table && (index < rdev->desc->n_voltages)) {
-               ret = info->vol_table[index];
-               if (info->slope_double)
-                       ret <<= 1;
-       }
        return ret;
 }
 
@@ -257,6 +258,7 @@ static const struct regulator_ops pm8606_preg_ops = {
                .type   = REGULATOR_VOLTAGE,                            \
                .id     = PM8607_ID_##vreg,                             \
                .owner  = THIS_MODULE,                                  \
+               .volt_table = vreg##_table,                             \
                .n_voltages = ARRAY_SIZE(vreg##_table),                 \
                .vsel_reg = PM8607_##vreg,                              \
                .vsel_mask = ARRAY_SIZE(vreg##_table) - 1,              \
@@ -266,7 +268,6 @@ static const struct regulator_ops pm8606_preg_ops = {
                .enable_mask = 1 << (ebit),                             \
        },                                                              \
        .slope_double   = (0),                                          \
-       .vol_table      = (unsigned int *)&vreg##_table,                \
        .vol_suspend    = (unsigned int *)&vreg##_suspend_table,        \
 }
 
@@ -278,6 +279,7 @@ static const struct regulator_ops pm8606_preg_ops = {
                .type   = REGULATOR_VOLTAGE,                            \
                .id     = PM8607_ID_LDO##_id,                           \
                .owner  = THIS_MODULE,                                  \
+               .volt_table = LDO##_id##_table,                         \
                .n_voltages = ARRAY_SIZE(LDO##_id##_table),             \
                .vsel_reg = PM8607_##vreg,                              \
                .vsel_mask = (ARRAY_SIZE(LDO##_id##_table) - 1) << (shift), \
@@ -285,7 +287,6 @@ static const struct regulator_ops pm8606_preg_ops = {
                .enable_mask = 1 << (ebit),                             \
        },                                                              \
        .slope_double   = (0),                                          \
-       .vol_table      = (unsigned int *)&LDO##_id##_table,            \
        .vol_suspend    = (unsigned int *)&LDO##_id##_suspend_table,    \
 }
 
-- 
2.20.1

Reply via email to