linux/drivers/power/supply
Hans de Goede a865a15556 power: supply: max17042_battery: Fix ACPI interrupt issues
On some x86/ACPI boards the DSDT defines an ACPI event handler for
the max17047 IRQ, this causes several problems:

1) We need to share the IRQ to avoid an error getting it

2) Even of we are willing to share, we may fail to share because some
   DSDTs claim it exclusivly

3) If we are unable to share the IRQ, or the IRQ is only listed as an
   ACPI event source and not in the max1704 firmware node, then the
   charge threshold IRQ (which is used to give an IRQ every 1 percent
   charge change) becomes a problem, the ACPI event handler will not
   update this to the next 1 percent threshold, so the IRQ keeps firing
   and we get an IRQ storm pegging 1 CPU core.

   This happens despite the max17042 driver not setting the charge
   threshold because Windows uses it and leaves it set on reboot.

   So if we are unable to get the IRQ we need to reprogram the
   charge threshold to its disabled setting.

This commit fixes al of the above, while at it it also makes the error
msg when being unable to get the IRQ consistent with other messages.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
2017-08-28 18:19:07 +02:00
..
88pm860x_battery.c
88pm860x_charger.c
ab8500_bmdata.c power: supply: ab8500: Replaced spaces with tabs in indent 2017-04-14 01:41:34 +02:00
ab8500_btemp.c power: supply: ab8500_btemp: Compress return logic into one line. 2017-01-17 00:28:38 +01:00
ab8500_charger.c power: supply: ab8500_charger: spelling: "prechage" -> "precharge" 2017-05-01 12:37:01 +02:00
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: fix of_irq_get() error check 2017-07-24 14:09:00 +02:00
apm_power.c
axp20x_ac_power.c power: supply: add AC power supply driver for AXP20X and AXP22X PMICs 2017-01-29 23:15:18 +01:00
axp20x_battery.c power: supply: axp20x_battery: add DT support for battery max constant charge current 2017-06-08 17:57:53 +02:00
axp20x_usb_power.c power: supply: axp20x_usb_power: Drop unnecessary static 2017-05-15 15:28:14 +02:00
axp288_charger.c power: supply: axp288_charger: Only wait for INT3496 device if present 2017-04-19 22:53:35 +02: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_hdq.c power: supply: bq27xxx: move platform driver code into bq27xxx_battery_hdq.c 2017-07-25 15:31:21 +02:00
bq27xxx_battery_i2c.c power: supply: bq27xxx: Add bulk transfer bus methods 2017-06-08 16:29:29 +02:00
bq27xxx_battery.c power: supply: bq27xxx: move platform driver code into bq27xxx_battery_hdq.c 2017-07-25 15:31:21 +02:00
bq2415x_charger.c power: supply: bq2415x: check for NULL acpi_id to avoid null pointer dereference 2017-01-21 03:35:07 +01:00
bq24190_charger.c power: supply: bq24190_charger: Deprecate battery class and replicate its features in charger 2017-05-01 11:52:15 +02: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: remove incorrect le16_to_cpu calls 2017-06-15 16:47:35 +02:00
bq25890_charger.c power: supply: bq25890: Use gpiod_get() 2017-04-14 01:41:34 +02:00
charger-manager.c power: supply: charger-manager: Slighly simplify code 2017-08-11 18:54:35 +02:00
collie_battery.c
cpcap-battery.c power: supply: cpcap-battery: Add a battery driver 2017-06-08 13:05:54 +02:00
cpcap-charger.c power: supply: cpcap-charger: Add missing power_supply_config 2017-06-15 10:16:59 +02:00
da9030_battery.c
da9052-battery.c
da9150-charger.c
da9150-fg.c
ds2760_battery.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
ds2780_battery.c power: supply: add const to bin_attribute structures 2017-08-09 17:42:56 +02:00
ds2781_battery.c power: supply: add const to bin_attribute structures 2017-08-09 17:42:56 +02:00
ds2782_battery.c
generic-adc-battery.c power: supply: generic-adc-battery: use SIMPLE_DEV_PM_OPS helper macro 2017-05-01 11:52:24 +02:00
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 power: supply: isp1704: Fix unchecked return value of devm_kzalloc 2017-05-01 11:52:25 +02:00
jz4740-battery.c
Kconfig Merge branch 'psy-w1-for-v4.14-immutable' into for-next 2017-07-25 15:18:27 +02:00
lego_ev3_battery.c power: supply: New driver for LEGO MINDSTORMS EV3 battery 2017-04-14 01:41:35 +02:00
lp8727_charger.c
lp8788-charger.c power: supply: lp8788: Make several arrays static const * const 2017-08-12 13:58:14 -04:00
ltc2941-battery-gauge.c power: supply: ltc2941-battery-gauge: Add LTC2944 support 2017-07-25 12:13:04 +02:00
ltc3651-charger.c power: supply: ltc3651-charger: fix some error codes in probe 2017-06-08 13:05:27 +02:00
Makefile Merge branch 'psy-w1-for-v4.14-immutable' into for-next 2017-07-25 15:18:27 +02:00
max1721x_battery.c power: supply: Add support for MAX1721x standalone fuel gauge 2017-07-24 14:09:34 +02: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: Export I2C and OF device ID as module aliases 2017-01-29 23:15:17 +01:00
max17040_battery.c power: supply: max17040: Add OF device ID table 2017-04-14 01:41:33 +02:00
max17042_battery.c power: supply: max17042_battery: Fix ACPI interrupt issues 2017-08-28 18:19:07 +02:00
max77693_charger.c
olpc_battery.c power: supply: add const to bin_attribute structures 2017-08-09 17:42:56 +02:00
pcf50633-charger.c power: supply: constify attribute_group structures. 2017-07-24 14:09:32 +02:00
pda_power.c power: supply: pda_power: move from timer to delayed_work 2017-05-01 12:41:58 +02:00
pm2301_charger.c
pm2301_charger.h
pmu_battery.c
power_supply_core.c power: supply: Fix power_supply_am_i_supplied to return -ENODEV when apropriate 2017-08-09 17:56:46 +02:00
power_supply_leds.c
power_supply_sysfs.c power: supply: core: Add power_supply_prop_precharge 2017-06-08 16:29:28 +02:00
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 power: supply: avoid unused twl4030-madc.h 2017-05-01 13:03:09 +02:00
s3c_adc_battery.c
sbs-battery.c power: supply: sbs-battery: Add delay when changing capacity mode bit 2017-07-25 11:30:28 +02:00
sbs-charger.c power: supply: sbs-charger: simplified bool function 2017-04-14 01:41:34 +02:00
smb347-charger.c
test_power.c
tosa_battery.c
tps65090-charger.c
tps65217_charger.c power: supply: tps65217: remove debug messages for function calls 2017-04-14 01:41:35 +02:00
twl4030_charger.c power: supply: twl4030-charger: add deferred probing for phy and iio 2017-07-03 19:15:22 +02:00
twl4030_madc_battery.c power: supply: avoid unused twl4030-madc.h 2017-05-01 13:03:09 +02:00
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