ASoC: core: support driver alias names for FE topology overrides
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Sat, 2 Mar 2019 01:08:51 +0000 (19:08 -0600)
committerMark Brown <broonie@kernel.org>
Tue, 2 Apr 2019 05:57:25 +0000 (12:57 +0700)
When the same machine driver is reused between platforms but with a
different alias, using the driver name is not enough. Add additional
fallback case to use the card device name.

Tested on GeminiLake with bxt_da7219_max98357a machine driver

Suggested-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-core.c

index d887576..6f48429 100644 (file)
@@ -1974,10 +1974,13 @@ static void soc_check_tplg_fes(struct snd_soc_card *card)
                        continue;
 
                /* for this machine ? */
+               if (!strcmp(component->driver->ignore_machine,
+                           card->dev->driver->name))
+                       goto match;
                if (strcmp(component->driver->ignore_machine,
-                          card->dev->driver->name))
+                          dev_name(card->dev)))
                        continue;
-
+match:
                /* machine matches, so override the rtd data */
                for_each_card_prelinks(card, i, dai_link) {