2 Jan
2024
2 Jan
'24
8:22 p.m.
On Fri, Dec 29, 2023 at 01:47:35AM +0000, Shuming [范書銘] wrote:
This patch makes sure that the workqueue is completed before the system
- cancel_delayed_work_sync(&rt5663->jack_detect_work);
- cancel_delayed_work_sync(&rt5663->jd_unplug_work);
Does something ensure that no more interrupts can fire after the work is cancelled?
As I knew, the JD source is not the wake-up source when the system suspends. This patch just makes sure the work is done to avoid the unexpected problem.
The issue isn't unexpected wakes - it's if the work manages to start running again before the system suspends. For example if a jack detect interrupt is triggered while processing the second cancel there then the jack_detect_work will be rescheduled during suspend. Interrupts will still be active until a reasonable time later in the suspend process.