Re: [PATCH] regulator: ab8500: Fix get_mode for shared mode regulators

Lee Jones
2013-04-15T08:09:26Z

Hi Axel,

> Ping.
>
> Hi Lee,
> Can you review this patch.
> I think this one is a bug fix.

Bengt is the SME for all things ab*-regulator related.

No one knows the driver better than him.

Bengt, would you mind reviewing?

> 2013/4/8 Axel Lin <axel.lin@ingics.com>:
> > The special handling code for getting shared mode status is wrong
> > because it needs to check info->shared_mode->lp_mode_req for
> > both regulators that shared the same mode register.
> >
> > In set_mode(), current code ensures we won't set mode to REGULATOR_MODE_IDLE
> > if only one of the regulator requests to set idle.
> >
> > In get_mode(), we can just remove the special handling code for shared mode.
> > Read the register value always returns correct status no matter the regulator
> > has shared mode register or not.
> >
> > Signed-off-by: Axel Lin <axel.lin@ingics.com>
> > ---
> > drivers/regulator/ab8500.c | 8 --------
> > 1 file changed, 8 deletions(-)
> >
> > diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c
> > index 9ebd131..acdffc5 100644
> > --- a/drivers/regulator/ab8500.c
> > +++ b/drivers/regulator/ab8500.c
> > @@ -456,14 +456,6 @@ static unsigned int ab8500_regulator_get_mode(struct regulator_dev *rdev)
> > return -EINVAL;
> > }
> >
> > - /* Need special handling for shared mode */
> > - if (info->shared_mode) {
> > - if (info->shared_mode->lp_mode_req)
> > - return REGULATOR_MODE_IDLE;
> > - else
> > - return REGULATOR_MODE_NORMAL;
> > - }
> > -
> > if (info->mode_mask) {
> > /* Dedicated register for handling mode */
> > ret = abx500_get_register_interruptible(info->dev,
> >
> >
> >

--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog