OpenCloudOS-Kernel/sound/soc/qcom/qdsp6
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
..
Makefile ASoC: qdsp6: audioreach: add support for q6prm-clocks 2021-10-26 13:50:12 +01:00
audioreach.c ASoC: q6dsp: audioreach: Add gapless feature support 2023-06-19 12:59:02 +01:00
audioreach.h ASoC: q6dsp: audioreach: Add gapless feature support 2023-06-19 12:59:02 +01:00
q6adm.c ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp() 2022-07-21 13:38:55 +01:00
q6adm.h ASoC: qdsp6: q6adm: Add q6adm driver 2018-05-21 16:40:24 +01:00
q6afe-clocks.c ASoC: qdsp6: q6afe-clocks: move audio-clocks to common file 2021-10-26 13:49:59 +01:00
q6afe-dai.c ASoC: qcom: q6afe-dai: fix Display Port Playback stream name 2023-07-05 14:53:46 +01:00
q6afe.c ASoC: qcom: Update to use set_fmt_new callback 2022-06-06 12:33:42 +01:00
q6afe.h ASoC: qdsp6: q6afe: Add Quinary MI2S ports 2021-06-15 16:39:38 +01:00
q6apm-dai.c ASoC: qdsp6: q6apm: use dai link pcm id as pcm device number 2023-06-30 14:53:48 +01:00
q6apm-lpass-dais.c ASoC: qcom: q6apm: add support to display ports in lpass dais 2023-05-11 10:19:06 +09:00
q6apm.c ASoC: qcom: q6apm: do not close GPR port before closing graph 2023-07-06 13:46:38 +01:00
q6apm.h ASoC: q6dsp: q6apm-dai: Add trigger/pointer compress DAI callbacks 2023-06-19 12:59:05 +01:00
q6asm-dai.c ASoC: qcom: Migrate to new style legacy DAI naming flag 2022-06-27 13:16:36 +01:00
q6asm.c ASoC: q6asm: use kcalloc() instead of kzalloc() 2022-07-28 11:59:10 +01:00
q6asm.h ASoC: qcom: q6asm: align function prototypes 2021-03-10 13:01:54 +00:00
q6core.c soc: qcom: apr: make remove callback of apr driver void returned 2023-01-06 11:50:13 -06:00
q6core.h
q6dsp-common.c ASoC: qcom: q6dsp-common: move channel allocation to common 2023-05-11 10:19:03 +09:00
q6dsp-common.h ASoC: qcom: q6dsp-common: move channel allocation to common 2023-05-11 10:19:03 +09:00
q6dsp-errno.h
q6dsp-lpass-clocks.c ASoC: qdsp6: q6afe-clocks: move audio-clocks to common file 2021-10-26 13:49:59 +01:00
q6dsp-lpass-clocks.h ASoC: qdsp6: q6afe-clocks: move audio-clocks to common file 2021-10-26 13:49:59 +01:00
q6dsp-lpass-ports.c ASoC: qcom: q6dsp: add support to more display ports 2023-05-11 10:19:05 +09:00
q6dsp-lpass-ports.h ASoC: qdsp6: q6afe-dai: move lpass audio ports to common file 2021-10-26 13:49:58 +01:00
q6prm-clocks.c ASoC: qcom: qdsp6: q6prm: add new clocks 2022-08-17 13:00:28 +01:00
q6prm.c ASoC: qcom: q6prm: fix incorrect clk_root passed to ADSP 2023-03-05 23:36:37 +00:00
q6prm.h ASoC: qcom: qdsp6: q6prm: add new clocks 2022-08-17 13:00:28 +01:00
q6routing.c ASoC: qcom: qdsp6: Convert to platform remove callback returning void 2023-03-20 13:08:47 +00:00
q6routing.h ASoC: qdsp6: q6routing: Add q6routing driver 2018-05-21 16:41:48 +01:00
topology.c ASoC: qdsp6: audioreach: fix topology probe deferral 2023-07-06 13:46:24 +01:00