diff options
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); | ||