Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: mcp16502: Remove unneeded fields from struct mcp16502

At the context with rdev, we can use rdev->regmap instead of mcp->rmap.
The *rdev[NUM_REGULATORS] is not required because current code uses
devm_regulator_register() so we don't need to store *rdev for clean up
paths.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Axel Lin and committed by
Mark Brown
4cf46953 ab54a4d7

+16 -24
+16 -24
drivers/regulator/mcp16502.c
··· 119 119 * @lpm: LPM GPIO descriptor 120 120 */ 121 121 struct mcp16502 { 122 - struct regulator_dev *rdev[NUM_REGULATORS]; 123 - struct regmap *rmap; 124 122 struct gpio_desc *lpm; 125 123 }; 126 124 ··· 177 179 { 178 180 unsigned int val; 179 181 int ret, reg; 180 - struct mcp16502 *mcp = rdev_get_drvdata(rdev); 181 182 182 183 reg = mcp16502_get_reg(rdev, MCP16502_OPMODE_ACTIVE); 183 184 if (reg < 0) 184 185 return reg; 185 186 186 - ret = regmap_read(mcp->rmap, reg, &val); 187 + ret = regmap_read(rdev->regmap, reg, &val); 187 188 if (ret) 188 189 return ret; 189 190 ··· 208 211 { 209 212 int val; 210 213 int reg; 211 - struct mcp16502 *mcp = rdev_get_drvdata(rdev); 212 214 213 215 reg = mcp16502_get_reg(rdev, op_mode); 214 216 if (reg < 0) ··· 224 228 return -EINVAL; 225 229 } 226 230 227 - reg = regmap_update_bits(mcp->rmap, reg, MCP16502_MODE, val); 231 + reg = regmap_update_bits(rdev->regmap, reg, MCP16502_MODE, val); 228 232 return reg; 229 233 } 230 234 ··· 243 247 { 244 248 int ret; 245 249 unsigned int val; 246 - struct mcp16502 *mcp = rdev_get_drvdata(rdev); 247 250 248 - ret = regmap_read(mcp->rmap, MCP16502_STAT_BASE(rdev_get_id(rdev)), 251 + ret = regmap_read(rdev->regmap, MCP16502_STAT_BASE(rdev_get_id(rdev)), 249 252 &val); 250 253 if (ret) 251 254 return ret; ··· 285 290 */ 286 291 static int mcp16502_set_suspend_voltage(struct regulator_dev *rdev, int uV) 287 292 { 288 - struct mcp16502 *mcp = rdev_get_drvdata(rdev); 289 293 int sel = regulator_map_voltage_linear_range(rdev, uV, uV); 290 294 int reg = mcp16502_suspend_get_target_reg(rdev); 291 295 ··· 294 300 if (reg < 0) 295 301 return reg; 296 302 297 - return regmap_update_bits(mcp->rmap, reg, MCP16502_VSEL, sel); 303 + return regmap_update_bits(rdev->regmap, reg, MCP16502_VSEL, sel); 298 304 } 299 305 300 306 /* ··· 322 328 */ 323 329 static int mcp16502_set_suspend_enable(struct regulator_dev *rdev) 324 330 { 325 - struct mcp16502 *mcp = rdev_get_drvdata(rdev); 326 331 int reg = mcp16502_suspend_get_target_reg(rdev); 327 332 328 333 if (reg < 0) 329 334 return reg; 330 335 331 - return regmap_update_bits(mcp->rmap, reg, MCP16502_EN, MCP16502_EN); 336 + return regmap_update_bits(rdev->regmap, reg, MCP16502_EN, MCP16502_EN); 332 337 } 333 338 334 339 /* ··· 335 342 */ 336 343 static int mcp16502_set_suspend_disable(struct regulator_dev *rdev) 337 344 { 338 - struct mcp16502 *mcp = rdev_get_drvdata(rdev); 339 345 int reg = mcp16502_suspend_get_target_reg(rdev); 340 346 341 347 if (reg < 0) 342 348 return reg; 343 349 344 - return regmap_update_bits(mcp->rmap, reg, MCP16502_EN, 0); 350 + return regmap_update_bits(rdev->regmap, reg, MCP16502_EN, 0); 345 351 } 346 352 #endif /* CONFIG_SUSPEND */ 347 353 ··· 433 441 static int setup_regulators(struct mcp16502 *mcp, struct device *dev, 434 442 struct regulator_config config) 435 443 { 444 + struct regulator_dev *rdev; 436 445 int i; 437 446 438 447 for (i = 0; i < NUM_REGULATORS; i++) { 439 - mcp->rdev[i] = devm_regulator_register(dev, 440 - &mcp16502_desc[i], 441 - &config); 442 - if (IS_ERR(mcp->rdev[i])) { 448 + rdev = devm_regulator_register(dev, &mcp16502_desc[i], &config); 449 + if (IS_ERR(rdev)) { 443 450 dev_err(dev, 444 451 "failed to register %s regulator %ld\n", 445 - mcp16502_desc[i].name, PTR_ERR(mcp->rdev[i])); 446 - return PTR_ERR(mcp->rdev[i]); 452 + mcp16502_desc[i].name, PTR_ERR(rdev)); 453 + return PTR_ERR(rdev); 447 454 } 448 455 } 449 456 ··· 455 464 struct regulator_config config = { }; 456 465 struct device *dev; 457 466 struct mcp16502 *mcp; 467 + struct regmap *rmap; 458 468 int ret = 0; 459 469 460 470 dev = &client->dev; ··· 465 473 if (!mcp) 466 474 return -ENOMEM; 467 475 468 - mcp->rmap = devm_regmap_init_i2c(client, &mcp16502_regmap_config); 469 - if (IS_ERR(mcp->rmap)) { 470 - ret = PTR_ERR(mcp->rmap); 476 + rmap = devm_regmap_init_i2c(client, &mcp16502_regmap_config); 477 + if (IS_ERR(rmap)) { 478 + ret = PTR_ERR(rmap); 471 479 dev_err(dev, "regmap init failed: %d\n", ret); 472 480 return ret; 473 481 } 474 482 475 483 i2c_set_clientdata(client, mcp); 476 - config.regmap = mcp->rmap; 484 + config.regmap = rmap; 477 485 config.driver_data = mcp; 478 486 479 487 mcp->lpm = devm_gpiod_get(dev, "lpm", GPIOD_OUT_LOW);