diff options
| author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2026-06-26 05:37:45 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-07-03 16:46:47 +0100 |
| commit | 8aa079a408d0732b1bab9930d327bccf77cf7d0a (patch) | |
| tree | 25ee812fc7570fcce807520746baec12e31c81a5 | |
| parent | e08d63e63ac09826b0e78c55cb7faa2eb16872a1 (diff) | |
| download | linux-8aa079a408d0732b1bab9930d327bccf77cf7d0a.tar.gz linux-8aa079a408d0732b1bab9930d327bccf77cf7d0a.zip | |
ASoC: mediatek: mt8365-mt6357: tidyup mach_priv
It sets soc_card_data (1) in Card private data at (A), but the function (z)
after that gets it as priv (2) at (B). These are different data (*).
(z) static int mt8365_mt6357_gpio_probe(...)
{
(B) struct mt8365_mt6357_priv *priv = snd_soc_card_get_drvdata(card);
... ^^^^(2) ^^^^^^^^^^^
}
static int mt8365_mt6357_dev_probe(*soc_card_data, ...)
{ ^^^^^^^^^^^^^(1)
...
struct mt8365_mt6357_priv *mach_priv;
... ^^^^^^^^^(2)
(*) soc_card_data->mach_priv = mach_priv;
^^^^^^^^^^^^^(1) ^^^^^^^^^(2)
(A) snd_soc_card_set_drvdata(card, soc_card_data);
^^^^^^^^^^^ ^^^^^^^^^^^^^(1)
(z) mt8365_mt6357_gpio_probe(card);
...
}
Depending on the defined order in the struct (s), they may be the same
pointer, but mach_priv (2) is not top of soc_card_data (1), thus the
function (z) is getting wrong pointer. Fix it.
(1)
(s) struct mtk_soc_card_data {
const struct mtk_sof_priv *sof_priv;
...
void *mach_priv;
}; (2)
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87qzlteuae.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/mediatek/mt8365/mt8365-mt6357.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/soc/mediatek/mt8365/mt8365-mt6357.c b/sound/soc/mediatek/mt8365/mt8365-mt6357.c index 10f9ef73c130..38bd86b67ecc 100644 --- a/sound/soc/mediatek/mt8365/mt8365-mt6357.c +++ b/sound/soc/mediatek/mt8365/mt8365-mt6357.c @@ -71,7 +71,8 @@ static const struct snd_soc_dapm_route mt8365_mt6357_routes[] = { static int mt8365_mt6357_int_adda_startup(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct mt8365_mt6357_priv *priv = snd_soc_card_get_drvdata(rtd->card); + struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(rtd->card); + struct mt8365_mt6357_priv *priv = soc_card_data->mach_priv; int ret = 0; if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { @@ -102,7 +103,8 @@ static int mt8365_mt6357_int_adda_startup(struct snd_pcm_substream *substream) static void mt8365_mt6357_int_adda_shutdown(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct mt8365_mt6357_priv *priv = snd_soc_card_get_drvdata(rtd->card); + struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(rtd->card); + struct mt8365_mt6357_priv *priv = soc_card_data->mach_priv; int ret = 0; if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { @@ -246,7 +248,8 @@ static struct snd_soc_dai_link mt8365_mt6357_dais[] = { static int mt8365_mt6357_gpio_probe(struct snd_soc_card *card) { - struct mt8365_mt6357_priv *priv = snd_soc_card_get_drvdata(card); + struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card); + struct mt8365_mt6357_priv *priv = soc_card_data->mach_priv; struct device *dev = card->dev; int ret, i; |
