]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: fsl_audmix: register card device depends on 'dais' property
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 26 Feb 2025 10:05:08 +0000 (18:05 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 3 Mar 2025 13:48:38 +0000 (13:48 +0000)
In order to make the audmix device linked by audio graph card, make
'dais' property to be optional.

If 'dais' property exists, then register the imx-audmix card driver.
otherwise, it should be linked by audio graph card.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20250226100508.2352568-5-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_audmix.c

index 3cd9a66b70a15707f960d976e7b604b86364db55..7981d598ba139bfd15ac49b707e6101c3ee02500 100644 (file)
@@ -488,11 +488,17 @@ static int fsl_audmix_probe(struct platform_device *pdev)
                goto err_disable_pm;
        }
 
-       priv->pdev = platform_device_register_data(dev, "imx-audmix", 0, NULL, 0);
-       if (IS_ERR(priv->pdev)) {
-               ret = PTR_ERR(priv->pdev);
-               dev_err(dev, "failed to register platform: %d\n", ret);
-               goto err_disable_pm;
+       /*
+        * If dais property exist, then register the imx-audmix card driver.
+        * otherwise, it should be linked by audio graph card.
+        */
+       if (of_find_property(pdev->dev.of_node, "dais", NULL)) {
+               priv->pdev = platform_device_register_data(dev, "imx-audmix", 0, NULL, 0);
+               if (IS_ERR(priv->pdev)) {
+                       ret = PTR_ERR(priv->pdev);
+                       dev_err(dev, "failed to register platform: %d\n", ret);
+                       goto err_disable_pm;
+               }
        }
 
        return 0;