fuelgauge: max17042: fix i2c read issue which causes infinity loop.
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Mon, 30 Dec 2013 10:24:32 +0000 (11:24 +0100)
committerTom Rini <trini@ti.com>
Tue, 14 Jan 2014 14:01:05 +0000 (09:01 -0500)
commitc9b0fa310ccc735f11afe52d3b14021c607931e4
treec87e7e32bf769af2eae9be7a0ebdd6830172f1d2
parent68b15e831c9a0a2da276b0c6f67569af997ad099
fuelgauge: max17042: fix i2c read issue which causes infinity loop.

Issues:
- reading i2c data by passing u16 pointer causes errors in read data.
- max17042 status register fields have not only Power On Reset meaning
  so using proper mask is required.

Changes:
- read i2c data to type u32 instead of u16 - avoids buffer overflow
- compare FG status register using mask not just one bit value
- add checking return value to functions fg read/write
- add model lock and model check count
- add debug msg

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
drivers/power/fuel_gauge/fg_max17042.c