ASoC: mediatek: Assign dummy when codec not specified for a DAI link
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Wed, 13 Mar 2024 11:01:29 +0000 (12:01 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 25 Mar 2024 14:19:08 +0000 (14:19 +0000)
MediaTek sound card drivers are checking whether a DAI link is present
and used on a board to assign the correct parameters and this is done
by checking the codec DAI names at probe time.

If no real codec is present, assign the dummy codec to the DAI link
to avoid NULL pointer during string comparison.

Fixes: 4302187d955f ("ASoC: mediatek: common: add soundcard driver common code")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://msgid.link/r/20240313110147.1267793-5-angelogioacchino.delregno@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/common/mtk-soundcard-driver.c

index a58e1e3674deca03f71c28c3b38500375d2e5545..000a086a8cf44ded977db0d8d331019d56ebfedc 100644 (file)
@@ -22,7 +22,11 @@ static int set_card_codec_info(struct snd_soc_card *card,
 
        codec_node = of_get_child_by_name(sub_node, "codec");
        if (!codec_node) {
-               dev_dbg(dev, "%s no specified codec\n", dai_link->name);
+               dev_dbg(dev, "%s no specified codec: setting dummy.\n", dai_link->name);
+
+               dai_link->codecs = &snd_soc_dummy_dlc;
+               dai_link->num_codecs = 1;
+               dai_link->dynamic = 1;
                return 0;
        }