mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 01:05:29 +00:00
ASoC: amd: ps: Fix for enabling DMIC on acp63 platform via _DSD entry
Add condition check to register ACP PDM sound card by reading
_WOV acpi entry.
Fixes: 0386d765f2
("ASoC: amd: ps: refactor acp device configuration read logic")
Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20241213061147.1060451-1-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
78d4f34e21
commit
88438444fd
@ -375,11 +375,18 @@ static int get_acp63_device_config(struct pci_dev *pci, struct acp63_dev_data *a
|
||||
{
|
||||
struct acpi_device *pdm_dev;
|
||||
const union acpi_object *obj;
|
||||
acpi_handle handle;
|
||||
acpi_integer dmic_status;
|
||||
u32 config;
|
||||
bool is_dmic_dev = false;
|
||||
bool is_sdw_dev = false;
|
||||
bool wov_en, dmic_en;
|
||||
int ret;
|
||||
|
||||
/* IF WOV entry not found, enable dmic based on acp-audio-device-type entry*/
|
||||
wov_en = true;
|
||||
dmic_en = false;
|
||||
|
||||
config = readl(acp_data->acp63_base + ACP_PIN_CONFIG);
|
||||
switch (config) {
|
||||
case ACP_CONFIG_4:
|
||||
@ -412,10 +419,18 @@ static int get_acp63_device_config(struct pci_dev *pci, struct acp63_dev_data *a
|
||||
if (!acpi_dev_get_property(pdm_dev, "acp-audio-device-type",
|
||||
ACPI_TYPE_INTEGER, &obj) &&
|
||||
obj->integer.value == ACP_DMIC_DEV)
|
||||
is_dmic_dev = true;
|
||||
dmic_en = true;
|
||||
}
|
||||
|
||||
handle = ACPI_HANDLE(&pci->dev);
|
||||
ret = acpi_evaluate_integer(handle, "_WOV", NULL, &dmic_status);
|
||||
if (!ACPI_FAILURE(ret))
|
||||
wov_en = dmic_status;
|
||||
}
|
||||
|
||||
if (dmic_en && wov_en)
|
||||
is_dmic_dev = true;
|
||||
|
||||
if (acp_data->is_sdw_config) {
|
||||
ret = acp_scan_sdw_devices(&pci->dev, ACP63_SDW_ADDR);
|
||||
if (!ret && acp_data->info.link_mask)
|
||||
|
Loading…
Reference in New Issue
Block a user