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

From: [email-masked] (Pali Rohár)
Date: Wed, 13 Jan 2016 09:44:24 +0100

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 <[email-masked]>
> Acked-by: Pavel Machek <[email-masked]>
> Reported-by: Pavel Machek <[email-masked]>
> Cc: stable at vger.kernel.org
> 
> ? :-).
> 
> 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 at gmail.com