OpenCloudOS-Kernel/sound/soc/qcom
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
..
qdsp6 ASoC/soundwire/qdsp6/wcd: fix leaks and probe deferral 2023-07-06 16:03:07 +01:00
Kconfig ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE 2023-01-09 13:04:14 +00:00
Makefile ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE 2023-01-09 13:04:14 +00:00
apq8016_sbc.c ASoC: qcom: Update to use set_fmt_new callback 2022-06-06 12:33:42 +01:00
apq8096.c ASoC: qcom: apq8096: set driver name correctly 2023-02-01 10:25:07 +00:00
common.c ASoC: qcom: common: add default jack dapm pins 2023-06-22 18:02:07 +01:00
common.h ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE 2023-01-09 13:04:14 +00:00
lpass-apq8016.c ASoC: qcom: lpass: Fix apq8016 compat string to match yaml 2022-06-28 13:18:30 +01:00
lpass-cdc-dma.c ASoC: qcom: Add lpass CPU driver for codec dma control 2022-02-24 20:21:46 +00:00
lpass-cpu.c ASoC: qcom: lpass-cpu: Fix fallback SD line index handling 2023-01-01 22:34:07 +00:00
lpass-hdmi.c ASoC: qcom: lpass-hdmi: remove useless return 2021-03-10 13:01:49 +00:00
lpass-hdmi.h ASoC: qcom: Add support for lpass hdmi driver 2020-10-08 20:27:34 +01:00
lpass-ipq806x.c ASoC: qcom: lpass-ipq806x: fix bitwidth regmap field 2021-01-20 16:46:47 +00:00
lpass-lpaif-reg.h ASoC: qcom: Add register definition for codec rddma and wrdma 2022-02-24 20:21:42 +00:00
lpass-platform.c ASoC: qcom: lpass-platform: Use SNDRV_DMA_TYPE_NONCOHERENT page allocation 2023-01-25 14:24:02 +00:00
lpass-sc7180.c ASoC: use pm.h instead of runtime_pm.h 2023-05-23 13:55:56 +01:00
lpass-sc7280.c ASoC: use pm.h instead of runtime_pm.h 2023-05-23 13:55:56 +01:00
lpass.h ASoC: qcom: Add lpass CPU driver for codec dma control 2022-02-24 20:21:46 +00:00
sc7180.c ASoC: qcom: Update to use set_fmt_new callback 2022-06-06 12:33:42 +01:00
sc7280.c ASoC: qcom: SC7280: audioreach: Add sc7280 hardware param fixup callback 2023-06-19 12:58:57 +01:00
sc8280xp.c ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE 2023-01-09 13:04:14 +00:00
sdm845.c ASoC: qcom: sdm845: add remark about unneeded compatibles 2023-01-25 12:38:44 +00:00
sdw.c ASoC: qcom: sdw: do not restart soundwire ports for every prepare 2023-04-06 14:45:12 +01:00
sdw.h ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE 2023-01-09 13:04:14 +00:00
sm8250.c ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE 2023-01-09 13:04:14 +00:00
storm.c ASoC: qcom: Set card->owner to avoid warnings 2020-08-21 16:12:10 +01:00