summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeyon Jie <yang.jie@linux.intel.com>2018-11-16 18:47:04 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-12-17 09:24:33 +0100
commita8657e68242772354aeaa0ccd0f35f1bcf1cceaa (patch)
tree0bd45bfaeb459441838da93994007ffa20569f33
parent2a031cab71cd9909fa659c96b6221d1fe33ad87f (diff)
ASoC: acpi: fix: continue searching when machine is ignored
[ Upstream commit a3e620f8422832afd832ad5e20aa97d0c72bada8 ] The machine_quirk may return NULL which means the acpi entries should be skipped and search for next matched entry is needed, here add return check here and continue for NULL case. Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--sound/soc/soc-acpi.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sound/soc/soc-acpi.c b/sound/soc/soc-acpi.c
index b8e72b52db30..4fb29f0e561e 100644
--- a/sound/soc/soc-acpi.c
+++ b/sound/soc/soc-acpi.c
@@ -10,11 +10,17 @@ struct snd_soc_acpi_mach *
snd_soc_acpi_find_machine(struct snd_soc_acpi_mach *machines)
{
struct snd_soc_acpi_mach *mach;
+ struct snd_soc_acpi_mach *mach_alt;
for (mach = machines; mach->id[0]; mach++) {
if (acpi_dev_present(mach->id, NULL, -1)) {
- if (mach->machine_quirk)
- mach = mach->machine_quirk(mach);
+ if (mach->machine_quirk) {
+ mach_alt = mach->machine_quirk(mach);
+ if (!mach_alt)
+ continue; /* not full match, ignore */
+ mach = mach_alt;
+ }
+
return mach;
}
}