From d7d3dc1dd345b505d2f02175464ff0b12e5ea37e Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Mon, 8 Jun 2026 01:24:43 +0000 Subject: [PATCH 1/6] ASoC: mediatek: cleanup mtk_sof_dailink_parse_of() param mtk_sof_dailink_parse_of() is using unnecessarily complicated parameters. Let's cleanup it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87h5ndesdg.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/common/mtk-dsp-sof-common.c | 13 ++++++------- sound/soc/mediatek/common/mtk-dsp-sof-common.h | 5 ++--- sound/soc/mediatek/common/mtk-soundcard-driver.c | 5 ++--- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/sound/soc/mediatek/common/mtk-dsp-sof-common.c b/sound/soc/mediatek/common/mtk-dsp-sof-common.c index fd10616a08a0..17b9ea6be604 100644 --- a/sound/soc/mediatek/common/mtk-dsp-sof-common.c +++ b/sound/soc/mediatek/common/mtk-dsp-sof-common.c @@ -228,11 +228,10 @@ int mtk_sof_card_late_probe(struct snd_soc_card *card) } EXPORT_SYMBOL_GPL(mtk_sof_card_late_probe); -int mtk_sof_dailink_parse_of(struct snd_soc_card *card, struct device_node *np, - const char *propname, struct snd_soc_dai_link *pre_dai_links, - int pre_num_links) +int mtk_sof_dailink_parse_of(struct device *dev, struct snd_soc_card *card, + const char *propname) { - struct device *dev = card->dev; + struct device_node *np = dev->of_node; struct snd_soc_dai_link *parsed_dai_link; const char *dai_name = NULL; int i, j, ret, num_links, parsed_num_links = 0; @@ -255,9 +254,9 @@ int mtk_sof_dailink_parse_of(struct snd_soc_card *card, struct device_node *np, return ret; } dev_dbg(dev, "ASoC: Property get dai_name:%s\n", dai_name); - for (j = 0; j < pre_num_links; j++) { - if (!strcmp(dai_name, pre_dai_links[j].name)) { - memcpy(&parsed_dai_link[parsed_num_links++], &pre_dai_links[j], + for (j = 0; j < card->num_links; j++) { + if (!strcmp(dai_name, card->dai_link[j].name)) { + memcpy(&parsed_dai_link[parsed_num_links++], &card->dai_link[j], sizeof(struct snd_soc_dai_link)); break; } diff --git a/sound/soc/mediatek/common/mtk-dsp-sof-common.h b/sound/soc/mediatek/common/mtk-dsp-sof-common.h index 8784ee471132..1a0a47d64761 100644 --- a/sound/soc/mediatek/common/mtk-dsp-sof-common.h +++ b/sound/soc/mediatek/common/mtk-dsp-sof-common.h @@ -36,8 +36,7 @@ int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hw_params *params); int mtk_sof_card_probe(struct snd_soc_card *card); int mtk_sof_card_late_probe(struct snd_soc_card *card); -int mtk_sof_dailink_parse_of(struct snd_soc_card *card, struct device_node *np, - const char *propname, struct snd_soc_dai_link *pre_dai_links, - int pre_num_links); +int mtk_sof_dailink_parse_of(struct device *dev, struct snd_soc_card *card, + const char *propname); #endif diff --git a/sound/soc/mediatek/common/mtk-soundcard-driver.c b/sound/soc/mediatek/common/mtk-soundcard-driver.c index cdff7322426a..24118217fe5c 100644 --- a/sound/soc/mediatek/common/mtk-soundcard-driver.c +++ b/sound/soc/mediatek/common/mtk-soundcard-driver.c @@ -275,9 +275,8 @@ int mtk_soundcard_common_probe(struct platform_device *pdev) if (adsp_node) { if (of_property_present(pdev->dev.of_node, "mediatek,dai-link")) { - ret = mtk_sof_dailink_parse_of(card, pdev->dev.of_node, - "mediatek,dai-link", - card->dai_link, card->num_links); + ret = mtk_sof_dailink_parse_of(&pdev->dev, card, + "mediatek,dai-link"); if (ret) { of_node_put(adsp_node); of_node_put(platform_node); From 1ddd7dcbc858a580449e8afa602df63456ad4c6b Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Mon, 8 Jun 2026 01:24:48 +0000 Subject: [PATCH 2/6] ASoC: mediatek: mtk-soundcard-driver: tidyup set_card_codec_info() set_card_codec_info() requests *card, but necessary is card->dev. Tidyup it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87fr2xesdc.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/common/mtk-soundcard-driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/soc/mediatek/common/mtk-soundcard-driver.c b/sound/soc/mediatek/common/mtk-soundcard-driver.c index 24118217fe5c..720216b32a0f 100644 --- a/sound/soc/mediatek/common/mtk-soundcard-driver.c +++ b/sound/soc/mediatek/common/mtk-soundcard-driver.c @@ -15,11 +15,10 @@ #include "mtk-soc-card.h" #include "mtk-soundcard-driver.h" -static int set_card_codec_info(struct snd_soc_card *card, +static int set_card_codec_info(struct device *dev, struct device_node *sub_node, struct snd_soc_dai_link *dai_link) { - struct device *dev = card->dev; struct device_node *codec_node; int ret; @@ -107,7 +106,7 @@ int parse_dai_link_info(struct snd_soc_card *card) if (i >= card->num_links) return -EINVAL; - ret = set_card_codec_info(card, sub_node, dai_link); + ret = set_card_codec_info(dev, sub_node, dai_link); if (ret < 0) return ret; From 7042c5dc12cae829238cd5fb0a7c372e8fb39cba Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Mon, 8 Jun 2026 01:24:52 +0000 Subject: [PATCH 3/6] ASoC: mediatek: mtk-soundcard-driver: tidyup set_dailink_daifmt() card is not used. Remove it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87ecihesd8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/common/mtk-soundcard-driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/soc/mediatek/common/mtk-soundcard-driver.c b/sound/soc/mediatek/common/mtk-soundcard-driver.c index 720216b32a0f..2d39ff23f854 100644 --- a/sound/soc/mediatek/common/mtk-soundcard-driver.c +++ b/sound/soc/mediatek/common/mtk-soundcard-driver.c @@ -44,8 +44,7 @@ static int set_card_codec_info(struct device *dev, return 0; } -static int set_dailink_daifmt(struct snd_soc_card *card, - struct device_node *sub_node, +static int set_dailink_daifmt(struct device_node *sub_node, struct snd_soc_dai_link *dai_link) { unsigned int daifmt; @@ -110,7 +109,7 @@ int parse_dai_link_info(struct snd_soc_card *card) if (ret < 0) return ret; - ret = set_dailink_daifmt(card, sub_node, dai_link); + ret = set_dailink_daifmt(sub_node, dai_link); if (ret < 0) return ret; } From e611c2ccf75f7c4c96b95084d2544f0ae23fd753 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Mon, 8 Jun 2026 01:24:55 +0000 Subject: [PATCH 4/6] ASoC: mediatek: mt8186-mt6366: tidyup mt8186_mt6366_card_set_be_link() mt8186_mt6366_card_set_be_link() requests *card, but necessary is card->dev. Tidyup it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87cxy1esd4.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/mt8186/mt8186-mt6366-common.c | 6 +++--- sound/soc/mediatek/mt8186/mt8186-mt6366-common.h | 2 +- sound/soc/mediatek/mt8186/mt8186-mt6366.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-common.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-common.c index e325d216c008..5a34d3f7fa58 100644 --- a/sound/soc/mediatek/mt8186/mt8186-mt6366-common.c +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-common.c @@ -39,7 +39,7 @@ int mt8186_mt6366_init(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL_GPL(mt8186_mt6366_init); -int mt8186_mt6366_card_set_be_link(struct snd_soc_card *card, +int mt8186_mt6366_card_set_be_link(struct device *dev, struct snd_soc_dai_link *link, struct device_node *node, char *link_name) @@ -47,9 +47,9 @@ int mt8186_mt6366_card_set_be_link(struct snd_soc_card *card, int ret; if (node && strcmp(link->name, link_name) == 0) { - ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link); + ret = snd_soc_of_get_dai_link_codecs(dev, node, link); if (ret < 0) - return dev_err_probe(card->dev, ret, "get dai link codecs fail\n"); + return dev_err_probe(dev, ret, "get dai link codecs fail\n"); } return 0; diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-common.h b/sound/soc/mediatek/mt8186/mt8186-mt6366-common.h index 907d8f5e46b1..2094e786c623 100644 --- a/sound/soc/mediatek/mt8186/mt8186-mt6366-common.h +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-common.h @@ -10,7 +10,7 @@ #define _MT8186_MT6366_COMMON_H_ int mt8186_mt6366_init(struct snd_soc_pcm_runtime *rtd); -int mt8186_mt6366_card_set_be_link(struct snd_soc_card *card, +int mt8186_mt6366_card_set_be_link(struct device *dev, struct snd_soc_dai_link *link, struct device_node *node, char *link_name); diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366.c b/sound/soc/mediatek/mt8186/mt8186-mt6366.c index 2c3033f305ea..3fc93a8ad408 100644 --- a/sound/soc/mediatek/mt8186/mt8186-mt6366.c +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366.c @@ -1178,21 +1178,21 @@ static int mt8186_mt6366_legacy_probe(struct mtk_soc_card_data *soc_card_data) } for_each_card_prelinks(card, i, dai_link) { - ret = mt8186_mt6366_card_set_be_link(card, dai_link, playback_codec, "I2S3"); + ret = mt8186_mt6366_card_set_be_link(dev, dai_link, playback_codec, "I2S3"); if (ret) { dev_err_probe(dev, ret, "%s set playback_codec fail\n", dai_link->name); break; } - ret = mt8186_mt6366_card_set_be_link(card, dai_link, headset_codec, "I2S0"); + ret = mt8186_mt6366_card_set_be_link(dev, dai_link, headset_codec, "I2S0"); if (ret) { dev_err_probe(dev, ret, "%s set headset_codec fail\n", dai_link->name); break; } - ret = mt8186_mt6366_card_set_be_link(card, dai_link, headset_codec, "I2S1"); + ret = mt8186_mt6366_card_set_be_link(dev, dai_link, headset_codec, "I2S1"); if (ret) { dev_err_probe(dev, ret, "%s set headset_codec fail\n", dai_link->name); From fd83ba0c7de698219eea6b4107d8c3fba86daf13 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Mon, 8 Jun 2026 01:24:59 +0000 Subject: [PATCH 5/6] ASoC: mediatek: mt8186-mt6366: use *dev in mt8186_mt6366_soc_card_probe() use *dev, instead of card->dev. No functional change, but is preparation for cleanup driver. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87bjdlesd0.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/mt8186/mt8186-mt6366.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366.c b/sound/soc/mediatek/mt8186/mt8186-mt6366.c index 3fc93a8ad408..22123b087c3c 100644 --- a/sound/soc/mediatek/mt8186/mt8186-mt6366.c +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366.c @@ -1211,18 +1211,18 @@ static int mt8186_mt6366_soc_card_probe(struct mtk_soc_card_data *soc_card_data, struct snd_soc_card *card = card_data->card; struct snd_soc_dai_link *dai_link; struct mt8186_mt6366_rt1019_rt5682s_priv *mach_priv; + struct device *dev = card->dev; int i, ret; - mach_priv = devm_kzalloc(card->dev, sizeof(*mach_priv), GFP_KERNEL); + mach_priv = devm_kzalloc(dev, sizeof(*mach_priv), GFP_KERNEL); if (!mach_priv) return -ENOMEM; soc_card_data->mach_priv = mach_priv; - mach_priv->dmic_sel = devm_gpiod_get_optional(card->dev, - "dmic", GPIOD_OUT_LOW); + mach_priv->dmic_sel = devm_gpiod_get_optional(dev, "dmic", GPIOD_OUT_LOW); if (IS_ERR(mach_priv->dmic_sel)) - return dev_err_probe(card->dev, PTR_ERR(mach_priv->dmic_sel), + return dev_err_probe(dev, PTR_ERR(mach_priv->dmic_sel), "DMIC gpio failed\n"); for_each_card_prelinks(card, i, dai_link) { @@ -1250,9 +1250,9 @@ static int mt8186_mt6366_soc_card_probe(struct mtk_soc_card_data *soc_card_data, return ret; } - ret = mt8186_afe_gpio_init(card->dev); + ret = mt8186_afe_gpio_init(dev); if (ret) - return dev_err_probe(card->dev, ret, "init AFE gpio error\n"); + return dev_err_probe(dev, ret, "init AFE gpio error\n"); return 0; } From c1530e7b8c035e6a80d193e9f6de37ed49f10614 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Mon, 8 Jun 2026 01:25:03 +0000 Subject: [PATCH 6/6] ASoC: mediatek: mt8365_mt6357: use *dev in mt8365_mt6357_gpio_probe() use *dev, instead of card->dev. No functional change, but is preparation for cleanup driver. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/87a4t5escw.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- sound/soc/mediatek/mt8365/mt8365-mt6357.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/soc/mediatek/mt8365/mt8365-mt6357.c b/sound/soc/mediatek/mt8365/mt8365-mt6357.c index a998fba82bfe..10f9ef73c130 100644 --- a/sound/soc/mediatek/mt8365/mt8365-mt6357.c +++ b/sound/soc/mediatek/mt8365/mt8365-mt6357.c @@ -247,26 +247,26 @@ 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 device *dev = card->dev; int ret, i; - priv->pinctrl = devm_pinctrl_get(card->dev); + priv->pinctrl = devm_pinctrl_get(dev); if (IS_ERR(priv->pinctrl)) { ret = PTR_ERR(priv->pinctrl); - return dev_err_probe(card->dev, ret, - "Failed to get pinctrl\n"); + return dev_err_probe(dev, ret, "Failed to get pinctrl\n"); } for (i = PIN_STATE_DEFAULT ; i < PIN_STATE_MAX ; i++) { priv->pin_states[i] = pinctrl_lookup_state(priv->pinctrl, mt8365_mt6357_pin_str[i]); if (IS_ERR(priv->pin_states[i])) { - dev_info(card->dev, "No pin state for %s\n", + dev_info(dev, "No pin state for %s\n", mt8365_mt6357_pin_str[i]); } else { ret = pinctrl_select_state(priv->pinctrl, priv->pin_states[i]); if (ret) { - dev_err_probe(card->dev, ret, + dev_err_probe(dev, ret, "Failed to select pin state %s\n", mt8365_mt6357_pin_str[i]); return ret;