ASoC: imx-rpmsg: Assign platform driver used by machine driver to link with
authorChancel Liu <chancel.liu@nxp.com>
Fri, 30 Sep 2022 06:44:41 +0000 (14:44 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 17 Oct 2022 11:48:18 +0000 (12:48 +0100)
Each ASoC platform driver is named by rpmsg channel. ASoC machine
driver can parse "fsl,rpmsg-channel-name" property to figure out which
ASoC platform driver it should link with.

Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Link: https://lore.kernel.org/r/20220930064441.2548505-8-chancel.liu@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/imx-rpmsg.c

index 4d99f4858a14f51b33882f4acc89c3bbd06dbfec..89178106fe2c9e6f6e4b771c4d2a23758ef0aaee 100644 (file)
@@ -58,6 +58,7 @@ static int imx_rpmsg_probe(struct platform_device *pdev)
        struct platform_device *rpmsg_pdev = to_platform_device(dev);
        struct device_node *np = rpmsg_pdev->dev.of_node;
        struct of_phandle_args args;
+       const char *platform_name;
        struct imx_rpmsg *data;
        int ret = 0;
 
@@ -109,7 +110,10 @@ static int imx_rpmsg_probe(struct platform_device *pdev)
        }
 
        data->dai.cpus->dai_name = dev_name(&rpmsg_pdev->dev);
-       data->dai.platforms->name = IMX_PCM_DRV_NAME;
+       if (!of_property_read_string(np, "fsl,rpmsg-channel-name", &platform_name))
+               data->dai.platforms->name = platform_name;
+       else
+               data->dai.platforms->name = "rpmsg-audio-channel";
        data->dai.playback_only = true;
        data->dai.capture_only = true;
        data->card.num_links = 1;