Re: [PATCH 2/2] ASoC: rt711: wait for the delayed work to finish when the system suspends

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 9/21/20 4:43 AM, shumingf@xxxxxxxxxxx wrote:
From: Shuming Fan <shumingf@xxxxxxxxxxx>

To avoid the IO error, we need to cancel the delayed work and wait for it to finish.

Signed-off-by: Shuming Fan <shumingf@xxxxxxxxxxx>

Thanks Shuming.

For more context we detected a timeout error during suspend-resume stress tests, the problem is similar to an earlier case with interrupt handling already fixed in the SoundWire tree: we want all workqueues to complete before suspending.

BugLink: https://github.com/thesofproject/linux/issues/2443
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>

---
  sound/soc/codecs/rt711-sdw.c | 4 ++++
  1 file changed, 4 insertions(+)

diff --git a/sound/soc/codecs/rt711-sdw.c b/sound/soc/codecs/rt711-sdw.c
index 28d663673320..3a8ca600d1cf 100644
--- a/sound/soc/codecs/rt711-sdw.c
+++ b/sound/soc/codecs/rt711-sdw.c
@@ -491,6 +491,10 @@ static int __maybe_unused rt711_dev_suspend(struct device *dev)
  	if (!rt711->hw_init)
  		return 0;
+ cancel_delayed_work_sync(&rt711->jack_detect_work);
+	cancel_delayed_work_sync(&rt711->jack_btn_check_work);
+	cancel_work_sync(&rt711->calibration_work);
+
  	regcache_cache_only(rt711->regmap, true);
return 0;




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux