ASoC: Intel: sof_sdw_rt722_sdca: set rtd_init in codec_info_list[]
authorBard Liao <yung-chuan.liao@linux.intel.com>
Tue, 26 Mar 2024 16:04:21 +0000 (11:04 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 26 Mar 2024 16:13:43 +0000 (16:13 +0000)
Add rt722 into rt_sdca_jack_rtd_init() supported list, and set
rtd_init callback directly in codec_info_list[]. No need to use a
init callback to set the rtd_init callback.
Besides, sof_sdw_rt_sdca_jack_init() doesn't set .rtd_init anymore.

Reviewed-by: Chao Song <chao.song@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240326160429.13560-27-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_sdw.c
sound/soc/intel/boards/sof_sdw_common.h
sound/soc/intel/boards/sof_sdw_rt722_sdca.c
sound/soc/intel/boards/sof_sdw_rt_sdca_jack_common.c

index 0e376cb0ce0b28d167ade220693fcc294e7b43d4..bb8429a834670148683b7cb21b939869c6af4d2e 100644 (file)
@@ -902,6 +902,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
                                .dailink = {SDW_JACK_OUT_DAI_ID, SDW_JACK_IN_DAI_ID},
                                .init = sof_sdw_rt_sdca_jack_init,
                                .exit = sof_sdw_rt_sdca_jack_exit,
+                               .rtd_init = rt_sdca_jack_rtd_init,
                        },
                        {
                                .direction = {true, false},
@@ -909,14 +910,14 @@ static struct sof_sdw_codec_info codec_info_list[] = {
                                .dai_type = SOF_SDW_DAI_TYPE_AMP,
                                /* No feedback capability is provided by rt722-sdca codec driver*/
                                .dailink = {SDW_AMP_OUT_DAI_ID, SDW_UNUSED_DAI_ID},
-                               .init = sof_sdw_rt722_spk_init,
+                               .rtd_init = rt722_spk_rtd_init,
                        },
                        {
                                .direction = {false, true},
                                .dai_name = "rt722-sdca-aif3",
                                .dai_type = SOF_SDW_DAI_TYPE_MIC,
                                .dailink = {SDW_UNUSED_DAI_ID, SDW_DMIC_DAI_ID},
-                               .init = sof_sdw_rt722_sdca_dmic_init,
+                               .rtd_init = rt722_sdca_dmic_rtd_init,
                        },
                },
                .dai_num = 3,
index 84715d9ca942496db2da08da506406281e921e6c..315b2a298195b800b5f69463de4272fbac605028 100644 (file)
@@ -157,18 +157,6 @@ int sof_sdw_rt_amp_init(struct snd_soc_card *card,
                        bool playback);
 int sof_sdw_rt_amp_exit(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link);
 
-/* RT722-SDCA support */
-int sof_sdw_rt722_spk_init(struct snd_soc_card *card,
-                          const struct snd_soc_acpi_link_adr *link,
-                          struct snd_soc_dai_link *dai_links,
-                          struct sof_sdw_codec_info *info,
-                          bool playback);
-int sof_sdw_rt722_sdca_dmic_init(struct snd_soc_card *card,
-                                const struct snd_soc_acpi_link_adr *link,
-                                struct snd_soc_dai_link *dai_links,
-                                struct sof_sdw_codec_info *info,
-                                bool playback);
-
 /* MAXIM codec support */
 int sof_sdw_maxim_init(struct snd_soc_card *card,
                       const struct snd_soc_acpi_link_adr *link,
@@ -194,6 +182,8 @@ int rt5682_rtd_init(struct snd_soc_pcm_runtime *rtd);
 int rt700_rtd_init(struct snd_soc_pcm_runtime *rtd);
 int rt711_rtd_init(struct snd_soc_pcm_runtime *rtd);
 int rt712_spk_rtd_init(struct snd_soc_pcm_runtime *rtd);
+int rt722_spk_rtd_init(struct snd_soc_pcm_runtime *rtd);
+int rt722_sdca_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd);
 int rt_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd);
 int rt_amp_spk_rtd_init(struct snd_soc_pcm_runtime *rtd);
 int rt_sdca_jack_rtd_init(struct snd_soc_pcm_runtime *rtd);
index fe3a2bff95bc7566f9812071cd6f25b11093232d..4947d16c70dbe49498f3dc002b1f6ca59021ac5e 100644 (file)
@@ -27,7 +27,7 @@ static const struct snd_kcontrol_new rt722_spk_controls[] = {
        SOC_DAPM_PIN_SWITCH("Speaker"),
 };
 
-static int rt722_spk_init(struct snd_soc_pcm_runtime *rtd)
+int rt722_spk_rtd_init(struct snd_soc_pcm_runtime *rtd)
 {
        struct snd_soc_card *card = rtd->card;
        int ret;
@@ -59,18 +59,7 @@ static int rt722_spk_init(struct snd_soc_pcm_runtime *rtd)
        return ret;
 }
 
-int sof_sdw_rt722_spk_init(struct snd_soc_card *card,
-                          const struct snd_soc_acpi_link_adr *link,
-                          struct snd_soc_dai_link *dai_links,
-                          struct sof_sdw_codec_info *info,
-                          bool playback)
-{
-       dai_links->init = rt722_spk_init;
-
-       return 0;
-}
-
-static int rt722_sdca_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd)
+int rt722_sdca_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd)
 {
        struct snd_soc_card *card = rtd->card;
        struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0);
@@ -84,14 +73,3 @@ static int rt722_sdca_dmic_rtd_init(struct snd_soc_pcm_runtime *rtd)
 
        return 0;
 }
-
-int sof_sdw_rt722_sdca_dmic_init(struct snd_soc_card *card,
-                                const struct snd_soc_acpi_link_adr *link,
-                                struct snd_soc_dai_link *dai_links,
-                                struct sof_sdw_codec_info *info,
-                                bool playback)
-{
-       dai_links->init = rt722_sdca_dmic_rtd_init;
-
-       return 0;
-}
index fe59a144efeffdaf0f1abb068196ddc94c4bce48..00677148548610fcb1e98443204b438231f92fc8 100644 (file)
@@ -85,7 +85,7 @@ static struct snd_soc_jack_pin rt_sdca_jack_pins[] = {
 };
 
 static const char * const jack_codecs[] = {
-       "rt711", "rt712", "rt713"
+       "rt711", "rt712", "rt713", "rt722"
 };
 
 int rt_sdca_jack_rtd_init(struct snd_soc_pcm_runtime *rtd)