https://blog.csdn.net/droidphone/article/details/14548631
概要
默认情况下,驱动不会通过snd_soc_route来主动定义dai widget和stream widget之间的连接关系。实际上它们之间的连接关系是由asoc core负责建立。在声卡的初始化函数中,使用snd_soc_dapm_link_dai_widgets函数来建立他们之间的连接关系。
snd_soc_dapm_new_dai_widgets()创建dai widgets。dai widget的name和sname使用 dai driver的stream_name字段。
stream widget除了指定name还需要指定sname。
从snd_soc_dapm_link_dai_widgets函数可知:dai widget和stream widget是通过stream name连接起来的。
匹配的条件是 stream widget的stream name包含或等于dai widget的stream name。
最后通过snd_soc_dapm_add_path建立静态连接。但是注意的是dai widget和stream widget建立连接必须属于同一个DAPM context上下文。