Merge tag 'localmodconfig-v3.6' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / regulator / ad5398.c
index 46d05f38baf8ee9bbc1cf9b7e1cd80c59651fafe..f123f7e3b7525acd164ed639e022f25dc46711cf 100644 (file)
@@ -89,9 +89,12 @@ static int ad5398_set_current_limit(struct regulator_dev *rdev, int min_uA, int
        unsigned short data;
        int ret;
 
-       if (min_uA > chip->max_uA || min_uA < chip->min_uA)
-               return -EINVAL;
-       if (max_uA > chip->max_uA || max_uA < chip->min_uA)
+       if (min_uA < chip->min_uA)
+               min_uA = chip->min_uA;
+       if (max_uA > chip->max_uA)
+               max_uA = chip->max_uA;
+
+       if (min_uA > chip->max_uA || max_uA < chip->min_uA)
                return -EINVAL;
 
        selector = DIV_ROUND_UP((min_uA - chip->min_uA) * chip->current_level,