[alsa-devel] iMX6 ESAI TDM with underrun and overrun support

Nicolin Chen nicoleotsuka at gmail.com
Thu Dec 18 00:36:26 CET 2014


Hi Aurelien,

On Wed, Dec 17, 2014 at 02:04:25PM -0200, Fabio Estevam wrote:
> On Wed, Dec 17, 2014 at 1:13 PM, Aurelien Bouin <a_bouin at yahoo.fr> wrote:
> > Hello,
> > I am currently working on an iMX6 board, I work with the master branch
> > of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
> > I have seen some problems in the freescale ESAI implementation :
> >
> > 1.The registers TCCR and RCCR have TFP and RFP bits in register of a width
> > of 5, not 4 !
> > With a value of 5 we are able to use the full range of slots (32)
> > Patch : http://pastebin.com/Ai1RZ9mE

Only the width of xDC fields is incorrect as Fabio said.

Please send your revised patch to alsa-maillist, CC me and Mark.
(It'd be better to use ./scripts/get_maintainer.pl to get info)

I'll wait for you patch; Otherwise, I can fix it this weekend.

> > 2.The channels number are limited in Playback to 12, but actually we can
> > rise 128, in Capture it is limited to 8 but actually we can rise 128 also
> >
> > Patch : http://pastebin.com/SHk5eHPa

The limitation was applied because of the number of transmitters
and receivers. TDM looks a bit a special case to me. So I
personally encourage you to first apply the change it to your
own code.

The other reason is that actually network mode only supports
slots up to 32. So I don't get why you can make it happen to
128.....

> > I use the iMX6 ESAI bus to send audio datas to other processors ... but
> > actually I don't have any codec behind ...
> > I am wondering if there is any solution with the devicetree to implementing
> > such configuration with "simple-audio-card"
> >
> > Because for the moment I have not find another solution than doing a module
> > : http://pastebin.com/cnGwnEjn
> >
> > I also see that the chip errata of the iMX6 ERR008000 is not handle ...
> > Which make channel swapping on my ESAI bus ...
> > Is there someone that succeed in implementing the underrun overrun catch ?
> the esai driver?

I think you may like to try the newer official BSP release from
Freescale. I remember the fix is included and the fix is hard
to merge into the Linux mainline because it hacks some common
interfaces inside ASoC.

http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git

Nicolin Chen


More information about the Alsa-devel mailing list