2012-11-10 14:43:24

by Pali Rohár

[permalink] [raw]
Subject: [PATCH] bq27x00_battery: Do not report nominal available capaciy if battery is not calibrated

Signed-off-by: Pali Rohár <[email protected]>
---
drivers/power/bq27x00_battery.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c
index 5860d4d..41b3328 100644
--- a/drivers/power/bq27x00_battery.c
+++ b/drivers/power/bq27x00_battery.c
@@ -230,6 +230,14 @@ static int bq27x00_battery_read_charge(struct bq27x00_device_info *di, u8 reg)
*/
static inline int bq27x00_battery_read_nac(struct bq27x00_device_info *di)
{
+ int flags;
+ bool is_bq27500 = di->chip == BQ27500;
+ bool is_higher = bq27xxx_is_chip_version_higher(di);
+
+ flags = bq27x00_read(di, BQ27x00_REG_FLAGS, !is_bq27500);
+ if (flags >= 0 && !is_higher && (flags & BQ27000_FLAG_CI))
+ return -ENODATA;
+
return bq27x00_battery_read_charge(di, BQ27x00_REG_NAC);
}

--
1.7.10.4


2012-11-19 00:09:14

by Anton Vorontsov

[permalink] [raw]
Subject: Re: [PATCH] bq27x00_battery: Do not report nominal available capaciy if battery is not calibrated

On Sat, Nov 10, 2012 at 03:42:48PM +0100, Pali Rohár wrote:
> Signed-off-by: Pali Rohár <[email protected]>
> ---
> drivers/power/bq27x00_battery.c | 8 ++++++++
> 1 file changed, 8 insertions(+)

OK, I'm assuming we don't want this because otherwise we're getting bogus
values in the sysfs, and so we confuse userland. I added this explanation
to the commit message, but still would be great to hear some confirmation.

Anyways, this is applied now.

Thanks!

> diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c
> index 5860d4d..41b3328 100644
> --- a/drivers/power/bq27x00_battery.c
> +++ b/drivers/power/bq27x00_battery.c
> @@ -230,6 +230,14 @@ static int bq27x00_battery_read_charge(struct bq27x00_device_info *di, u8 reg)
> */
> static inline int bq27x00_battery_read_nac(struct bq27x00_device_info *di)
> {
> + int flags;
> + bool is_bq27500 = di->chip == BQ27500;
> + bool is_higher = bq27xxx_is_chip_version_higher(di);
> +
> + flags = bq27x00_read(di, BQ27x00_REG_FLAGS, !is_bq27500);
> + if (flags >= 0 && !is_higher && (flags & BQ27000_FLAG_CI))
> + return -ENODATA;
> +
> return bq27x00_battery_read_charge(di, BQ27x00_REG_NAC);
> }
>
> --
> 1.7.10.4

2012-11-19 18:43:44

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH] bq27x00_battery: Do not report nominal available capaciy if battery is not calibrated

On Sunday 18 November 2012 16:05:52 Anton Vorontsov wrote:
> On Sat, Nov 10, 2012 at 03:42:48PM +0100, Pali Rohár wrote:
> > Signed-off-by: Pali Rohár <[email protected]>
> > ---
> >
> > drivers/power/bq27x00_battery.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
>
> OK, I'm assuming we don't want this because otherwise we're
> getting bogus values in the sysfs, and so we confuse userland.
> I added this explanation to the commit message, but still
> would be great to hear some confirmation.
>
> Anyways, this is applied now.
>
> Thanks!
>

Right.

--
Pali Rohár
[email protected]


Attachments:
signature.asc (198.00 B)
This is a digitally signed message part.