diff options
author | Grazvydas Ignotas <notasas@gmail.com> | 2012-01-14 20:50:49 (GMT) |
---|---|---|
committer | Anton Vorontsov <cbouatmailru@gmail.com> | 2012-02-01 17:27:28 (GMT) |
commit | 4d4036591b3de279a8c93a3cb010b0bc1264703c (patch) | |
tree | 2ae895a48407219e41332f93bf8e5949ce9440c9 | |
parent | b7aaacf56ac9e0cdb58c3d087fea7084d897c307 (diff) | |
download | linux-fsl-qoriq-4d4036591b3de279a8c93a3cb010b0bc1264703c.tar.xz |
bq27x00_battery: Fix flag register read
When reading flags, bq27x00_read() argument is inverted and causes
reads 2 of bytes for bq27200 and 1 byte for bq27500, while their register
sizes are 1 and 2 bytes respectively. This causes bq27500 upper flag
bits always to be returned as 0, causing full charge state to never be
reported correctly, so fix it.
Cc: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Acked-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
-rw-r--r-- | drivers/power/bq27x00_battery.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c index d4b5281..1ed6ea0 100644 --- a/drivers/power/bq27x00_battery.c +++ b/drivers/power/bq27x00_battery.c @@ -311,7 +311,7 @@ static void bq27x00_update(struct bq27x00_device_info *di) struct bq27x00_reg_cache cache = {0, }; bool is_bq27500 = di->chip == BQ27500; - cache.flags = bq27x00_read(di, BQ27x00_REG_FLAGS, is_bq27500); + cache.flags = bq27x00_read(di, BQ27x00_REG_FLAGS, !is_bq27500); if (cache.flags >= 0) { if (!is_bq27500 && (cache.flags & BQ27000_FLAG_CI)) { dev_info(di->dev, "battery is not calibrated! ignoring capacity values\n"); |