ASoC: mediatek: mt8195-mt6359: Properly register sound card for SOF
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tue, 6 Sep 2022 09:27:23 +0000 (11:27 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 7 Sep 2022 11:40:48 +0000 (12:40 +0100)
Adding a probe callback on this snd_soc_card is required when
Sound Open Firmware support is desired, as we need to appropriately
populate the stream_name for SOF to be able to bind widgets.
Failing to do so will produce errors when applying the SOF topology
leading to card registration failure (so, no sound).
While at it, also make sure to fill the topology_shortname as required.

Fixes: 0caf1120c583 ("ASoC: mediatek: mt8195: extract SOF common code")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20220906092727.37324-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/mt8195/mt8195-mt6359.c

index c530e3fc27e43b7b2cec24a48b5803f4c3e8940d..961e769602d6a45de4adf6925f2edc70053c38ba 100644 (file)
@@ -1383,7 +1383,13 @@ static int mt8195_mt6359_dev_probe(struct platform_device *pdev)
                sof_priv->num_streams = ARRAY_SIZE(g_sof_conn_streams);
                sof_priv->sof_dai_link_fixup = mt8195_dai_link_fixup;
                soc_card_data->sof_priv = sof_priv;
+               card->probe = mtk_sof_card_probe;
                card->late_probe = mtk_sof_card_late_probe;
+               if (!card->topology_shortname_created) {
+                       snprintf(card->topology_shortname, 32, "sof-%s", card->name);
+                       card->topology_shortname_created = true;
+               }
+               card->name = card->topology_shortname;
                sof_on = 1;
        }