linux 音频架构绕过,linux音频驱动架构
1、linux音頻驅動架構分為3部分組成:硬件無關層(核心層ALSA)、板級音頻數字接口層驅動(McASP、McBSP等)、外部codes驅動
sound/soc/davinci/ti81xx-etv.c;文件定義了板級數字音頻接口驅動和外部code驅動的關聯關系
static struct snd_soc_dai_link ti81xx_mcasp_dai[] = {
{
.name = "TLV320AIC3X",
.stream_name = "AIC3X",
.cpu_dai_name= "davinci-mcasp.2",
.codec_dai_name = "tlv320aic3x-hifi",
.codec_name = "tlv320aic3x-codec.1-0018",
.platform_name = "davinci-pcm-audio",
.init = ti81xx_evm_aic3x_init,
.ops = &ti81xx_evm_ops,
},
#ifdef CONFIG_SND_SOC_TI81XX_HDMI
{
.name = "HDMI_SOC_LINK",
.stream_name = "hdmi",
.cpu_dai_name = "hdmi-dai",
.platform_name = "davinci-pcm-audio",
.codec_dai_name = "HDMI-DAI-CODEC", ? ? /* DAI name */
.codec_name = "hdmi-dummy-codec",
},
#endif
};
上面代碼中定義了兩路音頻通道,每路通道都將其對應的外部code驅動、板級數字音頻接口驅動綁在了一起。其中板級數字音頻接口驅動包括兩部分:McASP驅動(這個主要是負責McASP接口的寄存器配置)、davinci-pcm驅動(McASP接口其實就是一個PCM數字音頻接口,這個驅動主要是負責一些DMA調度)
sound/soc/davinci/davinci-mcasp.c這個源碼是負責McASP接口的配置工作。
sound/soc/davinci/davinci-pcm.c這個驅動是負責pcm數字音頻接口的相關DMA調度工作。
sound/soc/codecs/sii9233a_audio.c
sound/soc/codecs/tlv320aic3x.c
這兩個驅動是外部code驅動,負責外部code的配置工作。
總結
以上是生活随笔為你收集整理的linux 音频架构绕过,linux音频驱动架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ant批量修改文件名_Ant Renam
- 下一篇: lg分屏软件支持linux吗,LG V1