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

arnaud.mouiche at invoxia.com arnaud.mouiche at invoxia.com
Thu Sep 17 18:09:13 CEST 2015



Le 17/09/2015 17:34, Caleb Crome a écrit :
> On Thu, Sep 17, 2015 at 7:33 AM, arnaud.mouiche at invoxia.com
> <arnaud.mouiche at invoxia.com> 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
>>> <arnaud.mouiche at invoxia.com> 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
>>>



More information about the Alsa-devel mailing list