ASoC: sti: add missing probe entry for player and reader
authorJerome Audu <jau@free.fr>
Sat, 27 Jul 2024 13:40:15 +0000 (15:40 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 29 Jul 2024 12:36:56 +0000 (13:36 +0100)
This patch addresses a regression in the ASoC STI drivers that was
introduced in Linux version 6.6.y. The issue originated from a series of
patches (see https://lore.kernel.org/all/87wmy5b0wt.wl-kuninori.morimoto.gx@renesas.com/)
that unintentionally omitted necessary probe functions for the player
and reader components.

Probe function in `sound/soc/sti/sti_uniperif.c:415` is being replaced
by another probe function located at `sound/soc/sti/sti_uniperif.c:453`,
which should instead be derived from the player and reader components.
This patch correctly reinserts the missing probe entries,
restoring the intended functionality.

Fixes: 9f625f5e6cf9 ("ASoC: sti: merge DAI call back functions into ops")
Signed-off-by: Jerome Audu <jau@free.fr>
Link: https://patch.msgid.link/20240727-sti-audio-fix-v2-1-208bde546c3f@free.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sti/sti_uniperif.c
sound/soc/sti/uniperif.h
sound/soc/sti/uniperif_player.c
sound/soc/sti/uniperif_reader.c

index ba824f1..a7956e5 100644 (file)
@@ -352,7 +352,7 @@ static int sti_uniperiph_resume(struct snd_soc_component *component)
        return ret;
 }
 
-static int sti_uniperiph_dai_probe(struct snd_soc_dai *dai)
+int sti_uniperiph_dai_probe(struct snd_soc_dai *dai)
 {
        struct sti_uniperiph_data *priv = snd_soc_dai_get_drvdata(dai);
        struct sti_uniperiph_dai *dai_data = &priv->dai_data;
index 2a5de32..74e51f0 100644 (file)
@@ -1380,6 +1380,7 @@ int uni_reader_init(struct platform_device *pdev,
                    struct uniperif *reader);
 
 /* common */
+int sti_uniperiph_dai_probe(struct snd_soc_dai *dai);
 int sti_uniperiph_dai_set_fmt(struct snd_soc_dai *dai,
                              unsigned int fmt);
 
index dd9013c..6d1ce03 100644 (file)
@@ -1038,6 +1038,7 @@ static const struct snd_soc_dai_ops uni_player_dai_ops = {
                .startup = uni_player_startup,
                .shutdown = uni_player_shutdown,
                .prepare = uni_player_prepare,
+               .probe = sti_uniperiph_dai_probe,
                .trigger = uni_player_trigger,
                .hw_params = sti_uniperiph_dai_hw_params,
                .set_fmt = sti_uniperiph_dai_set_fmt,
index 065c5f0..05ea2b7 100644 (file)
@@ -401,6 +401,7 @@ static const struct snd_soc_dai_ops uni_reader_dai_ops = {
                .startup = uni_reader_startup,
                .shutdown = uni_reader_shutdown,
                .prepare = uni_reader_prepare,
+               .probe = sti_uniperiph_dai_probe,
                .trigger = uni_reader_trigger,
                .hw_params = sti_uniperiph_dai_hw_params,
                .set_fmt = sti_uniperiph_dai_set_fmt,