From 3e021f3b8115614127dd04c5615ccbcc2706bdd5 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Wed, 16 Apr 2025 06:27:10 +0000 Subject: [PATCH 1/3] ASoC: soc-utils: add snd_soc_dlc_is_dummy() We have snd_soc_xxx_is_dummy() functions, but not for dlc. Let's add it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87cydc8vup.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- include/sound/soc.h | 2 +- sound/soc/soc-utils.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/sound/soc.h b/include/sound/soc.h index 952ed77b8c87..21903984af49 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -935,7 +935,7 @@ snd_soc_link_to_platform(struct snd_soc_dai_link *link, int n) { extern struct snd_soc_dai_link_component null_dailink_component[0]; extern struct snd_soc_dai_link_component snd_soc_dummy_dlc; - +int snd_soc_dlc_is_dummy(struct snd_soc_dai_link_component *dlc); struct snd_soc_codec_conf { /* diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c index 5e3e4f14c392..a1bcc852a6de 100644 --- a/sound/soc/soc-utils.c +++ b/sound/soc/soc-utils.c @@ -262,6 +262,19 @@ struct snd_soc_dai_link_component snd_soc_dummy_dlc = { }; EXPORT_SYMBOL_GPL(snd_soc_dummy_dlc); +int snd_soc_dlc_is_dummy(struct snd_soc_dai_link_component *dlc) +{ + if (dlc == &snd_soc_dummy_dlc) + return true; + + if (strcmp(dlc->name, snd_soc_dummy_dlc.name) == 0 || + strcmp(dlc->dai_name, snd_soc_dummy_dlc.dai_name) == 0) + return true; + + return false; +} +EXPORT_SYMBOL_GPL(snd_soc_dlc_is_dummy); + static int snd_soc_dummy_probe(struct faux_device *fdev) { int ret; From bf2a7ff888e080e4fd71cb4d28798fef836d7d73 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Wed, 16 Apr 2025 06:27:15 +0000 Subject: [PATCH 2/3] ASoC: mediatek: mt8188: use snd_soc_dlc_is_dummy() We can use snd_soc_dlc_is_dummy(). Let's use it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87bjsw8vuk.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/mt8188/mt8188-mt6359.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c b/sound/soc/mediatek/mt8188/mt8188-mt6359.c index 20dc9470ba76..a2a76b6df631 100644 --- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c +++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c @@ -1333,11 +1333,11 @@ static int mt8188_mt6359_soc_card_probe(struct mtk_soc_card_data *soc_card_data, for_each_card_prelinks(card, i, dai_link) { if (strcmp(dai_link->name, "DPTX_BE") == 0) { if (dai_link->num_codecs && - strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) + !snd_soc_dlc_is_dummy(dai_link->codecs)) dai_link->init = mt8188_dptx_codec_init; } else if (strcmp(dai_link->name, "ETDM3_OUT_BE") == 0) { if (dai_link->num_codecs && - strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) + !snd_soc_dlc_is_dummy(dai_link->codecs)) dai_link->init = mt8188_hdmi_codec_init; } else if (strcmp(dai_link->name, "DL_SRC_BE") == 0 || strcmp(dai_link->name, "UL_SRC_BE") == 0) { @@ -1387,7 +1387,7 @@ static int mt8188_mt6359_soc_card_probe(struct mtk_soc_card_data *soc_card_data, init_es8326 = true; } } else { - if (strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) { + if (!snd_soc_dlc_is_dummy(dai_link->codecs)) { if (!init_dumb) { dai_link->init = mt8188_dumb_amp_init; init_dumb = true; From fed0805ffd76161ed8c056ea30b36550eda8e106 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Wed, 16 Apr 2025 06:27:22 +0000 Subject: [PATCH 3/3] ASoC: mediatek: mt8195: use snd_soc_dlc_is_dummy() We can use snd_soc_dlc_is_dummy(). Let's use it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87a58g8vue.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/mt8195/mt8195-mt6359.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/mediatek/mt8195/mt8195-mt6359.c b/sound/soc/mediatek/mt8195/mt8195-mt6359.c index df29a9fa5aee..85954083f40a 100644 --- a/sound/soc/mediatek/mt8195/mt8195-mt6359.c +++ b/sound/soc/mediatek/mt8195/mt8195-mt6359.c @@ -1379,11 +1379,11 @@ static int mt8195_mt6359_soc_card_probe(struct mtk_soc_card_data *soc_card_data, for_each_card_prelinks(card, i, dai_link) { if (strcmp(dai_link->name, "DPTX_BE") == 0) { if (dai_link->num_codecs && - strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) + !snd_soc_dlc_is_dummy(dai_link->codecs)) dai_link->init = mt8195_dptx_codec_init; } else if (strcmp(dai_link->name, "ETDM3_OUT_BE") == 0) { if (dai_link->num_codecs && - strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) + !snd_soc_dlc_is_dummy(dai_link->codecs)) dai_link->init = mt8195_hdmi_codec_init; } else if (strcmp(dai_link->name, "DL_SRC_BE") == 0 || strcmp(dai_link->name, "UL_SRC1_BE") == 0 || @@ -1423,7 +1423,7 @@ static int mt8195_mt6359_soc_card_probe(struct mtk_soc_card_data *soc_card_data, codec_init |= RT5682_CODEC_INIT; } } else { - if (strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) { + if (!snd_soc_dlc_is_dummy(dai_link->codecs)) { if (!(codec_init & DUMB_CODEC_INIT)) { dai_link->init = mt8195_dumb_amp_init; codec_init |= DUMB_CODEC_INIT;