FROMGIT: 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. (cherry picked from commit 6e104169d2371f31b26ba991f5d183fe8f203995 https://github.com/CirrusLogic/linux-drivers v6.12-cs42l43-cs35l56) 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> Change-Id: Ibf22862880abf8032d31187535c32217d77efe38 Signed-off-by:
Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by:
Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Loading
Please sign in to comment