Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target...
[linux-2.6-block.git] / drivers / hwmon / ad7414.c
index df29a7fff9e7af8b8bf6a88a0f56ab714df10144..06d2d60d1fd0ee7785e529344b584a887976dccf 100644 (file)
@@ -50,7 +50,8 @@ struct ad7414_data {
 /* REG: (0.25C/bit, two's complement) << 6 */
 static inline int ad7414_temp_from_reg(s16 reg)
 {
-       /* use integer division instead of equivalent right shift to
+       /*
+        * use integer division instead of equivalent right shift to
         * guarantee arithmetic shift and preserve the sign
         */
        return ((int)reg / 64) * 250;
@@ -130,7 +131,11 @@ static ssize_t set_max_min(struct device *dev,
        struct ad7414_data *data = i2c_get_clientdata(client);
        int index = to_sensor_dev_attr(attr)->index;
        u8 reg = AD7414_REG_LIMIT[index];
-       long temp = simple_strtol(buf, NULL, 10);
+       long temp;
+       int ret = kstrtol(buf, 10, &temp);
+
+       if (ret < 0)
+               return ret;
 
        temp = SENSORS_LIMIT(temp, -40000, 85000);
        temp = (temp + (temp < 0 ? -500 : 500)) / 1000;
@@ -252,17 +257,7 @@ static struct i2c_driver ad7414_driver = {
        .id_table = ad7414_id,
 };
 
-static int __init ad7414_init(void)
-{
-       return i2c_add_driver(&ad7414_driver);
-}
-module_init(ad7414_init);
-
-static void __exit ad7414_exit(void)
-{
-       i2c_del_driver(&ad7414_driver);
-}
-module_exit(ad7414_exit);
+module_i2c_driver(ad7414_driver);
 
 MODULE_AUTHOR("Stefan Roese <sr at denx.de>, "
              "Frank Edelhaeuser <frank.edelhaeuser at spansion.com>");