On 23/05/2023 04:19, Trevor Wu wrote:
card_data = (struct mt8188_card_data *)of_device_get_match_data(&pdev->dev);
@@ -776,9 +1066,38 @@ static int mt8188_mt6359_dev_probe(struct platform_device *pdev)
dai_link->init = mt8188_mt6359_init;
init_mt6359 = true;
}
+ } else if (strcmp(dai_link->name, "ETDM1_OUT_BE") == 0 ||
+ strcmp(dai_link->name, "ETDM2_OUT_BE") == 0 ||
+ strcmp(dai_link->name, "ETDM1_IN_BE") == 0 ||
+ strcmp(dai_link->name, "ETDM2_IN_BE") == 0) {
+ if (!strcmp(dai_link->codecs->dai_name, MAX98390_CODEC_DAI)) {
+ dai_link->ops = &mt8188_max98390_ops;
+ if (init_max98390)
+ continue;
I prefer that you do like your patch [PATCH v2 1/7] to be consistent
and easy to read.
+ if (!init_mt6359) {
+ dai_link->init = mt8188_mt6359_init;
+ init_mt6359 = true;
+ }
+
+ dai_link->init = mt8188_max98390_codec_init;
+ init_max98390 = true;
+ } else if (!strcmp(dai_link->codecs->dai_name, NAU8825_CODEC_DAI)) {
+ dai_link->ops = &mt8188_nau8825_ops;
+ if (init_nau8825)
+ continue;
ditto
+
+ dai_link->init = mt8188_nau8825_codec_init;
+ dai_link->exit = mt8188_nau8825_codec_exit;
+ init_nau8825 = true;
+ } else {
+ if (strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) {
Shouldn't be with a NOT operator ("!") ?
+ if (!strcmp(dai_link->codecs->dai_name, "snd-soc-dummy-dai")) {
+ if (init_dumb)
+ continue;
ditto
+
+ dai_link->init = mt8188_dumb_amp_init;
+ init_dumb = true;
+ }
+ }
}
}
+ priv->private_data = card_data;
snd_soc_card_set_drvdata(card, priv);
ret = devm_snd_soc_register_card(&pdev->dev, card);
@@ -795,11 +1114,20 @@ static struct mt8188_card_data mt8188_evb_card = {
.name = "mt8188_mt6359",
};
+static struct mt8188_card_data mt8188_nau8825_card = {
+ .name = "mt8188_nau8825",
+ .quirk = NAU8825_HS_PRESENT,
+};
+
static const struct of_device_id mt8188_mt6359_dt_match[] = {
{
.compatible = "mediatek,mt8188-mt6359-evb",
.data = &mt8188_evb_card,
},
+ {
+ .compatible = "mediatek,mt8188-nau8825",
+ .data = &mt8188_nau8825_card,
+ },
{},
};
MODULE_DEVICE_TABLE(of, mt8188_mt6359_dt_match);
--
Regards,
Alexandre