diff options
| author | Manish Badarkhe <badarkhe.manish@gmail.com> | 2014-01-29 09:57:28 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2014-02-11 11:34:32 -0500 |
| commit | 84d0ffbe28e0bdd2f54c91e5162ae42a6c9cf431 (patch) | |
| tree | 00b18210971908e38a3f0238c7b6fd8daa929d84 | |
| parent | e31108cad3deabb1a63111d7aa699ca67753c01f (diff) | |
regulator: fixed: update to devm_* API
Update the code to use devm_* API so that driver core will manage
resources.
Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
| -rw-r--r-- | drivers/regulator/fixed.c | 42 |
1 files changed, 12 insertions, 30 deletions
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c index 5ea64b94341c..3c307d62fd31 100644 --- a/drivers/regulator/fixed.c +++ b/drivers/regulator/fixed.c | |||
| @@ -132,15 +132,15 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) | |||
| 132 | GFP_KERNEL); | 132 | GFP_KERNEL); |
| 133 | if (drvdata == NULL) { | 133 | if (drvdata == NULL) { |
| 134 | dev_err(&pdev->dev, "Failed to allocate device data\n"); | 134 | dev_err(&pdev->dev, "Failed to allocate device data\n"); |
| 135 | ret = -ENOMEM; | 135 | return -ENOMEM; |
| 136 | goto err; | ||
| 137 | } | 136 | } |
| 138 | 137 | ||
| 139 | drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); | 138 | drvdata->desc.name = devm_kstrdup(&pdev->dev, |
| 139 | config->supply_name, | ||
| 140 | GFP_KERNEL); | ||
| 140 | if (drvdata->desc.name == NULL) { | 141 | if (drvdata->desc.name == NULL) { |
| 141 | dev_err(&pdev->dev, "Failed to allocate supply name\n"); | 142 | dev_err(&pdev->dev, "Failed to allocate supply name\n"); |
| 142 | ret = -ENOMEM; | 143 | return -ENOMEM; |
| 143 | goto err; | ||
| 144 | } | 144 | } |
| 145 | drvdata->desc.type = REGULATOR_VOLTAGE; | 145 | drvdata->desc.type = REGULATOR_VOLTAGE; |
| 146 | drvdata->desc.owner = THIS_MODULE; | 146 | drvdata->desc.owner = THIS_MODULE; |
| @@ -149,13 +149,13 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) | |||
| 149 | drvdata->desc.enable_time = config->startup_delay; | 149 | drvdata->desc.enable_time = config->startup_delay; |
| 150 | 150 | ||
| 151 | if (config->input_supply) { | 151 | if (config->input_supply) { |
| 152 | drvdata->desc.supply_name = kstrdup(config->input_supply, | 152 | drvdata->desc.supply_name = devm_kstrdup(&pdev->dev, |
| 153 | GFP_KERNEL); | 153 | config->input_supply, |
| 154 | GFP_KERNEL); | ||
| 154 | if (!drvdata->desc.supply_name) { | 155 | if (!drvdata->desc.supply_name) { |
| 155 | dev_err(&pdev->dev, | 156 | dev_err(&pdev->dev, |
| 156 | "Failed to allocate input supply\n"); | 157 | "Failed to allocate input supply\n"); |
| 157 | ret = -ENOMEM; | 158 | return -ENOMEM; |
| 158 | goto err_name; | ||
| 159 | } | 159 | } |
| 160 | } | 160 | } |
| 161 | 161 | ||
| @@ -186,11 +186,12 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) | |||
| 186 | cfg.driver_data = drvdata; | 186 | cfg.driver_data = drvdata; |
| 187 | cfg.of_node = pdev->dev.of_node; | 187 | cfg.of_node = pdev->dev.of_node; |
| 188 | 188 | ||
| 189 | drvdata->dev = regulator_register(&drvdata->desc, &cfg); | 189 | drvdata->dev = devm_regulator_register(&pdev->dev, &drvdata->desc, |
| 190 | &cfg); | ||
| 190 | if (IS_ERR(drvdata->dev)) { | 191 | if (IS_ERR(drvdata->dev)) { |
| 191 | ret = PTR_ERR(drvdata->dev); | 192 | ret = PTR_ERR(drvdata->dev); |
| 192 | dev_err(&pdev->dev, "Failed to register regulator: %d\n", ret); | 193 | dev_err(&pdev->dev, "Failed to register regulator: %d\n", ret); |
| 193 | goto err_input; | 194 | return ret; |
| 194 | } | 195 | } |
| 195 | 196 | ||
| 196 | platform_set_drvdata(pdev, drvdata); | 197 | platform_set_drvdata(pdev, drvdata); |
| @@ -199,24 +200,6 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) | |||
| 199 | drvdata->desc.fixed_uV); | 200 | drvdata->desc.fixed_uV); |
| 200 | 201 | ||
| 201 | return 0; | 202 | return 0; |
| 202 | |||
| 203 | err_input: | ||
| 204 | kfree(drvdata->desc.supply_name); | ||
| 205 | err_name: | ||
| 206 | kfree(drvdata->desc.name); | ||
| 207 | err: | ||
| 208 | return ret; | ||
| 209 | } | ||
| 210 | |||
| 211 | static int reg_fixed_voltage_remove(struct platform_device *pdev) | ||
| 212 | { | ||
| 213 | struct fixed_voltage_data *drvdata = platform_get_drvdata(pdev); | ||
| 214 | |||
| 215 | regulator_unregister(drvdata->dev); | ||
| 216 | kfree(drvdata->desc.supply_name); | ||
| 217 | kfree(drvdata->desc.name); | ||
| 218 | |||
| 219 | return 0; | ||
| 220 | } | 203 | } |
| 221 | 204 | ||
| 222 | #if defined(CONFIG_OF) | 205 | #if defined(CONFIG_OF) |
| @@ -229,7 +212,6 @@ MODULE_DEVICE_TABLE(of, fixed_of_match); | |||
| 229 | 212 | ||
| 230 | static struct platform_driver regulator_fixed_voltage_driver = { | 213 | static struct platform_driver regulator_fixed_voltage_driver = { |
| 231 | .probe = reg_fixed_voltage_probe, | 214 | .probe = reg_fixed_voltage_probe, |
| 232 | .remove = reg_fixed_voltage_remove, | ||
| 233 | .driver = { | 215 | .driver = { |
| 234 | .name = "reg-fixed-voltage", | 216 | .name = "reg-fixed-voltage", |
| 235 | .owner = THIS_MODULE, | 217 | .owner = THIS_MODULE, |
