Re: [meta-freescale] linux-fsl 5.10 kernels don't appear to have multi-lane in sound/soc/fsl/fsl_sai.c

Brian Hutchinson <[email protected]> Wed, 27 Oct 2021 08:45:28 -0400
Newsgroups org.yoctoproject.lists.meta-freescale
Message-ID <CAFZh4h_zOkL=QH8DpSQ1W_2DkoVcuPkEnpnn7hO1bGOwuNddqw@mail.gmail.com>
On Wed, Oct 27, 2021 at 8:18 AM Fabio Estevam <[email protected]> wrote:

> Hi Brian,
>
> On Tue, Oct 26, 2021 at 11:10 AM Brian Hutchinson <[email protected]>
> wrote:
> >
> >
> >
> > On Tue, Oct 26, 2021 at 10:07 AM Brian Hutchinson via
> lists.yoctoproject.org <[email protected]>
> wrote:
> >>
> >> Hi,
> >>
> >> First, forgive me for posting a link in an post with no context ... I
> hit a wrong button and accidentally sent before ready.
> >>
> >> Bottom line up front.  How can I get a 5.10 kernel with multi-lane
> support for IMX8MM?
> >>
> >> We use linux-fsl 5.4 on a IMXMM based board and have recently stepped
> up to linux-fsl 5.10 and the sound/fsl/fsl_sai.c has no support for
> "multi-lane" anymore which breaks our code.
> >>
> >> I figure this is simply a case where things in linux-imx are new and
> just not picked up in linux-fslc yet but wondering if it's possible to get
> multi-lane support in a 5.10 kernel for the IMX8MM.
> >>
> >> I still don't quite fully understand how all the releases work, the
> linux-imx releases appear to be for newer boards and don't necessarily
> support the older boards from what I'm seeing.
> >>
> >> Thanks for any advice/guidance.
> >>
> >> Regards,
> >>
> >> Brian
> >
> >
> > And that link I accidentally posted by itself
> https://source.codeaurora.org/external/imx/linux-imx/tree/sound/soc/fsl/fsl_sai.c?h=lf-5.10.y
> >
> > ... is the reference I mentioned where I see multi-lane support in
> linux-imx 5.10.
>
> With the mainline SAI driver, it is possible to use several channels.
> Not sure what you mean by "multi-lane" in your use-case.
>
> Please check:
> https://bootlin.com/blog/eight-channels-audio-on-i-mx7-with-pcm3168/


I hoped folks would know what I was talking about without getting too far
into the weeds.  But I guess I need to explain more.

The older 5.4 kernels (and even 4 series kernels) had a imx8mm-evk.dts sai
section that looked like this:

&sai1 {
       pinctrl-names = "default";
       pinctrl-0 = <&pinctrl_sai1>;
       assigned-clocks = <&clk IMX8MM_CLK_SAI1>;
       assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
       assigned-clock-rates = <24576000>;
       clocks = <&clk IMX8MM_CLK_SAI1_IPG>, <&clk IMX8MM_CLK_DUMMY>,
               <&clk IMX8MM_CLK_SAI1_ROOT>, <&clk IMX8MM_CLK_DUMMY>,
               <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_AUDIO_PLL1_OUT>,
               <&clk IMX8MM_AUDIO_PLL2_OUT>;
       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k",
"pll11k";
       fsl,sai-multi-lane;
       fsl,dataline,dsd = <0 0xff 0xff 2 0xff 0x11>;
       fsl,sai-synchronous-rx;
       dmas = <&sdma2 0 25 0>, <&sdma2 1 25 0>;
       #sound-dai-cells = <0>;
       status = "okay";
};

... which has fsl,sai-multi-lane support.

The current linux-fslc 5.10 kernel does not have fsl,sai-multi-lane support.

If you look at the linux-imx 5.10 link I posted before ... they do have the
multi-lane support I'm looking for (in sounds/soc/fsl/fsl_sai.c) but kinda
don't want to switch back to linux-imx.  So my ask is how can I get
linux-fslc 5.10 with multi-lane support?

Apparently the yocto build has changed again.  It used to be linux-imx was
built by default, now it looks like linux-fslc is built by default even
when I check out NXP's latest harpoon release which was supposed to have
5.10 ... and it does have recipes for 5.10 but 5.4 linux-fslc builds by
default so I got some catching up to do to figure out how to select between
the various kernels but I'm getting into side issues.

My main need is getting fsl,sai-multi-lane back in linux-fslc 5.10 since we
moved away from linux-imx over a year ago.

Hopefully that better explains where I'm coming from and what my issue is.

Regards,

Brian