Skip to content
  • Frans Klaver's avatar
    power: reset: ltc2952: check trigger value before starting timer · c1ada2ff
    Frans Klaver authored and Sebastian Reichel's avatar Sebastian Reichel committed
    
    
    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: default avatarFrans Klaver <frans.klaver@xsens.com>
    Signed-off-by: default avatarSebastian Reichel <sre@kernel.org>
    c1ada2ff