Commit 61d4d17ea9dc3624eeb2b235059c9c30578b81ae

Authored by Guenter Roeck
1 parent ed2e073b13

hwmon: (pc87360) Convert to use devm_ functions

Convert to use devm_ functions to reduce code size and simplify the code.

Cc: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Jim Cromie <jim.cromie@gmail.com>

Showing 1 changed file with 13 additions and 28 deletions Side-by-side Diff

drivers/hwmon/pc87360.c
... ... @@ -1230,7 +1230,7 @@
1230 1230 int use_thermistors = 0;
1231 1231 struct device *dev = &pdev->dev;
1232 1232  
1233   - data = kzalloc(sizeof(struct pc87360_data), GFP_KERNEL);
  1233 + data = devm_kzalloc(dev, sizeof(struct pc87360_data), GFP_KERNEL);
1234 1234 if (!data)
1235 1235 return -ENOMEM;
1236 1236  
1237 1237  
... ... @@ -1269,15 +1269,12 @@
1269 1269 for (i = 0; i < LDNI_MAX; i++) {
1270 1270 data->address[i] = extra_isa[i];
1271 1271 if (data->address[i]
1272   - && !request_region(extra_isa[i], PC87360_EXTENT,
1273   - pc87360_driver.driver.name)) {
  1272 + && !devm_request_region(dev, extra_isa[i], PC87360_EXTENT,
  1273 + pc87360_driver.driver.name)) {
1274 1274 dev_err(dev, "Region 0x%x-0x%x already "
1275 1275 "in use!\n", extra_isa[i],
1276 1276 extra_isa[i]+PC87360_EXTENT-1);
1277   - for (i--; i >= 0; i--)
1278   - release_region(extra_isa[i], PC87360_EXTENT);
1279   - err = -EBUSY;
1280   - goto ERROR1;
  1277 + return -EBUSY;
1281 1278 }
1282 1279 }
1283 1280  
1284 1281  
... ... @@ -1325,13 +1322,13 @@
1325 1322 if (data->innr) {
1326 1323 err = sysfs_create_group(&dev->kobj, &pc8736x_vin_group);
1327 1324 if (err)
1328   - goto ERROR3;
  1325 + goto error;
1329 1326 }
1330 1327  
1331 1328 if (data->innr == 14) {
1332 1329 err = sysfs_create_group(&dev->kobj, &pc8736x_therm_group);
1333 1330 if (err)
1334   - goto ERROR3;
  1331 + goto error;
1335 1332 }
1336 1333  
1337 1334 /* create device attr-files for varying sysfs groups */
1338 1335  
... ... @@ -1341,11 +1338,11 @@
1341 1338 err = sysfs_create_group(&dev->kobj,
1342 1339 &pc8736x_temp_attr_group[i]);
1343 1340 if (err)
1344   - goto ERROR3;
  1341 + goto error;
1345 1342 }
1346 1343 err = device_create_file(dev, &dev_attr_alarms_temp);
1347 1344 if (err)
1348   - goto ERROR3;
  1345 + goto error;
1349 1346 }
1350 1347  
1351 1348 for (i = 0; i < data->fannr; i++) {
1352 1349  
1353 1350  
1354 1351  
1355 1352  
1356 1353  
1357 1354  
1358 1355  
... ... @@ -1353,49 +1350,37 @@
1353 1350 err = sysfs_create_group(&dev->kobj,
1354 1351 &pc8736x_fan_attr_group[i]);
1355 1352 if (err)
1356   - goto ERROR3;
  1353 + goto error;
1357 1354 }
1358 1355 if (FAN_CONFIG_CONTROL(data->fan_conf, i)) {
1359 1356 err = device_create_file(dev, &pwm[i].dev_attr);
1360 1357 if (err)
1361   - goto ERROR3;
  1358 + goto error;
1362 1359 }
1363 1360 }
1364 1361  
1365 1362 err = device_create_file(dev, &dev_attr_name);
1366 1363 if (err)
1367   - goto ERROR3;
  1364 + goto error;
1368 1365  
1369 1366 data->hwmon_dev = hwmon_device_register(dev);
1370 1367 if (IS_ERR(data->hwmon_dev)) {
1371 1368 err = PTR_ERR(data->hwmon_dev);
1372   - goto ERROR3;
  1369 + goto error;
1373 1370 }
1374 1371 return 0;
1375 1372  
1376   -ERROR3:
  1373 +error:
1377 1374 pc87360_remove_files(dev);
1378   - for (i = 0; i < 3; i++) {
1379   - if (data->address[i])
1380   - release_region(data->address[i], PC87360_EXTENT);
1381   - }
1382   -ERROR1:
1383   - kfree(data);
1384 1375 return err;
1385 1376 }
1386 1377  
1387 1378 static int __devexit pc87360_remove(struct platform_device *pdev)
1388 1379 {
1389 1380 struct pc87360_data *data = platform_get_drvdata(pdev);
1390   - int i;
1391 1381  
1392 1382 hwmon_device_unregister(data->hwmon_dev);
1393 1383 pc87360_remove_files(&pdev->dev);
1394   - for (i = 0; i < 3; i++) {
1395   - if (data->address[i])
1396   - release_region(data->address[i], PC87360_EXTENT);
1397   - }
1398   - kfree(data);
1399 1384  
1400 1385 return 0;
1401 1386 }