ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink
authorBard Liao <yung-chuan.liao@linux.intel.com>
Wed, 27 Oct 2021 02:18:20 +0000 (10:18 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 15 Nov 2021 13:26:55 +0000 (13:26 +0000)
We can apply the fixed dai link id for DMICs in create_sdw_dailink().
No need to set it in each DMIC's callback.
The fixed dai link id is not only for rt715 and rt715-sdca, but for all
DMICs, therefore we remove the SOF_RT715_DAI_ID_FIX check as well.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20211027021824.24776-7-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_sdw.c
sound/soc/intel/boards/sof_sdw_rt715.c
sound/soc/intel/boards/sof_sdw_rt715_sdca.c

index 1be5c47..b00c173 100644 (file)
@@ -984,6 +984,14 @@ static int create_sdw_dailink(struct snd_soc_card *card,
            *link_id < SDW_AMP_DAI_ID)
                *link_id = SDW_AMP_DAI_ID;
 
+       /*
+        * DAI ID is fixed at SDW_DMIC_DAI_ID for MICs to
+        * keep sdw DMIC and HDMI setting static in UCM
+        */
+       if (codec_info_list[codec_index].codec_type == SOF_SDW_CODEC_TYPE_MIC &&
+           *link_id < SDW_DMIC_DAI_ID)
+               *link_id = SDW_DMIC_DAI_ID;
+
        cpu_dai_index = *cpu_id;
        for_each_pcm_streams(stream) {
                char *name, *cpu_name;
index c8af378..7c068dc 100644 (file)
@@ -30,13 +30,6 @@ int sof_sdw_rt715_init(struct snd_soc_card *card,
                       struct sof_sdw_codec_info *info,
                       bool playback)
 {
-       /*
-        * DAI ID is fixed at SDW_DMIC_DAI_ID for 715 to
-        * keep sdw DMIC and HDMI setting static in UCM
-        */
-       if (sof_sdw_quirk & SOF_RT715_DAI_ID_FIX)
-               dai_links->id = SDW_DMIC_DAI_ID;
-
        dai_links->init = rt715_rtd_init;
 
        return 0;
index 85d3d8c..ca0cf3d 100644 (file)
@@ -30,13 +30,6 @@ int sof_sdw_rt715_sdca_init(struct snd_soc_card *card,
                            struct sof_sdw_codec_info *info,
                            bool playback)
 {
-       /*
-        * DAI ID is fixed at SDW_DMIC_DAI_ID for 715-SDCA to
-        * keep sdw DMIC and HDMI setting static in UCM
-        */
-       if (sof_sdw_quirk & SOF_RT715_DAI_ID_FIX)
-               dai_links->id = SDW_DMIC_DAI_ID;
-
        dai_links->init = rt715_sdca_rtd_init;
 
        return 0;