ALSA ASOC Path 完整路径追踪
- 一、ASoc Path 简介
- 二、ASoc Path 完整路径
- 2.1 tinymix 设置
- 2.2 完整路径 route
一、ASoc Path 简介
如前面小节所描述,ASoc 中 Machine Driver 是 platform driver 和 codec driver 的粘合剂,audio path 离不开 FE/BE/DAI link,那它们是怎么串起来的呢?此时则需要根据 snd_soc_dapm_route
中的定义对完整路径涉及的 kcontrol 进行设置,即用 tinymix 去打开 audio path
.
二、ASoc Path 完整路径
# Note:下面均以 mt2701 & wm8960 为例进行讲解
2.1 tinymix 设置
首先来一张 FE/BE/DAI link 在 ASoc path 中的位置图
其中根据 mt2701 & wm8960 定义 route 所画的路径图如下:
通过 tinymix 打开 audio path 时,需要敲如下 cmd:
wm8960-playback:
tinymix 'O15 I12 Switch' 1
tinymix 'O16 I13 Switch' 1
tinymix 'PCM Playback Switch' 1
adb shell tinyplay /sdcard/48k_2ch_test.wav -D 0 -d 0
2.2 完整路径 route
首先 Platform FE Driver 如下:
找到其对应的 dapm route,
可见 DL1->I12/I13->O15/O16
->I2S0 Playback,其中红色部分表示有相应的 kcontrol,即需要 switch 打开,所以 tinymix 要敲入如下 cmd:
tinymix 'O15 I12 Switch' 1
tinymix 'O16 I13 Switch' 1
接下来 I2S0 Playback 对应的 Platform 的 BE dai_driver:
由于 Platform BE 后面需要连接 Codec Dai,它需要经过 Machine 的 dai link 连接,如下:
可见连接到的 Codec Dai 是 wm8960-hifi dai driver,
查看 Codec Driver 对应的 dapm route:
可见 Codec 这边的 path 为:
Left/Right DAC->Left/Right Output Mixer
->L/ROUT1 PGA->HP_L/R
Left/Right DAC->Left/Right Output Mixer
->Left/Right Speaker
PGA->Left/Right Speaker Output->SPK_LN/P、SPK_RN/P
其中红色部分需要 switch 打开,所以 tinymix 要敲入如下 cmd:
tinymix 'PCM Playback Switch' 1
至此,整个完整的 ASoc Path 路径追踪完成。