diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 13:37:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-21 13:37:25 -0400 |
commit | 31f6765266417c0d99f0e922fe82848a7c9c2ae9 (patch) | |
tree | 2d5914dac0a918baad37decd3845b8c206051420 /drivers/hwmon/ad7418.c | |
parent | d15d76448bb58c7832e954b6a8f1e301720b7866 (diff) | |
parent | 312869ec935ab3bb67b7ba641a7d11230555aff5 (diff) |
Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon changes for v3.4 from Guenter Roeck:
"Mostly cleanup. No new drivers this time around, but support for
several chips added to existing drivers: TPS40400, TPS40422, MTD040,
MAX34446, ZL9101M, ZL9117M, and LM96080. Also, added watchdog support
for SCH56xx, and additional attributes for a couple of drivers."
* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (137 commits)
hwmon: (sch56xx) Add support for the integrated watchdog (v2)
hwmon: (w83627ehf) Add support for temperature offset registers
hwmon: (jc42) Remove unnecessary device IDs
hwmon: (zl6100) Add support for ZL9101M and ZL9117M
hwmon: (adm1275) Add support for ADM1075
hwmon: (max34440) Add support for MAX34446
hwmon: (pmbus) Add more virtual registers
hwmon: (pmbus) Add support for Lineage Power MDT040
hwmon: (pmbus) Add support for TI TPS40400 and TPS40422
hwmon: (max34440) Add support for 'lowest' output voltage attribute
hwmon: (jc42) Convert to use devm_kzalloc
hwmon: (max16065) Convert to use devm_kzalloc
hwmon: (smm665) Convert to use devm_kzalloc
hwmon: (ltc4261) Convert to use devm_kzalloc
hwmon: (pmbus) Simplify remove functions
hwmon: (pmbus) Convert pmbus drivers to use devm_kzalloc
hwmon: (lineage-pem) Convert to use devm_kzalloc
hwmon: (hwmon-vid) Fix checkpatch issues
hwmon: (hwmon-vid) Add new entries to VRM model table
hwmon: (lm80) Add detection of NatSemi/TI LM96080
...
Diffstat (limited to 'drivers/hwmon/ad7418.c')
-rw-r--r-- | drivers/hwmon/ad7418.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/drivers/hwmon/ad7418.c b/drivers/hwmon/ad7418.c index 8cb718ce8237..a50a6bef16c4 100644 --- a/drivers/hwmon/ad7418.c +++ b/drivers/hwmon/ad7418.c | |||
@@ -167,7 +167,11 @@ static ssize_t set_temp(struct device *dev, struct device_attribute *devattr, | |||
167 | struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); | 167 | struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); |
168 | struct i2c_client *client = to_i2c_client(dev); | 168 | struct i2c_client *client = to_i2c_client(dev); |
169 | struct ad7418_data *data = i2c_get_clientdata(client); | 169 | struct ad7418_data *data = i2c_get_clientdata(client); |
170 | long temp = simple_strtol(buf, NULL, 10); | 170 | long temp; |
171 | int ret = kstrtol(buf, 10, &temp); | ||
172 | |||
173 | if (ret < 0) | ||
174 | return ret; | ||
171 | 175 | ||
172 | mutex_lock(&data->lock); | 176 | mutex_lock(&data->lock); |
173 | data->temp[attr->index] = LM75_TEMP_TO_REG(temp); | 177 | data->temp[attr->index] = LM75_TEMP_TO_REG(temp); |
@@ -228,7 +232,8 @@ static int ad7418_probe(struct i2c_client *client, | |||
228 | goto exit; | 232 | goto exit; |
229 | } | 233 | } |
230 | 234 | ||
231 | if (!(data = kzalloc(sizeof(struct ad7418_data), GFP_KERNEL))) { | 235 | data = kzalloc(sizeof(struct ad7418_data), GFP_KERNEL); |
236 | if (!data) { | ||
232 | err = -ENOMEM; | 237 | err = -ENOMEM; |
233 | goto exit; | 238 | goto exit; |
234 | } | 239 | } |
@@ -261,7 +266,8 @@ static int ad7418_probe(struct i2c_client *client, | |||
261 | ad7418_init_client(client); | 266 | ad7418_init_client(client); |
262 | 267 | ||
263 | /* Register sysfs hooks */ | 268 | /* Register sysfs hooks */ |
264 | if ((err = sysfs_create_group(&client->dev.kobj, &data->attrs))) | 269 | err = sysfs_create_group(&client->dev.kobj, &data->attrs); |
270 | if (err) | ||
265 | goto exit_free; | 271 | goto exit_free; |
266 | 272 | ||
267 | data->hwmon_dev = hwmon_device_register(&client->dev); | 273 | data->hwmon_dev = hwmon_device_register(&client->dev); |
@@ -289,20 +295,9 @@ static int ad7418_remove(struct i2c_client *client) | |||
289 | return 0; | 295 | return 0; |
290 | } | 296 | } |
291 | 297 | ||
292 | static int __init ad7418_init(void) | 298 | module_i2c_driver(ad7418_driver); |
293 | { | ||
294 | return i2c_add_driver(&ad7418_driver); | ||
295 | } | ||
296 | |||
297 | static void __exit ad7418_exit(void) | ||
298 | { | ||
299 | i2c_del_driver(&ad7418_driver); | ||
300 | } | ||
301 | 299 | ||
302 | MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); | 300 | MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); |
303 | MODULE_DESCRIPTION("AD7416/17/18 driver"); | 301 | MODULE_DESCRIPTION("AD7416/17/18 driver"); |
304 | MODULE_LICENSE("GPL"); | 302 | MODULE_LICENSE("GPL"); |
305 | MODULE_VERSION(DRV_VERSION); | 303 | MODULE_VERSION(DRV_VERSION); |
306 | |||
307 | module_init(ad7418_init); | ||
308 | module_exit(ad7418_exit); | ||