diff options
author | Axel Lin <axel.lin@ingics.com> | 2020-01-14 15:44:48 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-01-14 18:24:41 +0300 |
commit | 489d6954acabe71d22ba0033fe85822742364915 (patch) | |
tree | 89b75348e4b0b6868f774e4f72d9b40f2d202cd4 /drivers/regulator | |
parent | f72c5835509109715a8d8f0d98fddef089b3a4d8 (diff) | |
download | linux-489d6954acabe71d22ba0033fe85822742364915.tar.xz |
regulator: mpq7920: Remove unneeded fields from struct mpq7920_regulator_info
Both *dev and *rdev are only used in .probe, so use local variable instead.
Also remove mpq7920_regulator_register() because it is so trivial and
there is only one caller.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Link: https://lore.kernel.org/r/20200114124449.28408-1-axel.lin@ingics.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/mpq7920.c | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/drivers/regulator/mpq7920.c b/drivers/regulator/mpq7920.c index 80f3131f0d1b..b133bab514a9 100644 --- a/drivers/regulator/mpq7920.c +++ b/drivers/regulator/mpq7920.c @@ -92,9 +92,7 @@ enum mpq7920_regulators { }; struct mpq7920_regulator_info { - struct device *dev; struct regmap *regmap; - struct regulator_dev *rdev[MPQ7920_MAX_REGULATORS]; struct regulator_desc *rdesc; }; @@ -262,40 +260,21 @@ static void mpq7920_parse_dt(struct device *dev, of_node_put(np); } -static inline int mpq7920_regulator_register( - struct mpq7920_regulator_info *info, - struct regulator_config *config) -{ - int i; - struct regulator_desc *rdesc; - - for (i = 0; i < MPQ7920_MAX_REGULATORS; i++) { - rdesc = &info->rdesc[i]; - - info->rdev[i] = devm_regulator_register(info->dev, rdesc, - config); - if (IS_ERR(info->rdev[i])) - return PTR_ERR(info->rdev[i]); - } - - return 0; -} - static int mpq7920_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct device *dev = &client->dev; struct mpq7920_regulator_info *info; struct regulator_config config = { NULL, }; + struct regulator_dev *rdev; struct regmap *regmap; - int ret; + int i; info = devm_kzalloc(dev, sizeof(struct mpq7920_regulator_info), GFP_KERNEL); if (!info) return -ENOMEM; - info->dev = dev; info->rdesc = mpq7920_regulators_desc; regmap = devm_regmap_init_i2c(client, &mpq7920_regmap_config); if (IS_ERR(regmap)) { @@ -308,15 +287,21 @@ static int mpq7920_i2c_probe(struct i2c_client *client, if (client->dev.of_node) mpq7920_parse_dt(&client->dev, info); - config.dev = info->dev; + config.dev = dev; config.regmap = regmap; config.driver_data = info; - ret = mpq7920_regulator_register(info, &config); - if (ret < 0) - dev_err(dev, "Failed to register regulator!\n"); + for (i = 0; i < MPQ7920_MAX_REGULATORS; i++) { + rdev = devm_regulator_register(dev, + &mpq7920_regulators_desc[i], + &config); + if (IS_ERR(rdev)) { + dev_err(dev, "Failed to register regulator!\n"); + return PTR_ERR(rdev); + } + } - return ret; + return 0; } static const struct of_device_id mpq7920_of_match[] = { |