aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/lm85.c
diff options
context:
space:
mode:
authorGuenter Roeck <guenter.roeck@ericsson.com>2011-02-25 11:26:47 -0500
committerGuenter Roeck <guenter.roeck@ericsson.com>2011-03-15 01:36:25 -0400
commitbc6db2b5ce79b1d5c4ba2763948fa6e731d60295 (patch)
treed243af5c11d9d8e79d8631cb0b0fef9ddabf63d3 /drivers/hwmon/lm85.c
parentde24880586b28f1dc4cf91f5db962f0083baab2a (diff)
hwmon: (lm85) Use function to remove sysfs attribute files
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com> Acked-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon/lm85.c')
-rw-r--r--drivers/hwmon/lm85.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c
index 22536761a7fd..590226a7c5a2 100644
--- a/drivers/hwmon/lm85.c
+++ b/drivers/hwmon/lm85.c
@@ -1281,6 +1281,15 @@ static int lm85_detect(struct i2c_client *client, struct i2c_board_info *info)
1281 return 0; 1281 return 0;
1282} 1282}
1283 1283
1284static void lm85_remove_files(struct i2c_client *client, struct lm85_data *data)
1285{
1286 sysfs_remove_group(&client->dev.kobj, &lm85_group);
1287 if (!data->has_vid5)
1288 sysfs_remove_group(&client->dev.kobj, &lm85_group_in4);
1289 if (data->type == emc6d100)
1290 sysfs_remove_group(&client->dev.kobj, &lm85_group_in567);
1291}
1292
1284static int lm85_probe(struct i2c_client *client, 1293static int lm85_probe(struct i2c_client *client,
1285 const struct i2c_device_id *id) 1294 const struct i2c_device_id *id)
1286{ 1295{
@@ -1349,10 +1358,7 @@ static int lm85_probe(struct i2c_client *client,
1349 1358
1350 /* Error out and cleanup code */ 1359 /* Error out and cleanup code */
1351 err_remove_files: 1360 err_remove_files:
1352 sysfs_remove_group(&client->dev.kobj, &lm85_group); 1361 lm85_remove_files(client, data);
1353 sysfs_remove_group(&client->dev.kobj, &lm85_group_in4);
1354 if (data->type == emc6d100)
1355 sysfs_remove_group(&client->dev.kobj, &lm85_group_in567);
1356 err_kfree: 1362 err_kfree:
1357 kfree(data); 1363 kfree(data);
1358 return err; 1364 return err;
@@ -1362,10 +1368,7 @@ static int lm85_remove(struct i2c_client *client)
1362{ 1368{
1363 struct lm85_data *data = i2c_get_clientdata(client); 1369 struct lm85_data *data = i2c_get_clientdata(client);
1364 hwmon_device_unregister(data->hwmon_dev); 1370 hwmon_device_unregister(data->hwmon_dev);
1365 sysfs_remove_group(&client->dev.kobj, &lm85_group); 1371 lm85_remove_files(client, data);
1366 sysfs_remove_group(&client->dev.kobj, &lm85_group_in4);
1367 if (data->type == emc6d100)
1368 sysfs_remove_group(&client->dev.kobj, &lm85_group_in567);
1369 kfree(data); 1372 kfree(data);
1370 return 0; 1373 return 0;
1371} 1374}