]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: codecs: wcd938x: fix volatile register range
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tue, 16 Nov 2021 11:46:21 +0000 (11:46 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 16 Nov 2021 14:29:51 +0000 (14:29 +0000)
commit00a68739b7e6b752dd3d986adfd7744ba0bf3019
treef6d5bd48ded1a09e43f8266dbb980394c27d1e3d
parent97a9a51ec1a9e807610140f2466a6d016afcba5d
ASoC: codecs: wcd938x: fix volatile register range

Interrupt Clear registers WCD938X_INTR_CLEAR_0 -  WCD938X_INTR_CLEAR_2
are not marked as volatile. This has resulted in a missing interrupt bug
while performing runtime pm. regcache_sync() during runtime pm resume path
will write to Interrupt clear registers with previous values which basically
clears the pending interrupt and actual interrupt handler never sees this
interrupt.

This issue is more visible with headset plug-in plug-out case compared to
headset button.

Fix this by adding the Interrupt clear registers to volatile range

Fixes: 701901f5cff2 ("ASoC: codecs: wcd938x: add basic driver")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20211116114623.11891-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wcd938x.c