[meta-freescale] i.MX6 ASRC problem

Alexander Smirnov alex.bluesman.smirnov at gmail.com
Mon Jun 10 23:13:25 PDT 2013


Dear all,

last 3 weeks I spent in attempts to get ASRC working for my codec but 
all of them seem to be failed. So, at the moment I'm still stuck with 
ASRC due to several black spots in RM and source code.


My environment:
===============

1. I use kernel from the following package L3.0.35_4.0.0_130424_source

2. I have a custom board with a custom DAC codec

3. Codec is connected to CPU over SSI2

My base support package works good, so I can play audio over codec by 
using 'aplay' at fixed sample rates:

$ aplay -D "hw:0,0" foo.wav


What I've done:
===============

1. I've implemented ASRC support for CS4344 according to the CS42888 
reference code. But in some configurations I got I/O error (ASRC doesn't 
start and aborts by timeout), in other - empty stream

2.  I've posted a question to Freescale's community, but after 2 weeks 
there is still no reply. The link is:

https://community.freescale.com/message/332039#332039


Questions:
==========

1. ASRC requires 2 physical clocks: input and output. According to the 
Reference Manual (RM), ASRC fetches data from each enabled FIFO and 
processes the data sample-by-sample after each rising edge of input 
clock (chapter 15.1.2.1.1, page 639 of RM). But, there is no information 
about output clock usage, only mentioned that it should be physically 
available. The ratio Fs_in/Fs_out is provided as integers.

So what's the meaning of input/output physical clocks, sample clocks?
Which physical clocks are required to get ASRC working?

2. Why SSI3_RX clock is called INCLK_NONE in Linux? What does it mean?

3. I use SSI2 bus for my DAC. Which clocks should I use to get mxc_asrc 
driver work properly?

4. Does the current ASRC driver work? I found some old linux-2.6-imx 
kernel, which has support for i.MX5 family only. I noticed, that all 
codecs (3-stack) in 'sound/soc/imx/' have ASRC support. But in current 
kernel only cs42888 has ASRC support...

5. Is there some more detailed ASRC specification?

6. Does ALSA utils require some extra ASRC support? I've tried ASRC by 
the following command:

$ aplay -D "hw:0,1" foo.wav


I will highly appreciate any hints on this topic, thanks in advance!

BTW: I have several several fixes for ASRC driver, but they are mostly 
cosmetic. I'm going to send them after I'll be sure that the driver works.

With best regards,
Alex



More information about the meta-freescale mailing list