|
@@ -502,15 +502,13 @@ static int set_current_limit(struct regulator_dev *rdev, int min_uA,
|
|
|
if (info->n_ilimsels == 1)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- for (i = 0; i < info->n_ilimsels; i++)
|
|
|
+ for (i = info->n_ilimsels - 1; i >= 0; i--) {
|
|
|
if (min_uA <= info->ilimsels[i] &&
|
|
|
max_uA >= info->ilimsels[i])
|
|
|
- break;
|
|
|
-
|
|
|
- if (i >= info->n_ilimsels)
|
|
|
- return -EINVAL;
|
|
|
+ return write_field(hw, &info->ilimsel, i);
|
|
|
+ }
|
|
|
|
|
|
- return write_field(hw, &info->ilimsel, i);
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
static int get_current_limit(struct regulator_dev *rdev)
|