RE: Re: [PATCH v2 4/4] ASoC: fsl: imx-rpmsg: Update to correct DT node

From: Chancel Liu
Date: Mon Mar 11 2024 - 04:23:54 EST


> On 11/03/2024 08:33, Chancel Liu wrote:
> >>> @@ -127,6 +126,22 @@ static int imx_rpmsg_probe(struct
> platform_device
> >> *pdev)
> >>> goto fail;
> >>> }
> >>>
> >>> + if (!strcmp(pdev->dev.platform_data, "rpmsg-micfil-channel"))
> >>> + np = of_find_node_by_name(NULL, "rpmsg_micfil");
> >>> + else
> >>> + np = of_find_node_by_name(NULL, "rpmsg_audio");
> >>
> >> Why do you create ABI on node names? Where is it documented? Why
> can't
> >> you use phandles?
> >>
> >> Best regards,
> >> Krzysztof
> >
> > Thanks for your reminder. Truly I shouldn't use undocumented bindings. I
> will
> > use “fsl,rpmsg-channel-name” to refine patch set. Please help review next
> > version.
>
> Instead of hard-coding node names in the driver you want to put it in
> "fsl,rpmsg-channel-name" property? I don't follow. I recommended instead
> using phandles, care to address that?

imx-rpmsg is ASoC machine driver and fsl_rpmsg is ASoC CPU DAI driver. In
imx-rpmsg, driver needs to get CPU DAI DT node for hardware configuration. So
imx-rpmsg needs some "information" to find the correct DT node. As you
recommended, it's not wise to use hard-coding node name. Also the device of
imx-rpmsg is created by imx-audio-rpmsg so it can't directly get phandle of CPU
DAI node.

Sorry for unclear statement. "fsl,rpmsg-channel-name" is the property of rpmsg
channel name. Each rpmsg sound card sits on one rpmsg channel. So I decide to
use rpmsg channel name to connect all parts of this sound card. If the CPU DAI
is registerd with rpmsg channel name then imx-rpmsg can easily get the DT node
by this name.

Regards,
Chancel Liu