mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 15:41:36 +00:00
09068d624c
ACP pin configuration varies based on acp version.
ACP PCI driver should read the ACP PIN config value and based on config
value, it has to create a platform device in below two conditions.
1) If ACP PDM configuration is selected from BIOS and ACP PDM controller
exists.
2) If ACP I2S configuration is selected from BIOS.
Other than above scenarios, ACP PCI driver should skip the platform
device creation logic, i.e. ACP PCI driver probe sequence should never
fail if other acp pin configuration is selected. It should skip platform
device creation logic.
check_acp_pdm() function was implemented for ACP6.x platforms to check
ACP PDM configuration. Previously, this code was safe guarded by
FLAG_AMD_LEGACY_ONLY_DMIC flag check.
This implementation breaks audio use cases for Huawei Matebooks which are
based on ACP3.x varaint uses I2S configuration.
In current scenario, check_acp_pdm() function returns -ENODEV value
which results in ACP PCI driver probe failure without creating a platform
device even in case of valid ACP pin configuration.
Implement check_acp_config() as a common function which invokes platform
specific acp pin configuration check functions for ACP3.x, ACP6.0 & ACP6.3
& ACP7.0 variants and checks for ACP PDM controller.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218780
Fixes:
|
||
---|---|---|
.. | ||
adi | ||
amd | ||
apple | ||
atmel | ||
au1x | ||
bcm | ||
cirrus | ||
codecs | ||
dwc | ||
fsl | ||
generic | ||
hisilicon | ||
img | ||
intel | ||
jz4740 | ||
kirkwood | ||
loongson | ||
mediatek | ||
meson | ||
mxs | ||
pxa | ||
qcom | ||
rockchip | ||
samsung | ||
sh | ||
sof | ||
spear | ||
sprd | ||
starfive | ||
sti | ||
stm | ||
sunxi | ||
tegra | ||
ti | ||
uniphier | ||
ux500 | ||
xilinx | ||
xtensa | ||
Kconfig | ||
Makefile | ||
soc-ac97.c | ||
soc-acpi.c | ||
soc-card.c | ||
soc-component.c | ||
soc-compress.c | ||
soc-core.c | ||
soc-dai.c | ||
soc-dapm.c | ||
soc-devres.c | ||
soc-generic-dmaengine-pcm.c | ||
soc-jack.c | ||
soc-link.c | ||
soc-ops.c | ||
soc-pcm.c | ||
soc-topology-test.c | ||
soc-topology.c | ||
soc-utils-test.c | ||
soc-utils.c |