Hi, On Tue, 8 Aug 2023 at 15:42, Tom Rini <tr...@konsulko.com> wrote: > > On Wed, Jul 26, 2023 at 10:01:21AM +0300, Dan Carpenter wrote: > > > This code has a & vs && typo so it only preserves odd value error > > codes and not even value error codes. > > > > Signed-off-by: Dan Carpenter <dan.carpen...@linaro.org> > > Reviewed-by: Simon Glass <s...@chromium.org> > > --- > > drivers/power/regulator/regulator-uclass.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/power/regulator/regulator-uclass.c > > b/drivers/power/regulator/regulator-uclass.c > > index 3a6ba69f6d5f..52dd1bd3eafd 100644 > > --- a/drivers/power/regulator/regulator-uclass.c > > +++ b/drivers/power/regulator/regulator-uclass.c > > @@ -380,7 +380,7 @@ int regulator_list_autoset(const char *list_platname[], > > ret = regulator_autoset_by_name(list_platname[i], &dev); > > if (ret != -EMEDIUMTYPE && verbose) > > regulator_show(dev, ret); > > - if (ret & !error) > > + if (ret && !error) > > error = ret; > > > > if (list_devp) > > This then leads to the test power_regulator_autoset_list in > test/dm/regulator.c failing. Simon, please take a look, thanks.
The failure is: test/dm/regulator.c:379, dm_test_power_regulator_autoset_list(): 0 == regulator_list_autoset(platname_list, dev_list, 0): Expected 0x0 (0), got 0xffffff84 (-124) This looks to be regulator_autoset() returning -EMEDIUMTYPE because: (!uc_pdata->always_on && !uc_pdata->boot_on) You apparently cannot autoset a regulator unless it has one of those enabled. Just adding: regulator-boot-on; to LTO2 in arch/sandbox/dts/sandbox_pmic.dtsi does not fix it: test/dm/regulator.c:390, dm_test_power_regulator_autoset_list(): regulator_get_value(dev_list[i]) == expected_setting_list[i].voltage: Expected 0x325aa0 (3300000), got 0x2dc6c0 (3000000) So I suspect this is a real bug and the tests are checking for the bug. +Jaehoon Chung (power maintainer) Regards, Simon