22 May
2007
22 May
'07
6:17 p.m.
Ash Willis wrote:
Have you read "Writing an ALSA driver"? It generally describes ALSA drivers as they relate to PCI, and how to write them, but it does a good job at explaining the general ALSA driver architecture.
Unfortunately, most of my confusion stems from ASoC-specific issues. For instance, that document says I should call snd_pcm_new(). But that's not true for ASoC drivers, because I should really call snd_soc_new_pcms(), which in turn calls soc_new_pcm(), and *that* function calls snd_pcm_new(). However, none of that explains why it's the *codec* driver that is calling these functions. I don't understand why the codec driver is registering new PCMs. Shouldn't the PCM driver be registering the codec?
--
Timur Tabi
Linux Kernel Developer @ Freescale