diff options
author | Fabio Estevam <fabio.estevam@freescale.com> | 2014-01-06 07:13:15 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-01-06 07:20:19 -0500 |
commit | f2b269b83de35a022a8df5d0133f64021f08592c (patch) | |
tree | bb76330673dddf54bb0dc1195bca876c80e51dfa | |
parent | 89705b9e35026ad75a8ba940d641aa2be7a16611 (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.c | 34 |
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 | ||
213 | anatop_probe_end: | ||
214 | if (ret) | ||
215 | kfree(sreg->name); | ||
216 | |||
217 | return ret; | ||
218 | } | ||
219 | |||
220 | static 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 | ||
246 | static int __init anatop_regulator_init(void) | 228 | static int __init anatop_regulator_init(void) |