<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX Processors中的主题 Re: iMX6 ESAI TDM with underrun and overrun support</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358884#M50368</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Unfortunately I have never had the chance to make it work ... not enough support of the ESAI iMX6 black box ...&lt;/P&gt;&lt;P&gt;Sorry&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 Jul 2016 09:04:37 GMT</pubDate>
    <dc:creator>aurelienbouin</dc:creator>
    <dc:date>2016-07-21T09:04:37Z</dc:date>
    <item>
      <title>iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358857#M50341</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to use the ESAI of the iMX6...&lt;/P&gt;&lt;P&gt;I need to use 2x 32 slots of 8 bits at 8Khz, and I am in slave mode since i am listenning Frame Synchro and Tx Clock&lt;/P&gt;&lt;P&gt;I am testing the interface simply sending a word of 0xAA on slot 0 and slot 15, the others are 0x00&lt;/P&gt;&lt;P&gt;I am probably facing the underrun and overrun chip errata (&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;ERR008000) on ESAI since my channels are switching randomly ...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;I already tested the kernel from :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;-&amp;gt; git://git.freescale.com/imx/linux-2.6-imx.git --- branch : imx_3.10.31_1.1.0_alpha&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;-&amp;gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt; git://git.freescale.com/imx/linux-2.6-imx.git --- branch : imx_3.10.31_1.1.0_beta2&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;And now I am trying to use the main kernel stable git :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;-&amp;gt; git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --- branch master&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I have some trouble actually with the mailine kernel :&lt;/P&gt;&lt;P&gt;[&amp;nbsp; 745.648380] fsl-esai-dai 2024000.esai: Missing dma channel for stream: 0&lt;/P&gt;&lt;P&gt;[&amp;nbsp; 745.655198] fsl-esai-dai 2024000.esai: ASoC: pcm constructor failed: -22&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I figured out that the imx6qdl.dtsi was not giving enough information to use the ESAI so I add to my own dts :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pinctrl_esai_gip2: esaigrp-gip2 {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_2__ESAI_TX_FS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_1__ESAI_RX_CLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_6__ESAI_TX_CLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_17__ESAI_TX0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_8__ESAI_TX5_RX0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_9__ESAI_RX_FS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_18__ESAI_TX1 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6QDL_PAD_GPIO_7__ESAI_TX4_RX1 0x1b030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;esai {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dma-names = "rx", "tx";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clocks = &amp;lt;&amp;amp;clks 228&amp;gt;, &amp;lt;&amp;amp;clks 229&amp;gt;, &amp;lt;&amp;amp;clks 118&amp;gt;, &amp;lt;&amp;amp;clks 228&amp;gt;, &amp;lt;&amp;amp;clks 156&amp;gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clock-names = "core", "mem", "extal", "fsys", "dma";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = "fsl,imx35-esai";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,esai-dma-events = &amp;lt;24 23&amp;gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = "default";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_esai_gip2&amp;gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,esai-synchronous;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,fifo-depth = &amp;lt;64&amp;gt;; /* Transmit FIFO watermark =&amp;gt; the Transmit FIFO Empty flag will set =&amp;gt; 32 slots * 2 bus of TX the same for RX */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sound {&lt;/P&gt;&lt;P&gt;&amp;nbsp; compatible = "fsl,imx6q-gipc-generic-esai",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "fsl,imx-audio-generic-esai";&lt;/P&gt;&lt;P&gt;&amp;nbsp; model = "generic-esai-audio";&lt;/P&gt;&lt;P&gt;&amp;nbsp; esai-controller = &amp;lt;&amp;amp;esai&amp;gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do have in my .config :&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;# SoC Audio for Freescale CPUs&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;# Common SoC Audio options for Freescale CPUs:&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;# CONFIG_SND_SOC_FSL_ASRC is not set&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_FSL_SAI=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_FSL_SSI=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_FSL_SPDIF=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_FSL_ESAI=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_FSL_UTILS=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_IMX_PCM_DMA=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_IMX_AUDMUX=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_IMX_SOC=y&lt;/P&gt;&lt;P&gt;CONFIG_SND_SOC_IMX_PCM_FIQ=y&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I simply make a module that connect to a dummy codec the dai interface ESAI to use it in a generic way : &lt;A href="http://pastebin.com/CupYva7Z" title="http://pastebin.com/CupYva7Z"&gt;http://pastebin.com/CupYva7Z&lt;/A&gt;&lt;/P&gt;&lt;P&gt;thank you for your return&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Aurelien BOUIN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 12:23:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358857#M50341</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-17T12:23:51Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358858#M50342</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You missed to add the dma nodes for esai.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Take a look at Documentation/devicetree/bindings/sound/fsl,esai.txt for an example on how to pass the dma nodes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, you don't need to create a "fsl,imx6q-gipc-generic-esai". You can use "simple-card" instead or "fsl-asoc-card".&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 12:40:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358858#M50342</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2014-12-17T12:40:30Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358859#M50343</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for the dma nodes !!&lt;/P&gt;&lt;P&gt;I didn't know about simple-card, seems like a powerful tool !!&lt;/P&gt;&lt;P&gt;But it seems hard to get the right parameters !!&lt;/P&gt;&lt;P&gt;For the moment I am at :&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;sound {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;compatible = "simple-audio-card";&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;simple-audio-card,name = "Generic-ESAI-Sound-Card";&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;simple-audio-card,bitclock-master = &amp;lt;&amp;amp;link0_cpu&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;simple-audio-card,frame-master = &amp;lt;&amp;amp;link0_cpu&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;simple-audio-card,format = "left_j";&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;link0_cpu: simple-audio-card,cpu {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;sound-dai = &amp;lt;&amp;amp;esai&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;dai-tdm-slot-num = &amp;lt;32&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;dai-tdm-slot-width = &amp;lt;8&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;/*&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;system-clock-frequency = &amp;lt;2000000&amp;gt;; */&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;};&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;simple-audio-card,codec {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;sound-dai = &amp;lt;&amp;amp;codec&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;frame-master;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;bitclock-master;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;};&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;};&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;But I don't see where I can use a fake codec ...&lt;/P&gt;&lt;P&gt;I have an extra question : Do you think that it could be possible to get a different pcm for each slot of the TDM (2x32 in my case)&lt;/P&gt;&lt;P&gt;Thank you very much for your help !!!&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Aurelien BOUIN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 13:36:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358859#M50343</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-17T13:36:12Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358860#M50344</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aurelien,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure what you mean by "fake" codec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I personally haven't used the esai driver in mainline yet. I would recommend you to post this in the alsa-devel mailing list with Nicolin Chen &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:nicoleotsuka@gmail.com"&gt;nicoleotsuka@gmail.com&lt;/A&gt;&lt;SPAN&gt;&amp;gt;, who is the driver maintainer on Cc.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Fabio Estevam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 13:57:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358860#M50344</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2014-12-17T13:57:28Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358861#M50345</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi again,&lt;/P&gt;&lt;P&gt;When I speak about fake codec I am actually speaking about the snd-soc-dummy that I declared on my module : &lt;A class="loading" href="http://pastebin.com/CupYva7Z" title="http://pastebin.com/CupYva7Z"&gt;http://pastebin.com/CupYva7Z&lt;/A&gt; :&lt;/P&gt;&lt;OL style="padding-left: 48px; color: #acacac; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace, serif; font-size: 12px; background-color: #f8f8f8;"&gt;&lt;LI&gt;&lt;SPAN class="de1" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="kw4" style="color: #993333;"&gt;static&lt;/SPAN&gt; &lt;SPAN class="kw4" style="color: #993333;"&gt;struct&lt;/SPAN&gt; snd_soc_dai_link snd_soc_dapm_route&lt;SPAN class="br0" style="color: #009900;"&gt;[&lt;/SPAN&gt;&lt;SPAN class="br0" style="color: #009900;"&gt;]&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="br0" style="color: #009900;"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="br0" style="color: #009900;"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de1" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN class="me1" style="color: #202020;"&gt;name&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="st0" style="color: #ff0000;"&gt;"HiFi"&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN class="me1" style="color: #202020;"&gt;stream_name&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="st0" style="color: #ff0000;"&gt;"HiFi"&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de1" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN class="me1" style="color: #202020;"&gt;codec_name&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="st0" style="color: #ff0000;"&gt;"snd-soc-dummy"&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN class="me1" style="color: #202020;"&gt;codec_dai_name&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="st0" style="color: #ff0000;"&gt;"snd-soc-dummy-dai"&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de1" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN class="me1" style="color: #202020;"&gt;ignore_pmdown_time&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="nu0" style="color: #0000dd;"&gt;1&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN class="me1" style="color: #202020;"&gt;ops&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;=&lt;/SPAN&gt; &lt;SPAN class="sy0" style="color: #339933;"&gt;&amp;amp;&lt;/SPAN&gt;imx_generic_esai_surround_ops&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de1" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="br0" style="color: #009900;"&gt;}&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="br0" style="color: #009900;"&gt;}&lt;/SPAN&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;I feel like I won't be able to do the same, just with the devicetree ?!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;Thank you for your reply,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;Regards,&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="de2" style="padding: 0 5px; color: #000000; border-left-width: 1px; border-left-style: solid; border-left-color: #cccccc; margin: 0 0 0 -7px; background: #ffffff;"&gt;&lt;SPAN class="sy0" style="color: #339933;"&gt;Aurelien BOUIN&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 14:10:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358861#M50345</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-17T14:10:12Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358862#M50346</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;why do you need the snd-soc-dummy?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't you have a real audio codec connected in your hardware?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 14:13:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358862#M50346</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2014-12-17T14:13:23Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358863#M50347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nope I don't ! I directly connect my ESAI bus to another processor ... They just exchange audio datas directly ...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 14:15:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358863#M50347</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-17T14:15:34Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358864#M50348</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok, got it. I think people in alsa-devel list would be able to give you some good guidance on this.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 14:17:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358864#M50348</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2014-12-17T14:17:48Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358865#M50349</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So I am using the ESAI with the master branch of the main git &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;And I can see that my channels are randomly switching ... seems like the ESAI chip errata is here ...&lt;/P&gt;&lt;P&gt;On the fallowing pictures you can see in blue datas, in yellow frame synchro&lt;/P&gt;&lt;P&gt;You can see on the first attached picture the initial situation : channel[0] et channel[16] have 0xAA, and others 0x0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;span class="lia-inline-image-display-wrapper" image-alt="init_esai_channels.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/48419iB7D8CD5656EA3F7C/image-size/large?v=v2&amp;amp;px=999" role="button" title="init_esai_channels.jpg" alt="init_esai_channels.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;And after sometimes we get that :&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="switched_esai_channels.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/48420i217FD33C31E661C5/image-size/large?v=v2&amp;amp;px=999" role="button" title="switched_esai_channels.jpg" alt="switched_esai_channels.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I don't see any debug message concerning xrun or underrrun ...&lt;/P&gt;&lt;P&gt;Thank you for your help,&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Aurelien BOUIN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Dec 2014 15:18:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358865#M50349</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-17T15:18:56Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358866#M50350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why the problem is marked as solved ??? it is definitely not the case ...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Dec 2014 16:52:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358866#M50350</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-18T16:52:07Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358867#M50351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I get back to linux branch imx_3.10.31_1.1.0_beta2 at git://git.freescale.com/imx/linux-2.6-imx.git&lt;/P&gt;&lt;P&gt;I figured out that the TIE and TEIE bits in the TCR register are not set at any moment ...&lt;/P&gt;&lt;P&gt;So I add in the fsl_esai_set_dai_fmt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MAKE_TCR_INTERRUPTIBLE&lt;/P&gt;&lt;P&gt;#ifdef MAKE_TCR_INTERRUPTIBLE&lt;/P&gt;&lt;P&gt;&amp;nbsp; //make it interruptible&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk(KERN_ERR"%s(%d)\n",__func__,__LINE__);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mask |= ESAI_xCR_xEIE_MASK | ESAI_xCR_xIE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; xcr |= ESAI_xCR_xEIE | ESAI_xCR_xIE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //make it interruptible&lt;/P&gt;&lt;P&gt;#endif /* MAKE_TCR_INTERRUPTIBLE */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also add a dump function that show the register at&amp;nbsp; fsl_esai_hw_params : ESAI_TCR&amp;nbsp;&amp;nbsp; 0x00728100&lt;/P&gt;&lt;P&gt;I also add debug in the function fsl_esai_check_xrun that show the saisr register&lt;/P&gt;&lt;P&gt;When underrun occured (when I see that with an oscilloscope)&lt;/P&gt;&lt;P&gt;There is no interrupt generated ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FYI here is my fsl_esai.c modified : &lt;A href="http://pastebin.com/x5vnfAM8" title="http://pastebin.com/x5vnfAM8"&gt;fsl_esai.c - Pastebin.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your help,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sincerely,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Aurelien BOUIN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Dec 2014 16:58:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358867#M50351</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2014-12-18T16:58:39Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358868#M50352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For your information the problem occured only in slave mode ... (Clock and Frame Synchro is in input)&lt;/P&gt;&lt;P&gt;It is working correctly apparently in master mode ... but the clock and the frame synchro are not correct ... When I ask 2048000Hz I get 2207000 hz&lt;/P&gt;&lt;P&gt;If you have any suggestion ...&lt;/P&gt;&lt;P&gt;Thank you for your help &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Jan 2015 14:35:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358868#M50352</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2015-01-05T14:35:30Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358869#M50353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bonjour Aurélien,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your problem seems to have multiple aspects, setting dma was one of it and the oscilloscope above looks like a channel swapping issue (in case of overrun) that is supposed to be fixed by an other group of patches in Yocto &lt;A href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga"&gt;http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga&lt;/A&gt; (apparently not in the mainline kernel). This is becoming difficult to follow (do you still have swapping now you are back on beta2 ?), especially if you add a new issue below that is not your use case (looking at our alsa driver documentation, 22 kHz is a standard frequency but no trace of 20 kHz).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think we need to dig the root cause of underun (and / or overrun ?), not necessary in the esai driver but maybe in dma, since you open a new thread, i propose to follow on that one if that ofk with you ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards, Philippe.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 09:33:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358869#M50353</guid>
      <dc:creator>ZeeFrench</dc:creator>
      <dc:date>2015-01-15T09:33:56Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358870#M50354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, Philippe's suggestion is a good one. Could you please try 3.10.53 GA kernel?&lt;/P&gt;&lt;P&gt;&lt;A href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?h=imx_3.10.53_1.1.0_ga" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?h=imx_3.10.53_1.1.0_ga"&gt;http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?h=imx_3.10.53_1.1.0_ga&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Fabio Estevam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 09:56:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358870#M50354</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2015-01-15T09:56:53Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358871#M50355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Philippe and Fabio,&lt;/P&gt;&lt;P&gt;I keep getting swapping channels with the linux &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;branch imx_3.10.31_1.1.0_beta2 at git://git.freescale.com/imx/linux-2.6-imx.git and it is the same implementation that the one you give me (&lt;A data-content-finding="Community" href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga" style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #6a737b; text-decoration: underline;" target="_blank" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga"&gt;http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga)&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Again in this driver the implementation is limited to 16 channels (why ?)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;FYI here is my fsl_esai.c modified :&lt;A href="http://pastebin.com/Ee2BhBhz" title="http://pastebin.com/Ee2BhBhz"&gt;[C] fsl_esai_updated.c - Pastebin.com&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;I don't understand 20KHz trace ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;I am using 64 slots of 8 bits word at 8000Hz =&amp;gt; mclk=2048000Hz&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Thank you for your interest in my problem, I really appreciate it&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Aurelien BOUIN&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 10:06:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358871#M50355</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2015-01-15T10:06:13Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358872#M50356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aurelien,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.10.53 has some additional esai patches that seem to be important for your case.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please see this one about channel swap:&lt;/P&gt;&lt;P&gt;&lt;A href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga&amp;amp;id=0e0f397289742141ec9811aa449d033e52b44cd9" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga&amp;amp;id=0e0f397289742141ec9811aa449d033e52b44cd9"&gt;linux-2.6-imx.git - Freescale i.MX Linux Tree&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would suggest you to try 3.10.53.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Fabio Estevam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 10:08:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358872#M50356</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2015-01-15T10:08:26Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358873#M50357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi again,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I add the patch (&lt;A class="loading" href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga&amp;amp;id=0e0f397289742141ec9811aa449d033e52b44cd9" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga&amp;amp;id=0e0f397289742141ec9811aa449d033e52b44cd9"&gt;http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/sound/soc/fsl/fsl_esai.c?h=imx_3.10.53_1.1.0_ga&amp;amp;id=0e0f397289742141ec9811aa449d033e52b44cd9&lt;/A&gt;) but i keep getting swapping&lt;/P&gt;&lt;P&gt;My new code is now &lt;A class="loading" href="http://pastebin.com/66GkXME2" title="http://pastebin.com/66GkXME2"&gt;http://pastebin.com/66GkXME2&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Aurelien BOUIN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 10:50:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358873#M50357</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2015-01-15T10:50:13Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358874#M50358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The patch set is not only affecting esai driver, I haven't locate something (need to dig in the sdma) that could explain this phenomenum but it would still be interresting to test a complete kernel. The workaround to the hardware errata is to manage startup condition and reset esai in case of overrun but I don't see any fix in case of underrun : your message below seems to indicate you are experiencing both over and underruns ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers, Philippe.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 13:08:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358874#M50358</guid>
      <dc:creator>ZeeFrench</dc:creator>
      <dc:date>2015-01-15T13:08:13Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358875#M50359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;So I git clone the linux branch imx_3.10.53_1.1.0_ga on git://git.freescale.com/imx/linux-2.6-imx.git&lt;/P&gt;&lt;P&gt;I patched it with this : &lt;A class="loading" href="http://pastebin.com/RM8pyUSA" title="http://pastebin.com/RM8pyUSA"&gt;http://pastebin.com/RM8pyUSA &lt;/A&gt;&lt;/P&gt;&lt;P&gt;It makes 64 slots available and set a correct clock to pll4 to get 2048000Hz&lt;/P&gt;&lt;P&gt;Unfortunetaly I also get swapping without anything un debug that can help me detect it ...&lt;/P&gt;&lt;P&gt;Thank you again for your suggestions,&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Aurelien BOUIN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jan 2015 15:03:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358875#M50359</guid>
      <dc:creator>aurelienbouin</dc:creator>
      <dc:date>2015-01-15T15:03:59Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 ESAI TDM with underrun and overrun support</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358876#M50360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi, i have a way to use different pcms for each slot. It is from the alsa_lib side, you can use deshare plug-in to do this.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Jan 2015 03:20:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-ESAI-TDM-with-underrun-and-overrun-support/m-p/358876#M50360</guid>
      <dc:creator>leige-b42127</dc:creator>
      <dc:date>2015-01-16T03:20:31Z</dc:date>
    </item>
  </channel>
</rss>

