OSDN Git Service

ASoC: Intel: sof_es8336: add cfg-dmics component for UCM support
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 8 Mar 2022 19:26:09 +0000 (13:26 -0600)
committerMark Brown <broonie@kernel.org>
Wed, 9 Mar 2022 13:30:38 +0000 (13:30 +0000)
The presence of DMICs needs to be signaled to UCM, follow the HDaudio
example and use the 'cfg-dmics' component string to report the number
of dmics present on the platform.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20220308192610.392950-20-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_es8336.c

index 32f5303..5e0529a 100644 (file)
@@ -459,6 +459,8 @@ devm_err:
        return NULL;
 }
 
+static char soc_components[30];
+
  /* i2c-<HID>:00 with HID being 8 chars */
 static char codec_name[SND_ACPI_I2C_ID_LEN];
 
@@ -594,6 +596,12 @@ static int sof_es8336_probe(struct platform_device *pdev)
 
        snd_soc_card_set_drvdata(card, priv);
 
+       if (mach->mach_params.dmic_num > 0) {
+               snprintf(soc_components, sizeof(soc_components),
+                        "cfg-dmics:%d", mach->mach_params.dmic_num);
+               card->components = soc_components;
+       }
+
        ret = devm_snd_soc_register_card(dev, card);
        if (ret) {
                gpiod_put(priv->gpio_pa);