On 26/02/2024 15:01, amergnat@xxxxxxxxxxxx wrote: > From: Nicolas Belin <nbelin@xxxxxxxxxxxx> > > Add a specific soundcard for mt8365-evk. It supports audio jack > in/out, dmics, the amic and lineout. > > Signed-off-by: Nicolas Belin <nbelin@xxxxxxxxxxxx> > Signed-off-by: Alexandre Mergnat <amergnat@xxxxxxxxxxxx> ... > +static int mt8365_mt6357_dev_probe(struct platform_device *pdev) > +{ > + struct snd_soc_card *card = &mt8365_mt6357_card; > + struct device *dev = &pdev->dev; > + struct device_node *platform_node; > + struct mt8365_mt6357_priv *priv; > + int i, ret; > + > + card->dev = dev; > + ret = parse_dai_link_info(card); > + if (ret) > + goto err; > + > + platform_node = of_parse_phandle(dev->of_node, "mediatek,platform", 0); > + if (!platform_node) { > + dev_err(dev, "Property 'platform' missing or invalid\n"); > + return -EINVAL; > + } > + > + for (i = 0; i < card->num_links; i++) { > + if (mt8365_mt6357_dais[i].platforms->name) > + continue; > + mt8365_mt6357_dais[i].platforms->of_node = platform_node; > + } > + > + priv = devm_kzalloc(dev, sizeof(struct mt8365_mt6357_priv), > + GFP_KERNEL); > + if (!priv) { > + ret = -ENOMEM; > + dev_err(dev, "%s allocate card private data fail %d\n", > + __func__, ret); Don't print anything on memory allocations failures. Run coccinelle/coccicheck to detect such trivial issues. > + return ret; > + } > + > + snd_soc_card_set_drvdata(card, priv); > + > + mt8365_mt6357_gpio_probe(card); > + > + ret = devm_snd_soc_register_card(dev, card); > + if (ret) > + dev_err(dev, "%s snd_soc_register_card fail %d\n", > + __func__, ret); > +err: > + of_node_put(platform_node); > + clean_card_reference(card); > + return ret; > +} > + > +static const struct of_device_id mt8365_mt6357_dt_match[] = { > + { .compatible = "mediatek,mt8365-mt6357", }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, mt8365_mt6357_dt_match); > + > +static struct platform_driver mt8365_mt6357_driver = { > + .driver = { > + .name = "mt8365_mt6357", > + .of_match_table = mt8365_mt6357_dt_match, > + .pm = &snd_soc_pm_ops, > + }, > + .probe = mt8365_mt6357_dev_probe, > +}; > + > +module_platform_driver(mt8365_mt6357_driver); > + > +/* Module information */ > +MODULE_DESCRIPTION("MT8365 EVK SoC machine driver"); > +MODULE_AUTHOR("Nicolas Belin <nbelin@xxxxxxxxxxxx>"); > +MODULE_LICENSE("GPL"); > +MODULE_ALIAS("mt8365 mt6357 soc card"); This does not look like correct alias. Drop. > Best regards, Krzysztof