<div dir="ltr">Hi Darren,<div><br></div><div>Thanks for the reply.</div><div><br></div><div>I check those driver, and i can understand there are three parts for the LPE driver to working, special for the LPE firmware need to adde it. i can figure it out in the <a href="https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/sound/soc/intel/sst-acpi.c?id=refs/tags/v4.0.4">https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/sound/soc/intel/sst-acpi.c?id=refs/tags/v4.0.4</a> line 249 and 250.</div><div><br></div><div>but when i checked that sst-acpi.c, i found the baytrial sst is not support the DMA data transfer, see the <span style="color:rgb(0,0,0);font-size:13.3333330154419px">resindex_dma_base </span><span class="" style="color:rgb(0,0,0);font-size:13.3333330154419px">= -1 in line 262 and line 51 </span><span style="color:rgb(131,129,131);font-style:italic;font-size:13.3333330154419px">/* DMA only valid when resindex_dma_base != -1*/</span><span style="color:rgb(41,40,255);font-size:13.3333330154419px"> </span></div><div><br></div><div><div class="gmail_extra"><div class="gmail_quote">Am i correct? the MBM i2s does not support DMA data transfer?</div><div class="gmail_quote"><br></div><div class="gmail_quote">Thanks.</div><div class="gmail_quote"><br></div><div class="gmail_quote">2015-06-02 4:11 GMT+08:00 Darren Hart <span dir="ltr"><<a href="mailto:dvhart@linux.intel.com" target="_blank">dvhart@linux.intel.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5">On 5/30/15 7:17 PM, li yuqian wrote:<br>
> i checked the mainline kernel, seems there is a I2S driver with DMA for<br>
> the MBM, if i want use I2S to connect a codec, where i can find the MBM<br>
> i2s driver?<br>
<br>
</div></div>Thanks to Kevin Strasser for educating me on the various components.<br>
<br>
There isn't an I2S bus driver like there is for SPI, I2C, etc. There are<br>
three components:<br>
<br>
1) LPE Firmware for the SoC<br>
This communicates directly with the ADSP and I2S hw. You can find a<br>
build for Baytrail in the upstream linux-firmware repo, named:<br>
"fw_sst_0f28.bin-48kHz_i2s_master". This will need to get installed to<br>
the rootfs as "/lib/firmware/intel/fw_sst_0f28.bin-48kHz_i2s_master".<br>
<br>
2) Machine-codec specific driver<br>
Assuming you are using the latest upstream kernel sources, you can find<br>
all the LPE machine drivers in "sound/soc/intel/boards". A corresponding<br>
machine driver for a Bay Trail SoC using the max98090 codec is<br>
"sound/soc/intel/boards/byt-max98090.c". The machine driver depends on<br>
the codec driver and LPE platform driver. LPE platform driver files for<br>
BYT: "sound/soc/intel/baytrail/*"<br>
<br>
3) Codec driver<br>
For example: "sound/soc/codecs/max98090.c"<br>
<span class=""><font color="#888888"><br>
<br>
--<br>
Darren Hart<br>
Intel Open Source Technology Center<br>
</font></span></blockquote></div><br></div></div></div>