[alsa-devel] SoC sound support for imx27

Juergen Beisert jbe at pengutronix.de
Thu May 8 09:54:28 CEST 2008

On Monday 05 May 2008 14:42, Mark Brown wrote:
> On Mon, May 05, 2008 at 12:56:37PM +0200, Juergen Beisert wrote:
> > Hmm, I did a deeper look into this code. Why - for example - does the
> > file mx31ads-wm8753.c does the job of the BSP file? Why it registers
> > devices? For my board I want to register platform_devices only in
> > arc/arm/mach-mx2/pcm038.c. Nowhere else. If there is some glue required
> > to bring components together, IMHO also arc/arm/mach-mx2/pcm038.c is the
> > correct place to do so. Why you did it in sound/ ? If you do it in sound/
> > , you always need two locations to maintain. On in the arch/, one in
> > sound/ .
> That said, you don't need to do things this way, especially with ASoC v2
> where even if you do separate out the machine driver you can still
> register everything in your architecture code including a platform
> device for the machine driver.

It seems the documentation in the "asoc-v2-dev" 
(Documentation/sound/alsa/soc/) is still v1, isn't it?

I'm confused how to link the pcm-layer and the transmission layer together. 
pxa2xx-i2s.c registers a codec-dai (line 346), while the imx-ssi.c registers 
(line 864) a platform-dai (internally called a cpu_dai. BTW: why a different 
name?). I _believe_ the CPU DAI tries to connect the CPU-pcm to the 
transmission interface like ssi or i2s on the same chip. But both 
implementations are using the same layering (pcm-dma and ssi/i2s), but 
registering different DAIs. 

Now I have an ssi driver for my CPU (to be more precise: Two instances of it, 
when I registering two ssi devices in my BSP file). But how to tell the CPU 
pcm-layer which one it should use (and for what purpose, play, capture)? And 
only the ssi driver itself knows how to interact with the DMA controller. But 
this information is needed in the CPU pcm-layer as it setup the DMA.

Does a list exists, where I can store driver's private data in each layer 
(mapped iomem addresses for example)? And how to access it, when I only get 
a "struct snd_pcm_substream" as a parameter?

Dipl.-Ing. Juergen Beisert | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
    Handelsregister: Amtsgericht Hildesheim, HRA 2686
         Vertretung Sued/Muenchen, Germany
   Phone: +49-8766-939 228 |  Fax: +49-5121-206917-9

More information about the Alsa-devel mailing list