Commit 61d4d17ea9dc3624eeb2b235059c9c30578b81ae
1 parent
ed2e073b13
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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 | } |