]> git.itanic.dy.fi Git - linux-stable/commit
SoC: rt5682s: Disable jack detection interrupt during suspend
authorMatthias Kaehlcke <mka@chromium.org>
Thu, 9 Feb 2023 01:20:23 +0000 (01:20 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 14 Feb 2023 13:25:17 +0000 (13:25 +0000)
commitf7d00a9be147d9c6feeb19591b39f8102f70cc45
tree52e06071e6360c25b44c04e94350ede71d189b66
parentd227116c0e216da2eceba1d51a364ff025dffa58
SoC: rt5682s: Disable jack detection interrupt during suspend

The rt5682s driver switches its regmap to cache-only when the
device suspends and back to regular mode on resume. When the
jack detect interrupt fires rt5682s_irq() schedules the jack
detect work. This can result in invalid reads from the regmap
in cache-only mode if the work runs before the device has
resumed:

[   19.672162] rt5682s 2-001a: ASoC: error at soc_component_read_no_lock on rt5682s.2-001a for register: [0x000000f0] -16

Disable the jack detection interrupt during suspend and
re-enable it on resume. The driver already schedules the
jack detection work on resume, so any state change during
suspend is still handled.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Link: https://lore.kernel.org/r/20230209012002.1.Ib4d6481f1d38a6e7b8c9e04913c02ca88c216cf6@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5682s.c
sound/soc/codecs/rt5682s.h