[alsa-devel] Multiple codecs on one sound card for multi-channel sound card

Yann CARDAILLAC yann.cardaillac at smile.fr
Tue Feb 12 11:55:56 CET 2019


Hi guys,

Where are we now with TDM on several codecs on the same TDM channel ?
I'm sorry to dig out this old thread but I couldn't really find any
proper information about that.

I only plan to use 4 channel TDM with two codecs. I'm using IMX6's SSI
as master for both codec.

What I've got working today is 1 codec with ssi as I2S master.

Do you have any pointer on what is achieved so far and how to implement it ?

I'm using kernel *v4.14.78*.

Any pointer to DTS achieving that or audio card doing that kind of
thing would already be an amazing first hint.!

Regards,

Yann

>Got it.  Thanks Arnaud.

>-Caleb
>

>On Thu, Sep 17, 2015 at 9:09 AM, arnaud.mouiche at invoxia.com <http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>
><arnaud.mouiche at invoxia.com <http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>> wrote:
>>>>>*> Le 17/09/2015 17:34, Caleb Crome a écrit :
*>>>>>>* On Thu, Sep 17, 2015 at 7:33 AM, arnaud.mouiche at
invoxia.com <http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>
*>>>* <arnaud.mouiche at invoxia.com
<http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>> wrote:
*>>>>>>>>* hello,
*>>>>>>>*> Le 17/09/2015 15:38, Caleb Crome a écrit :
*>>>>>>>>>>* On Thu, Sep 17, 2015 at 1:51 AM, arnaud.mouiche at
invoxia.com <http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>
*>>>>>* <arnaud.mouiche at invoxia.com
<http://mailman.alsa-project.org/mailman/listinfo/alsa-devel>> wrote:
*>>>>>>>>>>>>* Hello Caleb,
*>>>>>>>>>>>>* freescale SSI is fine with more than 2 channels.
*>>>>>>* I have planed to publish a set of patch in this direction but we still
*>>>>>>* have
*>>>>>>* some corner cases to fix first (rare issues with channels alignment)
*>>>>>>>>>>* I'd love to see anything you're willing to show :-)
*>>>>>>>>>>>* Yet, this following is far enough to have it working.
*>>>>>>* And since the max/min rate is at the end the intersection of what the
*>>>>>>* SSI,
*>>>>>>* the codec and the card are declaring, it will not change anything until
*>>>>>>* you
*>>>>>>* connect the SSI to a codec with more than 2 channels, or a multi-codec
*>>>>>>* solution.
*>>>>*>
*>>>>* What if I change channels_max to 16 for capture and playback?  Last
*>>>>>* time I tried, it would not keep the channels synchronized on the TDM
*>>>>>* bus.  I tried playing with the FIFO settings, which helped, but it
*>>>>>* still would not start each channel in the right slot reliably.
*>>>>>* Perhaps I was using an older kernel.
*>>>>>>>>* you put the finger on what's hurting !  ;)
*>>>>>>>>* In fact, we made 8 channels working in reliable way on imx50, with
*>>>>* predictive latency  ... with an old kernel (3.17) ... based on freescale
*>>>>* BSP... on sound/soc/imx/imx-ssi.c (something that doesn't exist outside
*>>>>* freescale BSP)
*>>>>>>>>* Well, just to say it is doable on any recent imx since the
hardware is
*>>>>* not
*>>>>* the issue. But the job was a set of awful hacks.
*>>>>>>* Sorry, I don't quite understand.  Are you saying that on a recent
*>>>* kernel (say 4.1 or 4.2), you think it will just work.  Or are yo
*>>>* saying that even on a modern kernel it's a set of awful hacks?  And
*>>>* should I use fsl_ssi.c or imx-ssi.c (device tree/non device tree)
*>>>* version?
*>>>>* - I'm saying it is working on recent upstream kernel, using
*>>* sound/soc/fsl/fsl_ssi.c, but with
*>>* some channel sync issues in rare conditions (at least 4 channels case,
*>>* opening multiple SSI at the same time).
*>>* So, you should test on your side with you setup, and simply be prepared to
*>>* not see it working as a charm.
*>>>>* - we made it work perfectly, but on an old freescale BSP, where freescale
*>>* rewrites a SSI driver different from the already 2 drivers (device tree/non
*>>* device tree) available today in upstream + lot of awful hacks =>
so, this is
*>>* not a hardware issue.
*>>>>* - when I will have time, I will start from the upstream driver,
and make it
*>>* work correctly with 8 channels (or more)
*>>>>* arnaud
*>>>>>>>>* In short, what's your best current recommendation to get it
working today?
*>>>>>>>* My plan was to re-do all this job on an upstream kernel, in
a way it can
*>>>>* be
*>>>>* accepted.
*>>>>* Unfortunately you will have to wait, I'm under pressure for other stuff
*>>>>* right now.
*>>>>>>* Heh, understood.  If there's anything I can do to help, let me know.
*>>>>>>* Thanks,
*>>>* -Caleb
*>>>>>>>* Regards,
*>>>>* arnaud
*>>>>>>>>>>>>>* I'll give it a try again.  Like I said, we'd love to get our
*>>>>>* 16-channel board up and running on the MX6, so I'm definitely
*>>>>>* motivated to put some work in to get it reliable.
*>>>>>>>>>>* Thanks,
*>>>>>*    -Caleb
*>>>>>>>



-- 
[image: SMILE] <http://www.smile.eu/>

20 rue des Jardins
92600 Asnières-sur-Seine
*Yann CARDAILLAC*
Ingénieur Linux Embarqué

[image: email] yann.cardaillac at smile.fr
[image: url] http://www.smile.eu

[image: Twitter] <https://twitter.com/GroupeSmile> [image: Facebook]
<https://www.facebook.com/smileopensource> [image: LinkedIn]
<https://www.linkedin.com/company/smile> [image: Github]
<https://github.com/Smile-SA>


[image: eco] Pour la planète, n'imprimez ce mail que si c'est nécessaire


More information about the Alsa-devel mailing list