]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/iio/trigger/iio-trig-bfin-timer.c
Merge remote-tracking branch 'staging/staging-next'
[karo-tx-linux.git] / drivers / staging / iio / trigger / iio-trig-bfin-timer.c
index 38a158b77b1d24f3d55ac12c08ae13b0792b8d20..26e1ca0b7800223b88f3102d562d0c7c084087bb 100644 (file)
@@ -83,32 +83,28 @@ static ssize_t iio_bfin_tmr_frequency_store(struct device *dev,
 {
        struct iio_trigger *trig = to_iio_trigger(dev);
        struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig);
-       unsigned long val;
+       unsigned int val;
        bool enabled;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &val);
+       ret = kstrtouint(buf, 10, &val);
        if (ret)
-               goto error_ret;
+               return ret;
 
-       if (val > 100000) {
-               ret = -EINVAL;
-               goto error_ret;
-       }
+       if (val > 100000)
+               return -EINVAL;
 
        enabled = get_enabled_gptimers() & st->t->bit;
 
        if (enabled)
                disable_gptimers(st->t->bit);
 
-       if (!val)
-               goto error_ret;
+       if (val == 0)
+               return count;
 
        val = get_sclk() / val;
-       if (val <= 4 || val <= st->duty) {
-               ret = -EINVAL;
-               goto error_ret;
-       }
+       if (val <= 4 || val <= st->duty)
+               return -EINVAL;
 
        set_gptimer_period(st->t->id, val);
        set_gptimer_pwidth(st->t->id, val - st->duty);
@@ -116,8 +112,7 @@ static ssize_t iio_bfin_tmr_frequency_store(struct device *dev,
        if (enabled)
                enable_gptimers(st->t->bit);
 
-error_ret:
-       return ret ? ret : count;
+       return count;
 }
 
 static ssize_t iio_bfin_tmr_frequency_show(struct device *dev,