forked from Minki/linux
bq27x00_battery: Fixup nominal available capacity reporting
We should not not report nominal available capacity if battery is not calibrated, as we don't want to represent bogus values in the sysfs and confuse userland. Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
This commit is contained in:
parent
6c47a3e00c
commit
e59ec4a189
@ -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)
|
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);
|
return bq27x00_battery_read_charge(di, BQ27x00_REG_NAC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user