diff options
author | Guenter Roeck <linux@roeck-us.net> | 2012-06-02 12:58:04 -0400 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2012-09-24 00:08:31 -0400 |
commit | 7b52eefe1637cffd449abdb5ce67e7dfbda8b2c1 (patch) | |
tree | 49fe81609572d4f6ee7295903b583bddcbd8324f /drivers/hwmon/emc1403.c | |
parent | 3aa9d1df7e7abc91fb11bff41f389f3fc7b39eee (diff) |
hwmon: (emc1403) 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/emc1403.c')
-rw-r--r-- | drivers/hwmon/emc1403.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c index 149dcb0e148f..68ab94bde3f1 100644 --- a/drivers/hwmon/emc1403.c +++ b/drivers/hwmon/emc1403.c | |||
@@ -306,11 +306,10 @@ static int emc1403_probe(struct i2c_client *client, | |||
306 | int res; | 306 | int res; |
307 | struct thermal_data *data; | 307 | struct thermal_data *data; |
308 | 308 | ||
309 | data = kzalloc(sizeof(struct thermal_data), GFP_KERNEL); | 309 | data = devm_kzalloc(&client->dev, sizeof(struct thermal_data), |
310 | if (data == NULL) { | 310 | GFP_KERNEL); |
311 | dev_warn(&client->dev, "out of memory"); | 311 | if (data == NULL) |
312 | return -ENOMEM; | 312 | return -ENOMEM; |
313 | } | ||
314 | 313 | ||
315 | i2c_set_clientdata(client, data); | 314 | i2c_set_clientdata(client, data); |
316 | mutex_init(&data->mutex); | 315 | mutex_init(&data->mutex); |
@@ -319,21 +318,19 @@ static int emc1403_probe(struct i2c_client *client, | |||
319 | res = sysfs_create_group(&client->dev.kobj, &m_thermal_gr); | 318 | res = sysfs_create_group(&client->dev.kobj, &m_thermal_gr); |
320 | if (res) { | 319 | if (res) { |
321 | dev_warn(&client->dev, "create group failed\n"); | 320 | dev_warn(&client->dev, "create group failed\n"); |
322 | goto thermal_error1; | 321 | return res; |
323 | } | 322 | } |
324 | data->hwmon_dev = hwmon_device_register(&client->dev); | 323 | data->hwmon_dev = hwmon_device_register(&client->dev); |
325 | if (IS_ERR(data->hwmon_dev)) { | 324 | if (IS_ERR(data->hwmon_dev)) { |
326 | res = PTR_ERR(data->hwmon_dev); | 325 | res = PTR_ERR(data->hwmon_dev); |
327 | dev_warn(&client->dev, "register hwmon dev failed\n"); | 326 | dev_warn(&client->dev, "register hwmon dev failed\n"); |
328 | goto thermal_error2; | 327 | goto thermal_error; |
329 | } | 328 | } |
330 | dev_info(&client->dev, "EMC1403 Thermal chip found\n"); | 329 | dev_info(&client->dev, "EMC1403 Thermal chip found\n"); |
331 | return res; | 330 | return 0; |
332 | 331 | ||
333 | thermal_error2: | 332 | thermal_error: |
334 | sysfs_remove_group(&client->dev.kobj, &m_thermal_gr); | 333 | sysfs_remove_group(&client->dev.kobj, &m_thermal_gr); |
335 | thermal_error1: | ||
336 | kfree(data); | ||
337 | return res; | 334 | return res; |
338 | } | 335 | } |
339 | 336 | ||
@@ -343,7 +340,6 @@ static int emc1403_remove(struct i2c_client *client) | |||
343 | 340 | ||
344 | hwmon_device_unregister(data->hwmon_dev); | 341 | hwmon_device_unregister(data->hwmon_dev); |
345 | sysfs_remove_group(&client->dev.kobj, &m_thermal_gr); | 342 | sysfs_remove_group(&client->dev.kobj, &m_thermal_gr); |
346 | kfree(data); | ||
347 | return 0; | 343 | return 0; |
348 | } | 344 | } |
349 | 345 | ||