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
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]