regulator: da9063: Optimize da9063_set_current_limit implementation

All the current limit tables have the values in ascend order.
So we can slightly optimize the for loop iteration because the first match
is the minimal value.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
Axel Lin 2013-08-30 20:07:38 +08:00 коммит произвёл Mark Brown
Родитель 69ca3e58d1
Коммит 556dcf903d
1 изменённых файлов: 4 добавлений и 11 удалений

Просмотреть файл

@ -166,22 +166,15 @@ static int da9063_set_current_limit(struct regulator_dev *rdev,
{
struct da9063_regulator *regl = rdev_get_drvdata(rdev);
const struct da9063_regulator_info *rinfo = regl->info;
int val = INT_MAX;
unsigned sel = 0;
int n;
int tval;
int n, tval;
for (n = 0; n < rinfo->n_current_limits; n++) {
tval = rinfo->current_limits[n];
if (tval >= min_uA && tval <= max_uA && val > tval) {
val = tval;
sel = n;
}
if (tval >= min_uA && tval <= max_uA)
return regmap_field_write(regl->ilimit, n);
}
if (val == INT_MAX)
return -EINVAL;
return regmap_field_write(regl->ilimit, sel);
return -EINVAL;
}
static int da9063_get_current_limit(struct regulator_dev *rdev)