教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

ALSA声卡驱动详解(13)

来源:网络收集 时间:2026-07-01
导读: ARRAY_SIZE(omap3pandora_in_map)); } /* Digital audio interface glue - connects codec CPU */ static struct snd_soc_dai_link omap3pandora_dai[] = { { .name = \, ...... .init = omap3pandora_out_init, },

ARRAY_SIZE(omap3pandora_in_map)); }

/* Digital audio interface glue - connects codec <--> CPU */ static struct snd_soc_dai_link omap3pandora_dai[] = { {

.name = \, ......

.init = omap3pandora_out_init, }, {

.name = \,

.stream_name = \, ......

.init = omap3pandora_in_init, } };

dai widget

上面几节的内容介绍了codec、platform以及machine级别的widget和route的注册方法,在dapm框架中,还有另外一种widget,它代表了一个dai(数字音频接口),关于dai的描述,请参考:Linux ALSA声卡驱动之七:ASoC架构中的Codec。dai按所在的位置,又分为cpu dai和codec dai,在硬件上,通常一个

34

cpu dai会连接一个codec dai,而在machine驱动中,我们要在snd_soc_card结构中指定一个叫做snd_soc_dai_link的结构,该结构定义了声卡使用哪一个cpu dai和codec dai进行连接。在Asoc中,一个dai用snd_soc_dai结构来表述,其中有几个字段和dapm框架有关: [cpp] view plaincopy struct snd_soc_dai { ......

struct snd_soc_dapm_widget *playback_widget; struct snd_soc_dapm_widget *capture_widget; struct snd_soc_dapm_context dapm; ...... }

dai由codec驱动和平台代码中的iis或pcm接口驱动注册,machine驱动负责找到snd_soc_dai_link中指定的一对cpu/codec dai,并把它们进行绑定。不管是cpu dai还是codec dai,通常会同时传输播放和录音的音频流的能力,所以我们可以看到,snd_soc_dai中有两个widget指针,分别代表播放流和录音流。这两个dai widget是何时创建的呢?下面我们逐一进行分析。 codec dai widget

首先,codec驱动在注册codec时,会传入该codec所支持的dai个数和记录dai信息的snd_soc_dai_driver结构指针: [cpp] view plaincopy

static struct snd_soc_dai_driver wm8993_dai = { .name = \, .playback = {

.stream_name = \, .channels_min = 1, .channels_max = 2,

.rates = WM8993_RATES,

.formats = WM8993_FORMATS, .sig_bits = 24, },

.capture = {

.stream_name = \, .channels_min = 1, .channels_max = 2,

.rates = WM8993_RATES,

.formats = WM8993_FORMATS, .sig_bits = 24, },

.ops = &wm8993_ops, .symmetric_rates = 1, };

35

ALSA声卡驱动详解(13).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/520655.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)