[alsa-devel] Alsa Soc details

Vinod Koul vinod.koul at intel.com
Tue Jul 19 05:54:49 CEST 2016


On Thu, Jul 14, 2016 at 03:07:20PM +0200, Chemsi Mehdi wrote:
> 
>    Why codec driver of ASOC are always I2C based ?, is codec driver role is
>    only control of audio hardware(set/reset registers only)?

That is not true, there are few SPI based and one i wrote which was a
different method altogether. Mostly the audio embedded industry uses I2C
codecs so they are very common

>    There should be three drivers : machine driver, platform driver and
>    codec driver , all of them have .probe and . remove , what is relation
>    between all the probes? removes ?

All of these have two probes :)

First one in hardware probe. Nothing unusual here.
Second is the ASoC probe. Each of these registers a component. The ASoC core
will create the sound card only when all of these components are present. At
that time the ASoC probe in invoked signalling card creation to driver


>    As far I know McBSP is source of audio coming from host and I2C/ McBSP
>    have no direct relation so why we connect platform driver (McBSP) with
>    codec driver(I2C) Via DAI ?

You will have to ask driver authors that, pls cc them


>    When calling snd_pcm_open from userspace which kernel API is called ?
>    snd_pcm_lib_ioctl or  snd_stm_spdif_player_open ? if
>    snd_stm_spdif_player_open so when called snd_pcm_lib_ioctl ?

system call open()

>    How ALSA KERNELAPI is connected to ALSA SOC CORE, via which
>    calls/mechanism ?

The alsa provides driver callbacks. See struct snd_pcm_ops. ASoC provides
the same to asoc driver as well! Additionally we have dai_ops as well.

ASoC has its own ops for card and then it invokes platform, codec pcm and
dai_ops. See sound/soc/soc-pcm.c

-- 
~Vinod


More information about the Alsa-devel mailing list