Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 556dcf90 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

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: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 69ca3e58
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -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)