summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2026-06-26 05:37:45 +0000
committerMark Brown <broonie@kernel.org>2026-07-03 16:46:47 +0100
commit8aa079a408d0732b1bab9930d327bccf77cf7d0a (patch)
tree25ee812fc7570fcce807520746baec12e31c81a5
parente08d63e63ac09826b0e78c55cb7faa2eb16872a1 (diff)
downloadlinux-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.c9
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;