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

Commit 844e6901 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

regulator: tps65217: Fix voltage boundary checking in tps65217_pmic_map_voltage



It is ok to request voltage with min_uV < tps->info[rid]->min_uV and
max_uV > tps->info[rid]->max_uV.

The equation we used in uv_to_vsel() does not allow
min_uV < tps->info[rid]->min_uV, otherwise it returns negative selector.
So we need to set min_uV = tps->info[rid]->min_uV if
min_uV < tps->info[rid]->min_uV.

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Acked-by: default avatarAnilKumar Ch <anilkumar@ti.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 0072f0a8
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -206,10 +206,10 @@ static int tps65217_pmic_map_voltage(struct regulator_dev *dev,
	if (rid < TPS65217_DCDC_1 || rid > TPS65217_LDO_4)
	if (rid < TPS65217_DCDC_1 || rid > TPS65217_LDO_4)
		return -EINVAL;
		return -EINVAL;


	if (min_uV < tps->info[rid]->min_uV || min_uV > tps->info[rid]->max_uV)
	if (min_uV < tps->info[rid]->min_uV)
		return -EINVAL;
		min_uV = tps->info[rid]->min_uV;


	if (max_uV < tps->info[rid]->min_uV || max_uV > tps->info[rid]->max_uV)
	if (max_uV < tps->info[rid]->min_uV || min_uV > tps->info[rid]->max_uV)
		return -EINVAL;
		return -EINVAL;


	ret = tps->info[rid]->uv_to_vsel(min_uV, &sel);
	ret = tps->info[rid]->uv_to_vsel(min_uV, &sel);