Machine driver uses rpmsg channel name to link this platform component.
However if the component is re-registerd card will not find this new
created component in snd_soc_try_rebind_card().

Explicitly register this component with rpmsg channel name so that
card can always find this component.

Signed-off-by: Chancel Liu <chancel....@nxp.com>
---
 sound/soc/fsl/imx-pcm-rpmsg.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sound/soc/fsl/imx-pcm-rpmsg.c b/sound/soc/fsl/imx-pcm-rpmsg.c
index fb9244c1e9c5..2b9e4bb5e0f7 100644
--- a/sound/soc/fsl/imx-pcm-rpmsg.c
+++ b/sound/soc/fsl/imx-pcm-rpmsg.c
@@ -732,9 +732,6 @@ static int imx_rpmsg_pcm_probe(struct platform_device *pdev)
                goto fail;
        }
 
-       /* platform component name is used by machine driver to link with */
-       component->name = info->rpdev->id.name;
-
 #ifdef CONFIG_DEBUG_FS
        component->debugfs_prefix = "rpmsg";
 #endif
@@ -822,9 +819,17 @@ static const struct dev_pm_ops imx_rpmsg_pcm_pm_ops = {
                                imx_rpmsg_pcm_resume)
 };
 
+static const struct platform_device_id imx_rpmsg_pcm_id_table[] = {
+       { .name = "rpmsg-audio-channel" },
+       { .name = "rpmsg-micfil-channel" },
+       { }
+};
+MODULE_DEVICE_TABLE(platform, imx_rpmsg_pcm_id_table);
+
 static struct platform_driver imx_pcm_rpmsg_driver = {
        .probe  = imx_rpmsg_pcm_probe,
        .remove_new = imx_rpmsg_pcm_remove,
+       .id_table = imx_rpmsg_pcm_id_table,
        .driver = {
                .name = IMX_PCM_DRV_NAME,
                .pm = &imx_rpmsg_pcm_pm_ops,
-- 
2.43.0

Reply via email to