当前位置: 首页 > news >正文

Linux ALSA 之十一:ALSA ASOC Path 完整路径追踪

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' 1tinymix 'O16 I13 Switch' 1tinymix 'PCM Playback Switch' 1adb 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 路径追踪完成。

http://www.lryc.cn/news/4329.html

相关文章:

  • 【Spring Cloud总结】1、服务提供者与服务消费者快速上手
  • 若依项目学习之登录生成验证码
  • 计算机网络5:数据在两台计算机之间是怎样传输的?
  • 就现在!为元宇宙和Web3对互联网的改造做准备!
  • 【mysql数据库】
  • 【测试开发】web 自动化测试 --- selenium4
  • Elasticsearch7.8.0版本进阶——路由计算
  • c#反射-获取属性和字段的值
  • 前后端分离-小项目-1前端布局
  • 基于jsp的网络电子相册的设计与实现
  • Python快速上手系列--类--详解篇
  • Dubbo基本原理和用法讲解
  • TCP详解及面试相关问题
  • LVGL V9.0基于VS2022仿真搭建
  • 多线程面试题开胃菜2(5道)
  • 第三次作业
  • 基础算法(直接插入,希尔排序,快排,归并,折半查找)
  • 电子学会2022年12月青少年软件编程(图形化)等级考试试卷(一级)答案解析
  • 基于JAVA的超级玛丽设计与实现
  • 硬件工程师入门基础知识(一)基础元器件认识(二)
  • Python-项目实战--贪吃蛇小游戏-游戏框架搭建(2)
  • JVM基础
  • Android 内存优化(基础轮)必看~
  • STM32单片机GSM短信自动存取快递柜
  • 力扣(LeetCode)410. 分割数组的最大值(2023.02.12)
  • 管理还原数据
  • c的关键字有那些
  • 链表OJ(一)
  • MySQL第三次作业
  • Python中的类和对象(7)