linux/drivers/power/supply
Liam Breck 68abfb8015 power: supply: bq24190_charger: Don't read fault register outside irq_handle_thread()
Caching the fault register after a single I2C read may not keep an accurate
value.

Fix by doing two reads in irq_handle_thread() and using the cached value
elsewhere. If a safety timer fault later clears itself, we apparently don't get
an interrupt (INT), however other interrupts would refresh the register cache.

From the data sheet: "When a fault occurs, the charger device sends out INT
 and keeps the fault state in REG09 until the host reads the fault register.
 Before the host reads REG09 and all the faults are cleared, the charger
 device would not send any INT upon new faults. In order to read the
 current fault status, the host has to read REG09 two times consecutively.
 The 1st reads fault register status from the last read [1] and the 2nd reads
 the current fault register status."

[1] presumably a typo; should be "last fault"

Fixes: d7bf353fd0 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck <kernel@networkimprov.net>
Acked-by: Mark Greer <mgreer@animalcreek.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
2017-01-20 12:43:07 +01:00
..
88pm860x_battery.c
88pm860x_charger.c
ab8500_bmdata.c
ab8500_btemp.c power: supply: ab8500_btemp: Compress return logic into one line. 2017-01-17 00:28:38 +01:00
ab8500_charger.c
ab8500_fg.c power: supply: improve function-level documentation 2016-10-19 05:06:22 +02:00
abx500_chargalg.c
act8945a_charger.c power: supply: act8945a_charger: Add max current property 2016-09-01 13:55:55 +02:00
apm_power.c
axp20x_usb_power.c power: supply: axp20x_usb_power: fix warning on 64bit 2017-01-12 01:03:53 +01:00
axp288_charger.c power: supply: axp288_charger: Use one notifier_block per extcon cable 2017-01-04 22:03:20 +01:00
axp288_fuel_gauge.c power: supply: axp288_fuel_gauge: Remove unnecessary irq?_en register writes 2017-01-04 22:03:44 +01:00
bq27xxx_battery_i2c.c power: supply: bq27xxx: adds specific support for bq27520-g4 revision. 2017-01-12 02:30:13 +01:00
bq27xxx_battery.c power: supply: bq27xxx: adds specific support for bq27520-g4 revision. 2017-01-12 02:30:13 +01:00
bq2415x_charger.c
bq24190_charger.c power: supply: bq24190_charger: Don't read fault register outside irq_handle_thread() 2017-01-20 12:43:07 +01:00
bq24257_charger.c power: bq24257: Fix use of uninitialized pointer bq->charger 2016-09-19 20:56:22 +02:00
bq24735-charger.c power: supply: bq24735: bring down the noise level 2017-01-04 22:03:33 +01:00
bq25890_charger.c
charger-manager.c
collie_battery.c
da9030_battery.c
da9052-battery.c
da9150-charger.c
da9150-fg.c
ds2760_battery.c
ds2780_battery.c
ds2781_battery.c
ds2782_battery.c
generic-adc-battery.c
goldfish_battery.c
gpio-charger.c power: supply: gpio_charger: switch to using GPIO descriptors 2017-01-04 22:04:50 +01:00
ipaq_micro_battery.c power: ipaq_micro_battery: fix alias 2016-11-23 23:44:40 +01:00
isp1704_charger.c
jz4740-battery.c
Kconfig power: supply: qcom_smbb: add regulator dependency 2017-01-18 17:05:49 +01:00
lp8727_charger.c
lp8788-charger.c power: supply: lp8788: remove an unneeded NULL check 2016-10-19 05:36:09 +02:00
ltc2941-battery-gauge.c
Makefile power: supply: Add support for MAX14656 USB charger detector 2017-01-16 23:03:11 +01:00
max8903_charger.c
max8925_power.c
max8997_charger.c power: supply: max8997_charger: Using device managed API and remove OOM print 2017-01-04 21:59:56 +01:00
max8998_charger.c
max14577_charger.c
max14656_charger_detector.c power: supply: max14656: fix platform_no_drv_owner.cocci warnings 2017-01-17 01:10:41 +01:00
max17040_battery.c power: supply: max17040: Change register transaction length from 8 bits to 16 bits 2016-10-19 05:06:32 +02:00
max17042_battery.c
max77693_charger.c
olpc_battery.c
pcf50633-charger.c power: supply: pcf50633-charger: Compress return logic into one line. 2017-01-17 00:29:16 +01:00
pda_power.c
pm2301_charger.c
pm2301_charger.h
pmu_battery.c
power_supply_core.c power: supply: improve function-level documentation 2016-10-19 05:06:22 +02:00
power_supply_leds.c
power_supply_sysfs.c
power_supply.h
qcom_smbb.c power: supply: qcom_smbb: Add otg regulator for control of vbus 2017-01-16 23:02:46 +01:00
rt5033_battery.c
rt9455_charger.c
rx51_battery.c
s3c_adc_battery.c
sbs-battery.c power: supply: sbs-battery: Cleanup removal of chip->pdata 2016-09-21 02:04:47 +02:00
sbs-charger.c power: supply: add sbs-charger driver 2017-01-04 22:01:00 +01:00
smb347-charger.c
test_power.c
tosa_battery.c
tps65090-charger.c
tps65217_charger.c power: supply: tps65217: Use generic charger name 2017-01-04 22:00:37 +01:00
twl4030_charger.c
twl4030_madc_battery.c
wm97xx_battery.c power: supply: wm97xx_battery: remove redundant 2nd null check on pdata 2017-01-04 22:04:20 +01:00
wm831x_backup.c
wm831x_power.c
wm8350_power.c wm8350_power: use permission-specific DEVICE_ATTR variants 2016-11-23 23:46:20 +01:00
z2_battery.c