Re: /sys/class/power_supply/bq27200-0/capacity changed meaning between 4.1 and 4.4?

From: Pali RohÃr
Date: Wed Jan 13 2016 - 03:44:33 EST


On Tuesday 12 January 2016 22:53:52 Pavel Machek wrote:
> Hi!
>
> > >>If not, tell me, and I can do it, but it will involve a lot of swaring...
> > >
> > >I'll give it a look over.
> >
> > OK, I'm still looking for a test setup, but this was definitely a problem,
> > could you give this a try?:
>
> Well, search no more. I tested it and seems to work ok. There's one
> more blank line in the source, so I had to apply patch by hand.
>
> Tested-by: Pavel Machek <pavel@xxxxxx>
> Acked-by: Pavel Machek <pavel@xxxxxx>
> Reported-by: Pavel Machek <pavel@xxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
>
> ? :-).
>
> And... thanks!
> Pavel

There are more pending fixes for bq27xxx... Maybe your is duplicate?

http://thread.gmane.org/gmane.linux.power-management.general/70090
http://thread.gmane.org/gmane.linux.power-management.general/69716/focus=69714
http://thread.gmane.org/gmane.linux.power-management.general/69716/focus=2110580

Sebastian, please take them and ideally send to stable@ for backporting.

>
> > diff --git a/drivers/power/bq27xxx_battery.c b/drivers/power/bq27xxx_battery.c
> > index 880233c..4fec3cf 100644
> > --- a/drivers/power/bq27xxx_battery.c
> > +++ b/drivers/power/bq27xxx_battery.c
> > @@ -470,8 +470,9 @@ static inline int bq27xxx_read(struct bq27xxx_device_info *di, int reg_index,
> > static int bq27xxx_battery_read_soc(struct bq27xxx_device_info *di)
> > {
> > int soc;
> > + bool single = di->chip == BQ27000 || di->chip == BQ27010;
> > - soc = bq27xxx_read(di, BQ27XXX_REG_SOC, false);
> > + soc = bq27xxx_read(di, BQ27XXX_REG_SOC, single);
> > if (soc < 0)
> > dev_dbg(di->dev, "error reading State-of-Charge\n");
>

--
Pali RohÃr
pali.rohar@xxxxxxxxx