[PATCH v3 0/4] Fix races on creation of SDCA jack detection

From: Charles Keepax

Date: Thu Jul 16 2026 - 10:50:30 EST


Currently there exists a couple races that can result in the DAPM graph
coming up in a state that doesn't match the hardware with respect to
SDCA jack detection. This series fixes these up by adding a component
level fixup_controls helper into the asoc core and shuffling around the
IRQ requests from the SDCA side.

Thanks,
Charles

Changes since v1:
- Clean up freeing of the interrupt name, Sashiko astutely pointed out
there was a memory leak there.
Changes since v2:
- Add back bus remove in the class driver, and split the IRQ free into
two functions.

Charles Keepax (4):
ASoC: Add a component fixup_controls callback
ASoC: SDCA: Populate IRQ data earlier
ASoC: SDCA: Add sdca_irq_cleanup_late()
ASoC: SDCA: Switch to fixup_controls callback for IRQ registration

include/sound/sdca_interrupts.h | 5 +
include/sound/soc-component.h | 2 +
sound/soc/sdca/sdca_class_function.c | 6 +-
sound/soc/sdca/sdca_interrupts.c | 157 ++++++++++++++-------------
sound/soc/sdca/sdca_jack.c | 44 ++++----
sound/soc/soc-component.c | 10 ++
sound/soc/soc-core.c | 5 +
7 files changed, 128 insertions(+), 101 deletions(-)

--
2.47.3