aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Estevam <fabio.estevam@freescale.com>2014-01-06 07:13:15 -0500
committerMark Brown <broonie@linaro.org>2014-01-06 07:20:19 -0500
commitf2b269b83de35a022a8df5d0133f64021f08592c (patch)
treebb76330673dddf54bb0dc1195bca876c80e51dfa
parent89705b9e35026ad75a8ba940d641aa2be7a16611 (diff)
regulator: anatop-regulator: Remove unneeded kstrdup()
We can simply pass the regulator name via of_get_property() instead of making a copy via kstrdup(). This leads to some code simplification. Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/regulator/anatop-regulator.c34
1 files changed, 8 insertions, 26 deletions
diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c
index a0041447ef00..3d4997aede1d 100644
--- a/drivers/regulator/anatop-regulator.c
+++ b/drivers/regulator/anatop-regulator.c
@@ -122,8 +122,7 @@ static int anatop_regulator_probe(struct platform_device *pdev)
122 if (!sreg) 122 if (!sreg)
123 return -ENOMEM; 123 return -ENOMEM;
124 sreg->initdata = initdata; 124 sreg->initdata = initdata;
125 sreg->name = kstrdup(of_get_property(np, "regulator-name", NULL), 125 sreg->name = of_get_property(np, "regulator-name", NULL);
126 GFP_KERNEL);
127 rdesc = &sreg->rdesc; 126 rdesc = &sreg->rdesc;
128 memset(rdesc, 0, sizeof(*rdesc)); 127 memset(rdesc, 0, sizeof(*rdesc));
129 rdesc->name = sreg->name; 128 rdesc->name = sreg->name;
@@ -143,37 +142,37 @@ static int anatop_regulator_probe(struct platform_device *pdev)
143 &sreg->control_reg); 142 &sreg->control_reg);
144 if (ret) { 143 if (ret) {
145 dev_err(dev, "no anatop-reg-offset property set\n"); 144 dev_err(dev, "no anatop-reg-offset property set\n");
146 goto anatop_probe_end; 145 return ret;
147 } 146 }
148 ret = of_property_read_u32(np, "anatop-vol-bit-width", 147 ret = of_property_read_u32(np, "anatop-vol-bit-width",
149 &sreg->vol_bit_width); 148 &sreg->vol_bit_width);
150 if (ret) { 149 if (ret) {
151 dev_err(dev, "no anatop-vol-bit-width property set\n"); 150 dev_err(dev, "no anatop-vol-bit-width property set\n");
152 goto anatop_probe_end; 151 return ret;
153 } 152 }
154 ret = of_property_read_u32(np, "anatop-vol-bit-shift", 153 ret = of_property_read_u32(np, "anatop-vol-bit-shift",
155 &sreg->vol_bit_shift); 154 &sreg->vol_bit_shift);
156 if (ret) { 155 if (ret) {
157 dev_err(dev, "no anatop-vol-bit-shift property set\n"); 156 dev_err(dev, "no anatop-vol-bit-shift property set\n");
158 goto anatop_probe_end; 157 return ret;
159 } 158 }
160 ret = of_property_read_u32(np, "anatop-min-bit-val", 159 ret = of_property_read_u32(np, "anatop-min-bit-val",
161 &sreg->min_bit_val); 160 &sreg->min_bit_val);
162 if (ret) { 161 if (ret) {
163 dev_err(dev, "no anatop-min-bit-val property set\n"); 162 dev_err(dev, "no anatop-min-bit-val property set\n");
164 goto anatop_probe_end; 163 return ret;
165 } 164 }
166 ret = of_property_read_u32(np, "anatop-min-voltage", 165 ret = of_property_read_u32(np, "anatop-min-voltage",
167 &sreg->min_voltage); 166 &sreg->min_voltage);
168 if (ret) { 167 if (ret) {
169 dev_err(dev, "no anatop-min-voltage property set\n"); 168 dev_err(dev, "no anatop-min-voltage property set\n");
170 goto anatop_probe_end; 169 return ret;
171 } 170 }
172 ret = of_property_read_u32(np, "anatop-max-voltage", 171 ret = of_property_read_u32(np, "anatop-max-voltage",
173 &sreg->max_voltage); 172 &sreg->max_voltage);
174 if (ret) { 173 if (ret) {
175 dev_err(dev, "no anatop-max-voltage property set\n"); 174 dev_err(dev, "no anatop-max-voltage property set\n");
176 goto anatop_probe_end; 175 return ret;
177 } 176 }
178 177
179 /* read LDO ramp up setting, only for core reg */ 178 /* read LDO ramp up setting, only for core reg */
@@ -204,27 +203,11 @@ static int anatop_regulator_probe(struct platform_device *pdev)
204 if (IS_ERR(rdev)) { 203 if (IS_ERR(rdev)) {
205 dev_err(dev, "failed to register %s\n", 204 dev_err(dev, "failed to register %s\n",
206 rdesc->name); 205 rdesc->name);
207 ret = PTR_ERR(rdev); 206 return PTR_ERR(rdev);
208 goto anatop_probe_end;
209 } 207 }
210 208
211 platform_set_drvdata(pdev, rdev); 209 platform_set_drvdata(pdev, rdev);
212 210
213anatop_probe_end:
214 if (ret)
215 kfree(sreg->name);
216
217 return ret;
218}
219
220static int anatop_regulator_remove(struct platform_device *pdev)
221{
222 struct regulator_dev *rdev = platform_get_drvdata(pdev);
223 struct anatop_regulator *sreg = rdev_get_drvdata(rdev);
224 const char *name = sreg->name;
225
226 kfree(name);
227
228 return 0; 211 return 0;
229} 212}
230 213
@@ -240,7 +223,6 @@ static struct platform_driver anatop_regulator_driver = {
240 .of_match_table = of_anatop_regulator_match_tbl, 223 .of_match_table = of_anatop_regulator_match_tbl,
241 }, 224 },
242 .probe = anatop_regulator_probe, 225 .probe = anatop_regulator_probe,
243 .remove = anatop_regulator_remove,
244}; 226};
245 227
246static int __init anatop_regulator_init(void) 228static int __init anatop_regulator_init(void)