aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2012-03-25 00:54:41 -0400
committerGuenter Roeck <guenter.roeck@ericsson.com>2012-05-22 09:48:48 -0400
commit62a1d05f0ecf9c6a376bbe310718ed76582496a2 (patch)
treefc2d5c04a7ba8c96eb55f34f3bc88be90bb7d8d7 /drivers/hwmon
parentf7c2fe386ae92b471a0edd4fa4bed7033224b9bf (diff)
hwmon: (it87) Convert to use devm_kzalloc and devm_request_region
This makes the code a bit simpler and smaller. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r--drivers/hwmon/it87.c54
1 files changed, 20 insertions, 34 deletions
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index bef8732f08b1..071dd60f1c82 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -1965,19 +1965,17 @@ static int __devinit it87_probe(struct platform_device *pdev)
1965 }; 1965 };
1966 1966
1967 res = platform_get_resource(pdev, IORESOURCE_IO, 0); 1967 res = platform_get_resource(pdev, IORESOURCE_IO, 0);
1968 if (!request_region(res->start, IT87_EC_EXTENT, DRVNAME)) { 1968 if (!devm_request_region(&pdev->dev, res->start, IT87_EC_EXTENT,
1969 DRVNAME)) {
1969 dev_err(dev, "Failed to request region 0x%lx-0x%lx\n", 1970 dev_err(dev, "Failed to request region 0x%lx-0x%lx\n",
1970 (unsigned long)res->start, 1971 (unsigned long)res->start,
1971 (unsigned long)(res->start + IT87_EC_EXTENT - 1)); 1972 (unsigned long)(res->start + IT87_EC_EXTENT - 1));
1972 err = -EBUSY; 1973 return -EBUSY;
1973 goto ERROR0;
1974 } 1974 }
1975 1975
1976 data = kzalloc(sizeof(struct it87_data), GFP_KERNEL); 1976 data = devm_kzalloc(&pdev->dev, sizeof(struct it87_data), GFP_KERNEL);
1977 if (!data) { 1977 if (!data)
1978 err = -ENOMEM; 1978 return -ENOMEM;
1979 goto ERROR1;
1980 }
1981 1979
1982 data->addr = res->start; 1980 data->addr = res->start;
1983 data->type = sio_data->type; 1981 data->type = sio_data->type;
@@ -1986,10 +1984,8 @@ static int __devinit it87_probe(struct platform_device *pdev)
1986 1984
1987 /* Now, we do the remaining detection. */ 1985 /* Now, we do the remaining detection. */
1988 if ((it87_read_value(data, IT87_REG_CONFIG) & 0x80) 1986 if ((it87_read_value(data, IT87_REG_CONFIG) & 0x80)
1989 || it87_read_value(data, IT87_REG_CHIPID) != 0x90) { 1987 || it87_read_value(data, IT87_REG_CHIPID) != 0x90)
1990 err = -ENODEV; 1988 return -ENODEV;
1991 goto ERROR2;
1992 }
1993 1989
1994 platform_set_drvdata(pdev, data); 1990 platform_set_drvdata(pdev, data);
1995 1991
@@ -2019,26 +2015,26 @@ static int __devinit it87_probe(struct platform_device *pdev)
2019 /* Register sysfs hooks */ 2015 /* Register sysfs hooks */
2020 err = sysfs_create_group(&dev->kobj, &it87_group); 2016 err = sysfs_create_group(&dev->kobj, &it87_group);
2021 if (err) 2017 if (err)
2022 goto ERROR2; 2018 return err;
2023 2019
2024 for (i = 0; i < 9; i++) { 2020 for (i = 0; i < 9; i++) {
2025 if (sio_data->skip_in & (1 << i)) 2021 if (sio_data->skip_in & (1 << i))
2026 continue; 2022 continue;
2027 err = sysfs_create_group(&dev->kobj, &it87_group_in[i]); 2023 err = sysfs_create_group(&dev->kobj, &it87_group_in[i]);
2028 if (err) 2024 if (err)
2029 goto ERROR4; 2025 goto error;
2030 if (sio_data->beep_pin && it87_attributes_in_beep[i]) { 2026 if (sio_data->beep_pin && it87_attributes_in_beep[i]) {
2031 err = sysfs_create_file(&dev->kobj, 2027 err = sysfs_create_file(&dev->kobj,
2032 it87_attributes_in_beep[i]); 2028 it87_attributes_in_beep[i]);
2033 if (err) 2029 if (err)
2034 goto ERROR4; 2030 goto error;
2035 } 2031 }
2036 } 2032 }
2037 2033
2038 if (sio_data->beep_pin) { 2034 if (sio_data->beep_pin) {
2039 err = sysfs_create_group(&dev->kobj, &it87_group_beep); 2035 err = sysfs_create_group(&dev->kobj, &it87_group_beep);
2040 if (err) 2036 if (err)
2041 goto ERROR4; 2037 goto error;
2042 } 2038 }
2043 2039
2044 /* Do not create fan files for disabled fans */ 2040 /* Do not create fan files for disabled fans */
@@ -2049,13 +2045,13 @@ static int __devinit it87_probe(struct platform_device *pdev)
2049 continue; 2045 continue;
2050 err = sysfs_create_group(&dev->kobj, &fan_group[i]); 2046 err = sysfs_create_group(&dev->kobj, &fan_group[i]);
2051 if (err) 2047 if (err)
2052 goto ERROR4; 2048 goto error;
2053 2049
2054 if (sio_data->beep_pin) { 2050 if (sio_data->beep_pin) {
2055 err = sysfs_create_file(&dev->kobj, 2051 err = sysfs_create_file(&dev->kobj,
2056 it87_attributes_fan_beep[i]); 2052 it87_attributes_fan_beep[i]);
2057 if (err) 2053 if (err)
2058 goto ERROR4; 2054 goto error;
2059 if (!fan_beep_need_rw) 2055 if (!fan_beep_need_rw)
2060 continue; 2056 continue;
2061 2057
@@ -2080,14 +2076,14 @@ static int __devinit it87_probe(struct platform_device *pdev)
2080 err = sysfs_create_group(&dev->kobj, 2076 err = sysfs_create_group(&dev->kobj,
2081 &it87_group_pwm[i]); 2077 &it87_group_pwm[i]);
2082 if (err) 2078 if (err)
2083 goto ERROR4; 2079 goto error;
2084 2080
2085 if (!has_old_autopwm(data)) 2081 if (!has_old_autopwm(data))
2086 continue; 2082 continue;
2087 err = sysfs_create_group(&dev->kobj, 2083 err = sysfs_create_group(&dev->kobj,
2088 &it87_group_autopwm[i]); 2084 &it87_group_autopwm[i]);
2089 if (err) 2085 if (err)
2090 goto ERROR4; 2086 goto error;
2091 } 2087 }
2092 } 2088 }
2093 2089
@@ -2097,7 +2093,7 @@ static int __devinit it87_probe(struct platform_device *pdev)
2097 data->vid = sio_data->vid_value; 2093 data->vid = sio_data->vid_value;
2098 err = sysfs_create_group(&dev->kobj, &it87_group_vid); 2094 err = sysfs_create_group(&dev->kobj, &it87_group_vid);
2099 if (err) 2095 if (err)
2100 goto ERROR4; 2096 goto error;
2101 } 2097 }
2102 2098
2103 /* Export labels for internal sensors */ 2099 /* Export labels for internal sensors */
@@ -2107,25 +2103,19 @@ static int __devinit it87_probe(struct platform_device *pdev)
2107 err = sysfs_create_file(&dev->kobj, 2103 err = sysfs_create_file(&dev->kobj,
2108 it87_attributes_label[i]); 2104 it87_attributes_label[i]);
2109 if (err) 2105 if (err)
2110 goto ERROR4; 2106 goto error;
2111 } 2107 }
2112 2108
2113 data->hwmon_dev = hwmon_device_register(dev); 2109 data->hwmon_dev = hwmon_device_register(dev);
2114 if (IS_ERR(data->hwmon_dev)) { 2110 if (IS_ERR(data->hwmon_dev)) {
2115 err = PTR_ERR(data->hwmon_dev); 2111 err = PTR_ERR(data->hwmon_dev);
2116 goto ERROR4; 2112 goto error;
2117 } 2113 }
2118 2114
2119 return 0; 2115 return 0;
2120 2116
2121ERROR4: 2117error:
2122 it87_remove_files(dev); 2118 it87_remove_files(dev);
2123ERROR2:
2124 platform_set_drvdata(pdev, NULL);
2125 kfree(data);
2126ERROR1:
2127 release_region(res->start, IT87_EC_EXTENT);
2128ERROR0:
2129 return err; 2119 return err;
2130} 2120}
2131 2121
@@ -2136,10 +2126,6 @@ static int __devexit it87_remove(struct platform_device *pdev)
2136 hwmon_device_unregister(data->hwmon_dev); 2126 hwmon_device_unregister(data->hwmon_dev);
2137 it87_remove_files(&pdev->dev); 2127 it87_remove_files(&pdev->dev);
2138 2128
2139 release_region(data->addr, IT87_EC_EXTENT);
2140 platform_set_drvdata(pdev, NULL);
2141 kfree(data);
2142
2143 return 0; 2129 return 0;
2144} 2130}
2145 2131