aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/ad7418.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-21 13:37:25 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-21 13:37:25 -0400
commit31f6765266417c0d99f0e922fe82848a7c9c2ae9 (patch)
tree2d5914dac0a918baad37decd3845b8c206051420 /drivers/hwmon/ad7418.c
parentd15d76448bb58c7832e954b6a8f1e301720b7866 (diff)
parent312869ec935ab3bb67b7ba641a7d11230555aff5 (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.c25
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
292static int __init ad7418_init(void) 298module_i2c_driver(ad7418_driver);
293{
294 return i2c_add_driver(&ad7418_driver);
295}
296
297static void __exit ad7418_exit(void)
298{
299 i2c_del_driver(&ad7418_driver);
300}
301 299
302MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>"); 300MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
303MODULE_DESCRIPTION("AD7416/17/18 driver"); 301MODULE_DESCRIPTION("AD7416/17/18 driver");
304MODULE_LICENSE("GPL"); 302MODULE_LICENSE("GPL");
305MODULE_VERSION(DRV_VERSION); 303MODULE_VERSION(DRV_VERSION);
306
307module_init(ad7418_init);
308module_exit(ad7418_exit);