hwmon: (gpio-fan) Convert to devm_hwmon_device_register_with_groups
authorAxel Lin <axel.lin@ingics.com>
Sat, 14 Jun 2014 06:50:50 +0000 (14:50 +0800)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 4 Aug 2014 14:01:33 +0000 (07:01 -0700)
This simplifies the code a bit and also ensures the attribute groups are
properly removed from sysfs when unload the module.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/gpio-fan.c

index 2566c43dd1e963ec0d43f4ccefc49ca16506a77b..a43e5b004eb8ddada1054975b0c4310eb9607f4a 100644 (file)
@@ -537,9 +537,10 @@ static int gpio_fan_probe(struct platform_device *pdev)
        }
 
        /* Make this driver part of hwmon class. */
-       fan_data->hwmon_dev = hwmon_device_register_with_groups(&pdev->dev,
-                                               "gpio_fan", fan_data,
-                                               gpio_fan_groups);
+       fan_data->hwmon_dev =
+               devm_hwmon_device_register_with_groups(&pdev->dev,
+                                                      "gpio_fan", fan_data,
+                                                      gpio_fan_groups);
        if (IS_ERR(fan_data->hwmon_dev))
                return PTR_ERR(fan_data->hwmon_dev);
 
@@ -548,15 +549,6 @@ static int gpio_fan_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int gpio_fan_remove(struct platform_device *pdev)
-{
-       struct gpio_fan_data *fan_data = platform_get_drvdata(pdev);
-
-       hwmon_device_unregister(fan_data->hwmon_dev);
-
-       return 0;
-}
-
 #ifdef CONFIG_PM_SLEEP
 static int gpio_fan_suspend(struct device *dev)
 {
@@ -588,7 +580,6 @@ static SIMPLE_DEV_PM_OPS(gpio_fan_pm, gpio_fan_suspend, gpio_fan_resume);
 
 static struct platform_driver gpio_fan_driver = {
        .probe          = gpio_fan_probe,
-       .remove         = gpio_fan_remove,
        .driver = {
                .name   = "gpio-fan",
                .pm     = GPIO_FAN_PM,