Merge tag 'please-pull-misc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / misc / bh1770glc.c
index f4975f7d0d5b0df5fad0c75a8d5d2bbc886fba9a..99a04686e45fd4b315cd63f262d75afaac696a03 100644 (file)
@@ -651,8 +651,9 @@ static ssize_t bh1770_power_state_store(struct device *dev,
        unsigned long value;
        ssize_t ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        mutex_lock(&chip->mutex);
        if (value) {
@@ -726,9 +727,11 @@ static ssize_t bh1770_prox_enable_store(struct device *dev,
 {
        struct bh1770_chip *chip =  dev_get_drvdata(dev);
        unsigned long value;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        mutex_lock(&chip->mutex);
        /* Assume no proximity. Sensor will tell real state soon */
@@ -824,9 +827,11 @@ static ssize_t bh1770_set_prox_rate_above(struct device *dev,
 {
        struct bh1770_chip *chip =  dev_get_drvdata(dev);
        unsigned long value;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        mutex_lock(&chip->mutex);
        chip->prox_rate_threshold = bh1770_prox_rate_validate(value);
@@ -840,9 +845,11 @@ static ssize_t bh1770_set_prox_rate_below(struct device *dev,
 {
        struct bh1770_chip *chip =  dev_get_drvdata(dev);
        unsigned long value;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        mutex_lock(&chip->mutex);
        chip->prox_rate = bh1770_prox_rate_validate(value);
@@ -865,8 +872,10 @@ static ssize_t bh1770_set_prox_thres(struct device *dev,
        unsigned long value;
        int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
+
        if (value > BH1770_PROX_RANGE)
                return -EINVAL;
 
@@ -893,9 +902,11 @@ static ssize_t bh1770_prox_persistence_store(struct device *dev,
 {
        struct bh1770_chip *chip = dev_get_drvdata(dev);
        unsigned long value;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        if (value > BH1770_PROX_MAX_PERSISTENCE)
                return -EINVAL;
@@ -918,9 +929,11 @@ static ssize_t bh1770_prox_abs_thres_store(struct device *dev,
 {
        struct bh1770_chip *chip = dev_get_drvdata(dev);
        unsigned long value;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        if (value > BH1770_PROX_RANGE)
                return -EINVAL;
@@ -963,9 +976,11 @@ static ssize_t bh1770_lux_calib_store(struct device *dev,
        unsigned long value;
        u32 old_calib;
        u32 new_corr;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &value))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &value);
+       if (ret)
+               return ret;
 
        mutex_lock(&chip->mutex);
        old_calib = chip->lux_calib;
@@ -1012,8 +1027,9 @@ static ssize_t bh1770_set_lux_rate(struct device *dev,
        unsigned long rate_hz;
        int ret, i;
 
-       if (strict_strtoul(buf, 0, &rate_hz))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &rate_hz);
+       if (ret)
+               return ret;
 
        for (i = 0; i < ARRAY_SIZE(lux_rates_hz) - 1; i++)
                if (rate_hz >= lux_rates_hz[i])
@@ -1047,11 +1063,12 @@ static ssize_t bh1770_get_lux_thresh_below(struct device *dev,
 static ssize_t bh1770_set_lux_thresh(struct bh1770_chip *chip, u16 *target,
                                const char *buf)
 {
-       int ret = 0;
        unsigned long thresh;
+       int ret;
 
-       if (strict_strtoul(buf, 0, &thresh))
-               return -EINVAL;
+       ret = kstrtoul(buf, 0, &thresh);
+       if (ret)
+               return ret;
 
        if (thresh > BH1770_LUX_RANGE)
                return -EINVAL;