Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)

DAPM-5 DAPM情景分析_构造过程

    • kcontrol链表
    • widget链表
    • route->path
    • 处理widget:power_check函数和snd_control
  • DAPM使用情景分析

Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第1张图片

kcontrol链表

Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第2张图片

widget链表

Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第3张图片

route->path

  1. 根据名字找到sink, source widget
  2. 构造path
  3. 设path->connect

这节课主要是对下面这张图进行设置path,即构造path,原始的图为:
Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第4张图片
根据上述的原则,对下面的route进行path转化

static const struct snd_soc_dapm_route audio_paths[] = {
	{ "Left Boost Mixer", "LINPUT1 Switch", "LINPUT1" },
	{ "Left Boost Mixer", "LINPUT2 Switch", "LINPUT2" },
	{ "Left Boost Mixer", "LINPUT3 Switch", "LINPUT3" },

	{ "Left Input Mixer", "Boost Switch", "Left Boost Mixer", },
	{ "Left ADC", NULL, "Left Input Mixer" },
	
	{ "Left Input Mixer", NULL, "LINPUT1", },  /* Really Boost Switch */
	{ "Left Input Mixer", NULL, "LINPUT2" },
	{ "Left Input Mixer", NULL, "LINPUT3" },

Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第5张图片

处理widget:power_check函数和snd_control

对于Mux, Mixer根据kcontrol创建snd_control
Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第6张图片

DAPM使用情景分析

widget上电过程

  1. complete path
    • 所涉及的部件path connect=1
    • 该条path上两段是endpoint(ep)
    • 可同时有多条complete path
  2. APP有使用该声卡

如何找出所有的complete?
答:不需要找,直接判断
Linux Audio (8) DAPM-5 DAPM情景分析_构造过程(待完善)_第7张图片

你可能感兴趣的:(Linux,Audio,linux,AUDIO,ALSA,ASOC,DAPM)