Re: [PATCH 4/4] ASoC: wm8994: drain all delayed works on component remove
From: Mark Brown
Date: Mon Oct 26 2026 - 15:18:00 EST
> wm8994_component_remove() frees IRQs and firmware but does not cancel
> any of the delayed works that IRQ handlers and DAPM events schedule.
> jackdet_bootstrap can spawn mic_work (via wm1811_jackdet_irq), and
> wm8958_mic_irq can queue mic_complete_work, whose callback may in turn
> queue open_circuit_work. If any of these works are pending when the
> component is unbound, they fire after DAPM widgets are freed.
> + cancel_delayed_work_sync(&wm8994->jackdet_bootstrap);
> + cancel_delayed_work_sync(&wm8994->mic_complete_work);
> + cancel_delayed_work_sync(&wm8994->mic_work);
Same issue here for mic_work.
--
Mark Brown <broonie@xxxxxxxxxx>