aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/ad7418.c
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2012-06-02 12:57:58 -0400
committerGuenter Roeck <linux@roeck-us.net>2012-09-24 00:08:29 -0400
commitd5282926aa89587d78bbfeb6655500b1a72de15c (patch)
tree1322ed9247b4fe4e19668b10ee1bcd1a5c1223fa /drivers/hwmon/ad7418.c
parent0fee6591b7f82bb293de7949297fc8db59b31f0d (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.c21
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
281exit_remove: 278exit_remove:
282 sysfs_remove_group(&client->dev.kobj, &data->attrs); 279 sysfs_remove_group(&client->dev.kobj, &data->attrs);
283exit_free:
284 kfree(data);
285exit:
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