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

Configure Feed

Select the types of activity you want to include in your feed.

regulator: vexpress: Get rid of struct vexpress_regulator

The *regdev and *regmap can be replaced by local variables in probe().
Only desc of struct vexpress_regulator is really need, so just use
struct regulator_desc directly and remove struct vexpress_regulator.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Axel Lin and committed by
Mark Brown
eeb1b235 fb9bf5c8

+22 -31
+22 -31
drivers/regulator/vexpress-regulator.c
··· 23 23 #include <linux/regulator/of_regulator.h> 24 24 #include <linux/vexpress.h> 25 25 26 - struct vexpress_regulator { 27 - struct regulator_desc desc; 28 - struct regulator_dev *regdev; 29 - struct regmap *regmap; 30 - }; 31 - 32 26 static int vexpress_regulator_get_voltage(struct regulator_dev *regdev) 33 27 { 34 - struct vexpress_regulator *reg = rdev_get_drvdata(regdev); 35 - u32 uV; 36 - int err = regmap_read(reg->regmap, 0, &uV); 28 + unsigned int uV; 29 + int err = regmap_read(regdev->regmap, 0, &uV); 37 30 38 31 return err ? err : uV; 39 32 } ··· 34 41 static int vexpress_regulator_set_voltage(struct regulator_dev *regdev, 35 42 int min_uV, int max_uV, unsigned *selector) 36 43 { 37 - struct vexpress_regulator *reg = rdev_get_drvdata(regdev); 38 - 39 - return regmap_write(reg->regmap, 0, min_uV); 44 + return regmap_write(regdev->regmap, 0, min_uV); 40 45 } 41 46 42 47 static const struct regulator_ops vexpress_regulator_ops_ro = { ··· 48 57 49 58 static int vexpress_regulator_probe(struct platform_device *pdev) 50 59 { 51 - struct vexpress_regulator *reg; 60 + struct regulator_desc *desc; 52 61 struct regulator_init_data *init_data; 53 62 struct regulator_config config = { }; 63 + struct regulator_dev *rdev; 64 + struct regmap *regmap; 54 65 55 - reg = devm_kzalloc(&pdev->dev, sizeof(*reg), GFP_KERNEL); 56 - if (!reg) 66 + desc = devm_kzalloc(&pdev->dev, sizeof(*desc), GFP_KERNEL); 67 + if (!desc) 57 68 return -ENOMEM; 58 69 59 - reg->regmap = devm_regmap_init_vexpress_config(&pdev->dev); 60 - if (IS_ERR(reg->regmap)) 61 - return PTR_ERR(reg->regmap); 70 + regmap = devm_regmap_init_vexpress_config(&pdev->dev); 71 + if (IS_ERR(regmap)) 72 + return PTR_ERR(regmap); 62 73 63 - reg->desc.name = dev_name(&pdev->dev); 64 - reg->desc.type = REGULATOR_VOLTAGE; 65 - reg->desc.owner = THIS_MODULE; 66 - reg->desc.continuous_voltage_range = true; 74 + desc->name = dev_name(&pdev->dev); 75 + desc->type = REGULATOR_VOLTAGE; 76 + desc->owner = THIS_MODULE; 77 + desc->continuous_voltage_range = true; 67 78 68 79 init_data = of_get_regulator_init_data(&pdev->dev, pdev->dev.of_node, 69 - &reg->desc); 80 + desc); 70 81 if (!init_data) 71 82 return -EINVAL; 72 83 73 84 init_data->constraints.apply_uV = 0; 74 85 if (init_data->constraints.min_uV && init_data->constraints.max_uV) 75 - reg->desc.ops = &vexpress_regulator_ops; 86 + desc->ops = &vexpress_regulator_ops; 76 87 else 77 - reg->desc.ops = &vexpress_regulator_ops_ro; 88 + desc->ops = &vexpress_regulator_ops_ro; 78 89 90 + config.regmap = regmap; 79 91 config.dev = &pdev->dev; 80 92 config.init_data = init_data; 81 - config.driver_data = reg; 82 93 config.of_node = pdev->dev.of_node; 83 94 84 - reg->regdev = devm_regulator_register(&pdev->dev, &reg->desc, &config); 85 - if (IS_ERR(reg->regdev)) 86 - return PTR_ERR(reg->regdev); 87 - 88 - platform_set_drvdata(pdev, reg); 95 + rdev = devm_regulator_register(&pdev->dev, desc, &config); 96 + if (IS_ERR(rdev)) 97 + return PTR_ERR(rdev); 89 98 90 99 return 0; 91 100 }