diff options
author | Guenter Roeck <linux@roeck-us.net> | 2012-06-02 12:57:58 -0400 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2012-09-24 00:08:29 -0400 |
commit | d5282926aa89587d78bbfeb6655500b1a72de15c (patch) | |
tree | 1322ed9247b4fe4e19668b10ee1bcd1a5c1223fa /drivers/hwmon/ad7418.c | |
parent | 0fee6591b7f82bb293de7949297fc8db59b31f0d (diff) |
hwmon: (ad7418) Convert to use devm_ functions
Convert to use devm_ functions to reduce code size and simplify the code.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/ad7418.c')
-rw-r--r-- | drivers/hwmon/ad7418.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/hwmon/ad7418.c b/drivers/hwmon/ad7418.c index a50a6bef16c4..57d4a6295675 100644 --- a/drivers/hwmon/ad7418.c +++ b/drivers/hwmon/ad7418.c | |||
@@ -227,16 +227,13 @@ static int ad7418_probe(struct i2c_client *client, | |||
227 | int err; | 227 | int err; |
228 | 228 | ||
229 | if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA | | 229 | if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA | |
230 | I2C_FUNC_SMBUS_WORD_DATA)) { | 230 | I2C_FUNC_SMBUS_WORD_DATA)) |
231 | err = -EOPNOTSUPP; | 231 | return -EOPNOTSUPP; |
232 | goto exit; | ||
233 | } | ||
234 | 232 | ||
235 | data = kzalloc(sizeof(struct ad7418_data), GFP_KERNEL); | 233 | data = devm_kzalloc(&client->dev, sizeof(struct ad7418_data), |
236 | if (!data) { | 234 | GFP_KERNEL); |
237 | err = -ENOMEM; | 235 | if (!data) |
238 | goto exit; | 236 | return -ENOMEM; |
239 | } | ||
240 | 237 | ||
241 | i2c_set_clientdata(client, data); | 238 | i2c_set_clientdata(client, data); |
242 | 239 | ||
@@ -268,7 +265,7 @@ static int ad7418_probe(struct i2c_client *client, | |||
268 | /* Register sysfs hooks */ | 265 | /* Register sysfs hooks */ |
269 | err = sysfs_create_group(&client->dev.kobj, &data->attrs); | 266 | err = sysfs_create_group(&client->dev.kobj, &data->attrs); |
270 | if (err) | 267 | if (err) |
271 | goto exit_free; | 268 | return err; |
272 | 269 | ||
273 | data->hwmon_dev = hwmon_device_register(&client->dev); | 270 | data->hwmon_dev = hwmon_device_register(&client->dev); |
274 | if (IS_ERR(data->hwmon_dev)) { | 271 | if (IS_ERR(data->hwmon_dev)) { |
@@ -280,9 +277,6 @@ static int ad7418_probe(struct i2c_client *client, | |||
280 | 277 | ||
281 | exit_remove: | 278 | exit_remove: |
282 | sysfs_remove_group(&client->dev.kobj, &data->attrs); | 279 | sysfs_remove_group(&client->dev.kobj, &data->attrs); |
283 | exit_free: | ||
284 | kfree(data); | ||
285 | exit: | ||
286 | return err; | 280 | return err; |
287 | } | 281 | } |
288 | 282 | ||
@@ -291,7 +285,6 @@ static int ad7418_remove(struct i2c_client *client) | |||
291 | struct ad7418_data *data = i2c_get_clientdata(client); | 285 | struct ad7418_data *data = i2c_get_clientdata(client); |
292 | hwmon_device_unregister(data->hwmon_dev); | 286 | hwmon_device_unregister(data->hwmon_dev); |
293 | sysfs_remove_group(&client->dev.kobj, &data->attrs); | 287 | sysfs_remove_group(&client->dev.kobj, &data->attrs); |
294 | kfree(data); | ||
295 | return 0; | 288 | return 0; |
296 | } | 289 | } |
297 | 290 | ||