linux/drivers/power
Frans Klaver c1ada2ff80 power: reset: ltc2952: check trigger value before starting timer
In ltc2952_poweroff_handler it is theoretically possible that the timer
fails to start on first pass (button press), but succeeds in starting on
the second (button release). This will cause the button press to be
misinterpreted, and will incorrectly shut down the system. Because a
picture says more than a thousand words:

Expected behavior:
tmr:      ++++++++++
btn: -----__________-----

Faulty behavior:
tmr:                +++++
btn: -----__________-----

Legend:
+ timer runs
_ button pressed
- button depressed

To prevent this from happening, check the value of the gpio before
starting the timer. If the button is active, we should start the timer,
else we should stop it.

The situation described can now still occur if the polarity of the input
pin is set incorrectly, but that at least is predictable behavior and
can be detected during the first tests.

Signed-off-by: Frans Klaver <frans.klaver@xsens.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
2015-01-20 13:58:30 +01:00
..
avs PM / AVS: rockchip-io: add driver handling Rockchip io domains 2014-09-25 09:57:23 -07:00
reset power: reset: ltc2952: check trigger value before starting timer 2015-01-20 13:58:30 +01:00
88pm860x_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
88pm860x_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
ab8500_bmdata.c ab8500_bmdata: Export abx500_res_to_temp tables for hwmon 2013-04-16 17:38:10 -07:00
ab8500_btemp.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
ab8500_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
ab8500_fg.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
abx500_chargalg.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
apm_power.c
bq27x00_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
bq2415x_charger.c power: bq2415x_charger: Fix memory leak on DTS parsing error 2014-10-28 03:30:18 +01:00
bq24190_charger.c bq24190_charger: Workaround SS definition problem on i386 builds 2013-08-28 17:52:50 -07:00
bq24735-charger.c power_supply: Add support for bq24735 charger 2013-10-25 15:56:51 -07:00
charger-manager.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
collie_battery.c power supply: collie_battery: Convert to use dev_pm_ops 2013-08-09 13:41:06 -07:00
da9030_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
da9052-battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
ds2760_battery.c ds2760_battery: Use devm_kzalloc() 2013-03-31 23:25:47 -07:00
ds2780_battery.c ds2780_battery: Use devm_kzalloc() 2013-03-31 23:25:45 -07:00
ds2781_battery.c power: remove use of __devexit 2012-11-28 11:43:22 -08:00
ds2782_battery.c power: ds2782_battery: Simplify the PM hooks 2014-11-17 03:07:11 +01:00
generic-adc-battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
goldfish_battery.c goldfish_battery: Use resource_size() 2013-03-31 23:39:40 -07:00
gpio-charger.c power supply and reset changes for the v3.19 series 2014-12-15 17:36:45 -08:00
intel_mid_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
ipaq_micro_battery.c ipaq_micro_battery: fix sparse non static symbol warning 2014-07-28 15:36:29 +02:00
isp1704_charger.c isp1704_charger: remove useless check in isp1704_charger_probe() 2014-01-25 15:24:15 +04:00
jz4740-battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
Kconfig power: max14577: Fix circular config SYSFS dependency 2014-09-25 16:05:50 +02:00
lp8727_charger.c lp8727_charger: Support the device tree feature 2013-06-06 17:19:54 -07:00
lp8788-charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
Makefile power: add driver for battery reading on iPaq h3xxx 2014-07-24 16:20:17 +02:00
max8903_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
max8925_power.c power: max8925: Use of_get_child_by_name 2014-09-25 01:37:13 +02:00
max8997_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
max8998_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
max14577_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
max17040_battery.c power: max17040: Add ID for MAX77836 Fuel Gauge block 2014-09-24 15:25:52 +01:00
max17042_battery.c max17042_battery: Add IRQF_ONESHOT flag to use default irq handler 2013-12-23 18:59:41 -08:00
olpc_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
pcf50633-charger.c power_supply: Replace strict_strtoul() with kstrtoul() 2013-06-06 17:35:38 -07:00
pda_power.c usb: power: pda_power: check against CONFIG_USB_PHY 2013-03-18 11:18:05 +02:00
pm2301_charger.c power / PM: Eliminate CONFIG_PM_RUNTIME 2014-12-15 15:12:21 +01:00
pm2301_charger.h pm2301-charger: Removed unused code from PM2301 driver 2013-03-07 12:35:53 +08:00
pmu_battery.c
power_supply_core.c power_supply: Add no_thermal property to prevent recursive get_temp calls 2014-10-28 03:30:19 +01:00
power_supply_leds.c power-supply: Avoid unnecessary 'goto' statements 2014-09-16 11:01:37 +02:00
power_supply_sysfs.c power-supply: Check for failures only when we can fail 2014-09-16 11:01:37 +02:00
power_supply.h
rx51_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
s3c_adc_battery.c s3c-adc-battery: Fix possible NULL pointer dereference 2013-03-18 19:43:03 -07:00
sbs-battery.c sbs-battery: add min design voltage to sbs-battery 2014-09-06 20:57:43 +02:00
smb347-charger.c power: remove use of __devexit_p 2012-11-28 11:43:22 -08:00
test_power.c test_power: Fix a bug in setting module parameter values 2013-03-18 19:27:31 -07:00
tosa_battery.c power_supply: tosa_battery: Get rid of irq_to_gpio usage 2013-08-09 13:41:52 -07:00
tps65090-charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
twl4030_charger.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
twl4030_madc_battery.c power: Add twl4030_madc battery driver. 2013-08-30 17:34:52 -07:00
wm97xx_battery.c power: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
wm831x_backup.c wm831x_backup: Fix wrong kfree call for devdata->backup.name 2013-05-10 11:56:22 -07:00
wm831x_power.c power: remove use of __devexit 2012-11-28 11:43:22 -08:00
wm8350_power.c power: remove use of __devexit 2012-11-28 11:43:22 -08:00
z2_battery.c power: remove use of __devexit 2012-11-28 11:43:22 -08:00