]> Gentwo Git Trees - linux/.git/commit
ASoC: cs42l43: Disable IRQs in system suspend
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Wed, 3 Sep 2025 09:45:46 +0000 (10:45 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 4 Sep 2025 12:00:38 +0000 (13:00 +0100)
commita69b4ba19a07896e7e4246446bad002f5fc0dae1
tree336bf2b84cd5588f46998a5528d1a2c413c5aeb3
parent149dda5f42a8fa6dacf2cff1d16952de28622d30
ASoC: cs42l43: Disable IRQs in system suspend

Currently the MFD driver disables all the IRQs upon entering system
suspend, however there are some issues with this approach. As this
device uses runtime force suspend.

The regmap IRQ handler can run, claim a PM runtime reference and get
scheduled, the MFD can then force suspend. When the IRQ thread gets
rescheduled it will try to access volatile registers on the
suspended device. Furthermore, this race also applies to work queue
items scheduled by the IRQ handlers.

As the MFD code doesn't know about the individual work queue items, the
end drivers must mask their own IRQs and sync in any work queues as part
of entering system suspend. Update the code here to do so.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Message-ID: <20250903094549.271068-4-ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs42l43.c
sound/soc/codecs/cs42l43.h