]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
ASoC: Intel: sof_sdw: warn both sdw and pch dmic are used
authorBard Liao <yung-chuan.liao@linux.intel.com>
Tue, 25 Feb 2025 09:37:16 +0000 (17:37 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 25 Feb 2025 12:39:09 +0000 (12:39 +0000)
Typically, SoundWire MIC and PCH DMIC will not coexist. However, we may
want to use both of them in some special cases. Add a warning to let
users know that SoundWire MIC and PCH DMIC are both present and they
could overwrite it with kernel params.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20250225093716.67240-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_sdw.c

index 203b07d4d833c56bb595a2fcdd79e8be576e31d2..c13064c77726158c1715d0ff49808200a040d549 100644 (file)
@@ -803,7 +803,9 @@ static int create_sdw_dailink(struct snd_soc_card *card,
                              int *be_id, struct snd_soc_codec_conf **codec_conf)
 {
        struct device *dev = card->dev;
+       struct snd_soc_acpi_mach *mach = dev_get_platdata(card->dev);
        struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
+       struct snd_soc_acpi_mach_params *mach_params = &mach->mach_params;
        struct intel_mc_ctx *intel_ctx = (struct intel_mc_ctx *)ctx->private;
        struct asoc_sdw_endpoint *sof_end;
        int stream;
@@ -900,6 +902,11 @@ static int create_sdw_dailink(struct snd_soc_card *card,
 
                        codecs[j].name = sof_end->codec_name;
                        codecs[j].dai_name = sof_end->dai_info->dai_name;
+                       if (sof_end->dai_info->dai_type == SOC_SDW_DAI_TYPE_MIC &&
+                           mach_params->dmic_num > 0) {
+                               dev_warn(dev,
+                                        "Both SDW DMIC and PCH DMIC are present, if incorrect, please set kernel params snd_sof_intel_hda_generic dmic_num=0 to disable PCH DMIC\n");
+                       }
                        j++;
                }