aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2012-06-02 14:20:23 -0400
committerGuenter Roeck <linux@roeck-us.net>2012-07-22 00:48:42 -0400
commit5d224ade31f0a08c0a0eef9e74a6187c0b8747b4 (patch)
treec541494d9d9a4429f1c05357f8e8f51bf1e57bc9
parent5e0c876920e6cc5cd074f1a5a8d4c30783f9baf9 (diff)
hwmon: (sis5595) 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> Acked-by: Jean Delvare <khali@linux-fr.org>
-rw-r--r--drivers/hwmon/sis5595.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/drivers/hwmon/sis5595.c b/drivers/hwmon/sis5595.c
index 6c4d8eb9b7ca..8275f0e14eb7 100644
--- a/drivers/hwmon/sis5595.c
+++ b/drivers/hwmon/sis5595.c
@@ -593,17 +593,14 @@ static int __devinit sis5595_probe(struct platform_device *pdev)
593 593
594 /* Reserve the ISA region */ 594 /* Reserve the ISA region */
595 res = platform_get_resource(pdev, IORESOURCE_IO, 0); 595 res = platform_get_resource(pdev, IORESOURCE_IO, 0);
596 if (!request_region(res->start, SIS5595_EXTENT, 596 if (!devm_request_region(&pdev->dev, res->start, SIS5595_EXTENT,
597 sis5595_driver.driver.name)) { 597 sis5595_driver.driver.name))
598 err = -EBUSY; 598 return -EBUSY;
599 goto exit;
600 }
601 599
602 data = kzalloc(sizeof(struct sis5595_data), GFP_KERNEL); 600 data = devm_kzalloc(&pdev->dev, sizeof(struct sis5595_data),
603 if (!data) { 601 GFP_KERNEL);
604 err = -ENOMEM; 602 if (!data)
605 goto exit_release; 603 return -ENOMEM;
606 }
607 604
608 mutex_init(&data->lock); 605 mutex_init(&data->lock);
609 mutex_init(&data->update_lock); 606 mutex_init(&data->update_lock);
@@ -636,7 +633,7 @@ static int __devinit sis5595_probe(struct platform_device *pdev)
636 /* Register sysfs hooks */ 633 /* Register sysfs hooks */
637 err = sysfs_create_group(&pdev->dev.kobj, &sis5595_group); 634 err = sysfs_create_group(&pdev->dev.kobj, &sis5595_group);
638 if (err) 635 if (err)
639 goto exit_free; 636 return err;
640 if (data->maxins == 4) { 637 if (data->maxins == 4) {
641 err = sysfs_create_group(&pdev->dev.kobj, &sis5595_group_in4); 638 err = sysfs_create_group(&pdev->dev.kobj, &sis5595_group_in4);
642 if (err) 639 if (err)
@@ -659,11 +656,6 @@ exit_remove_files:
659 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group); 656 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group);
660 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_in4); 657 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_in4);
661 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_temp1); 658 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_temp1);
662exit_free:
663 kfree(data);
664exit_release:
665 release_region(res->start, SIS5595_EXTENT);
666exit:
667 return err; 659 return err;
668} 660}
669 661
@@ -676,10 +668,6 @@ static int __devexit sis5595_remove(struct platform_device *pdev)
676 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_in4); 668 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_in4);
677 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_temp1); 669 sysfs_remove_group(&pdev->dev.kobj, &sis5595_group_temp1);
678 670
679 release_region(data->addr, SIS5595_EXTENT);
680 platform_set_drvdata(pdev, NULL);
681 kfree(data);
682
683 return 0; 671 return 0;
684} 672}
685 673