summaryrefslogtreecommitdiff
path: root/drivers/power/bq27x00_battery.c
diff options
context:
space:
mode:
authorMarek Belisko <marek@goldelico.com>2014-06-30 23:49:56 +0400
committerSebastian Reichel <sre@kernel.org>2014-07-19 01:40:22 +0400
commit3dd843e1c26a023dc8d776e5d984c635c642785f (patch)
treeef5a65a69280bc6d2aa3e2a88a625b1609a7847d /drivers/power/bq27x00_battery.c
parent1cb82fdb2a0fb2af9da69eeee92877189ec9a560 (diff)
downloadlinux-3dd843e1c26a023dc8d776e5d984c635c642785f.tar.xz
bq27000: report missing device better.
One an hdq buss, a missing device reads as 0xff, not -1. So do a translation to allow detecting of a missing bus. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Sebastian Reichel <sre@kernel.org>
Diffstat (limited to 'drivers/power/bq27x00_battery.c')
-rw-r--r--drivers/power/bq27x00_battery.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c
index a0f205b0471d..e10763e3a1d5 100644
--- a/drivers/power/bq27x00_battery.c
+++ b/drivers/power/bq27x00_battery.c
@@ -416,6 +416,9 @@ static void bq27x00_update(struct bq27x00_device_info *di)
bool is_bq27425 = di->chip == BQ27425;
cache.flags = bq27x00_read(di, BQ27x00_REG_FLAGS, !is_bq27500);
+ if ((cache.flags & 0xff) == 0xff)
+ /* read error */
+ cache.flags = -1;
if (cache.flags >= 0) {
if (!is_bq27500 && !is_bq27425
&& (cache.flags & BQ27000_FLAG_CI)) {