diff options
author | Guenter Roeck <linux@roeck-us.net> | 2012-03-25 00:54:41 -0400 |
---|---|---|
committer | Guenter Roeck <guenter.roeck@ericsson.com> | 2012-05-22 09:48:48 -0400 |
commit | 62a1d05f0ecf9c6a376bbe310718ed76582496a2 (patch) | |
tree | fc2d5c04a7ba8c96eb55f34f3bc88be90bb7d8d7 /drivers/hwmon | |
parent | f7c2fe386ae92b471a0edd4fa4bed7033224b9bf (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.c | 54 |
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 | ||
2121 | ERROR4: | 2117 | error: |
2122 | it87_remove_files(dev); | 2118 | it87_remove_files(dev); |
2123 | ERROR2: | ||
2124 | platform_set_drvdata(pdev, NULL); | ||
2125 | kfree(data); | ||
2126 | ERROR1: | ||
2127 | release_region(res->start, IT87_EC_EXTENT); | ||
2128 | ERROR0: | ||
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 | ||