]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
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 ba824f14a39cf39a9164cb0806094947a297f4dc..a7956e5a4ee5d1a2d0248ec1a90532fed022c13c 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 2a5de328501c192333187365794f49b09044dd93..74e51f0ff85c841dad9583b596587329baf6365a 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 dd9013c4766491af0980e74020c4dcfb4d4d17a2..6d1ce030963c628935b5762de6ae7d0c7da9f91c 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 065c5f0d1f5f00c65715ccde98360816ddbf67a9..05ea2b794eb92563d4a53ac66791ae6780796b6a 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,