On 2023-08-12 11:59, Svyatoslav Ryhel wrote: > With the commit 4fcba5d556b4 ("regulator: implement basic reference > counter") the return value of regulator_set_enable may be EALREADY or > EBUSY for fixed/gpio regulators and may be further expanded on all > regulators. > > Change to use the more relaxed regulator_set_enable_if_allowed to > continue if regulator already was enabled or disabled. > > Signed-off-by: Svyatoslav Ryhel <clamo...@gmail.com> > --- > drivers/video/simple_panel.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/video/simple_panel.c b/drivers/video/simple_panel.c > index 6a6473eb0e..eb4eed217d 100644 > --- a/drivers/video/simple_panel.c > +++ b/drivers/video/simple_panel.c > @@ -114,11 +114,11 @@ static int simple_panel_probe(struct udevice *dev) > const u32 dsi_data = dev_get_driver_data(dev); > int ret; > > - if (CONFIG_IS_ENABLED(DM_REGULATOR) && priv->reg) { > - debug("%s: Enable regulator '%s'\n", __func__, priv->reg->name); > - ret = regulator_set_enable(priv->reg, true); > - if (ret) > - return ret; > + ret = regulator_set_enable_if_allowed(priv->reg, true); > + if (ret) {
Should be 'ret && ret != -ENOSYS' because you remove the CONFIG_IS_ENABLED(DM_REGULATOR) check. Regards, Jonas > + debug("%s: failed to enable regulator '%s' %d\n", > + __func__, priv->reg->name, ret); > + return ret; > } > > switch (dsi_data) {