linux/sound
Mark Brown 980d97efdb
ASoC/soundwire/qdsp6/wcd: fix leaks and probe deferral
Merge series from Johan Hovold <johan+linaro@kernel.org>:

I've been hitting a race during boot which breaks probe of the sound
card on the Lenovo ThinkPad X13s as I've previously reported here:

	https://lore.kernel.org/all/ZIHMMFtuDtvdpFAZ@hovoldconsulting.com/

The immediate issue appeared to be a probe deferral that was turned into
a hard failure, but addressing that in itself only made things worse as
it exposed further bugs.

I was hoping someone more familiar with the code in question would look
into this, but as this affects users of the X13s and breaks audio on my
machine every fifth boot or so, I decided to investigate it myself.

As expected, the Qualcomm codec drivers are broken and specifically leak
resources on component remove, which in turn breaks sound card probe
deferrals.

The source of the deferral itself appears to be legitimate and was
simply due to some audio component not yet having been registered due to
random changes in timing during boot.

These issues can most easily be reproduced by simply blacklisting the
q6apm_dai module and loading it manually after boot.

Included are also two patches that suppresses error messages on
component probe deferral to avoid spamming the logs during boot.
2023-07-06 16:03:07 +01:00
..
ac97 ALSA: ac97: make remove callback of ac97 driver void returned 2023-01-25 09:34:20 +01:00
aoa Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
arm ALSA: pxa2xx: Convert to platform remove callback returning void 2023-03-20 13:07:00 +00:00
atmel ALSA: atmel: ac97: Convert to platform remove callback returning void 2023-03-20 13:07:01 +00:00
core ALSA: oss: avoid missing-prototype warnings 2023-05-17 16:56:09 +02:00
drivers ASoC: Updates for v6.4 2023-04-24 15:15:31 +02:00
firewire ALSA: firewire-digi00x: prevent potential use after free 2023-05-12 10:18:05 +02:00
hda ASoC: do not include pm_runtime.h if not used 2023-05-23 13:55:55 +01:00
i2c ALSA: i2c/cs8427: fix iec958 mixer control deactivation 2023-04-06 08:09:36 +02:00
isa ALSA: sb: Use DIV_ROUND_UP() instead of open-coding it 2022-09-29 08:11:55 +02:00
mips ALSA: mips/sgio2audio: Convert to platform remove callback returning void 2023-03-20 13:07:05 +00:00
oss sound: oss: dmasound: remove software_input_volume declaration 2022-09-09 09:11:06 +02:00
parisc
pci ES8316 audio codec fixes on Rock5B 2023-05-30 20:41:29 +01:00
pcmcia ALSA: pdaudiocf: Drop superfluous GFP setup 2022-08-24 08:00:26 +02:00
ppc ASoC: Updates for v6.4 2023-04-24 15:15:31 +02:00
sh ALSA: sh_dac_audio: Convert to platform remove callback returning void 2023-03-20 13:07:08 +00:00
soc ASoC/soundwire/qdsp6/wcd: fix leaks and probe deferral 2023-07-06 16:03:07 +01:00
sparc ALSA: sparc/dbri: Convert to platform remove callback returning void 2023-03-20 13:09:37 +00:00
spi
synth ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control() 2023-02-07 14:32:33 +01:00
usb ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go 2023-05-12 10:19:55 +02:00
virtio
x86
xen xen: make remove callback of xen driver void returned 2022-12-15 16:06:10 +01:00
ac97_bus.c ALSA: ac97: Remove redundant driver match function 2023-03-20 08:50:02 +01:00
Kconfig mfd: remove ucb1400 support 2023-02-01 17:23:38 +01:00
last.c
Makefile
sound_core.c driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00