ASoC: cs42l42: Only report button state if there was a button interrupt
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Mon, 15 Aug 2022 12:31:38 +0000 (13:31 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 15 Aug 2022 15:10:21 +0000 (16:10 +0100)
commitea75deef1a738d25502cfbb2caa564270b271525
tree3b99ef69790b2602ad8d424605653a177fa720ac
parent4d39265b930fb42eb396c3153a3f4afdee9f5c17
ASoC: cs42l42: Only report button state if there was a button interrupt

Only report a button state change if the interrupt status shows that
there was a button event.

Previously the code would always drop into the button reporting at the
end of interrupt handling if the jack was present. If neither of the
button report interrupts were pending it would report all buttons
released. This could then lead to a button being reported as released
while it is still pressed.

Fixes: c5b8ee0879bc ("ASoC: cs42l42: Report jack and button detection")
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220815123138.3810249-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs42l42.c