diff options
-rw-r--r-- | drivers/regulator/da9211-regulator.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/drivers/regulator/da9211-regulator.c b/drivers/regulator/da9211-regulator.c index bd1850658a3f..1482adafa1ad 100644 --- a/drivers/regulator/da9211-regulator.c +++ b/drivers/regulator/da9211-regulator.c | |||
@@ -245,7 +245,7 @@ static int da9211_regulator_init(struct da9211 *chip) | |||
245 | ret = regmap_read(chip->regmap, DA9211_REG_CONFIG_E, &data); | 245 | ret = regmap_read(chip->regmap, DA9211_REG_CONFIG_E, &data); |
246 | if (ret < 0) { | 246 | if (ret < 0) { |
247 | dev_err(chip->dev, "Failed to read CONTROL_E reg: %d\n", ret); | 247 | dev_err(chip->dev, "Failed to read CONTROL_E reg: %d\n", ret); |
248 | goto err; | 248 | return ret; |
249 | } | 249 | } |
250 | 250 | ||
251 | data &= DA9211_SLAVE_SEL; | 251 | data &= DA9211_SLAVE_SEL; |
@@ -259,9 +259,8 @@ static int da9211_regulator_init(struct da9211 *chip) | |||
259 | else | 259 | else |
260 | chip->num_regulator = 2; | 260 | chip->num_regulator = 2; |
261 | } else { | 261 | } else { |
262 | ret = -EINVAL; | ||
263 | dev_err(chip->dev, "Configuration is mismatched\n"); | 262 | dev_err(chip->dev, "Configuration is mismatched\n"); |
264 | goto err; | 263 | return -EINVAL; |
265 | } | 264 | } |
266 | 265 | ||
267 | for (i = 0; i < chip->num_regulator; i++) { | 266 | for (i = 0; i < chip->num_regulator; i++) { |
@@ -278,8 +277,7 @@ static int da9211_regulator_init(struct da9211 *chip) | |||
278 | if (IS_ERR(chip->rdev[i])) { | 277 | if (IS_ERR(chip->rdev[i])) { |
279 | dev_err(chip->dev, | 278 | dev_err(chip->dev, |
280 | "Failed to register DA9211 regulator\n"); | 279 | "Failed to register DA9211 regulator\n"); |
281 | ret = PTR_ERR(chip->rdev[i]); | 280 | return PTR_ERR(chip->rdev[i]); |
282 | goto err_regulator; | ||
283 | } | 281 | } |
284 | 282 | ||
285 | if (chip->chip_irq != 0) { | 283 | if (chip->chip_irq != 0) { |
@@ -288,18 +286,12 @@ static int da9211_regulator_init(struct da9211 *chip) | |||
288 | if (ret < 0) { | 286 | if (ret < 0) { |
289 | dev_err(chip->dev, | 287 | dev_err(chip->dev, |
290 | "Failed to update mask reg: %d\n", ret); | 288 | "Failed to update mask reg: %d\n", ret); |
291 | goto err_regulator; | 289 | return ret; |
292 | } | 290 | } |
293 | } | 291 | } |
294 | } | 292 | } |
295 | 293 | ||
296 | return 0; | 294 | return 0; |
297 | |||
298 | err_regulator: | ||
299 | while (--i >= 0) | ||
300 | devm_regulator_unregister(chip->dev, chip->rdev[i]); | ||
301 | err: | ||
302 | return ret; | ||
303 | } | 295 | } |
304 | /* | 296 | /* |
305 | * I2C driver interface functions | 297 | * I2C driver interface functions |
@@ -353,17 +345,6 @@ static int da9211_i2c_probe(struct i2c_client *i2c, | |||
353 | return ret; | 345 | return ret; |
354 | } | 346 | } |
355 | 347 | ||
356 | static int da9211_i2c_remove(struct i2c_client *i2c) | ||
357 | { | ||
358 | struct da9211 *chip = i2c_get_clientdata(i2c); | ||
359 | int i; | ||
360 | |||
361 | for (i = 0; i < chip->num_regulator; i++) | ||
362 | devm_regulator_unregister(chip->dev, chip->rdev[i]); | ||
363 | |||
364 | return 0; | ||
365 | } | ||
366 | |||
367 | static const struct i2c_device_id da9211_i2c_id[] = { | 348 | static const struct i2c_device_id da9211_i2c_id[] = { |
368 | {"da9211", 0}, | 349 | {"da9211", 0}, |
369 | {}, | 350 | {}, |
@@ -377,7 +358,6 @@ static struct i2c_driver da9211_regulator_driver = { | |||
377 | .owner = THIS_MODULE, | 358 | .owner = THIS_MODULE, |
378 | }, | 359 | }, |
379 | .probe = da9211_i2c_probe, | 360 | .probe = da9211_i2c_probe, |
380 | .remove = da9211_i2c_remove, | ||
381 | .id_table = da9211_i2c_id, | 361 | .id_table = da9211_i2c_id, |
382 | }; | 362 | }; |
383 | 363 | ||