目录
Revision History
1Audio软硬件系统框架
1.1硬件部分
1.1.1HW框架
1.1.2音频硬件接口
1.1.2.1 常见电路
1.2 软件部分
1.2.1 SW Architecture
1.2.2 代码位置
1.2.2.1 用户空间代码
1.2.2.2 Kernel代码
2Audio bringup
2.1 Bringup 流程
2.1.1 加载Peripheral Image Loader (PIL)镜像
2.1.2 SLIMbus UP
2.1.3 声卡注册
2.1.4 codec上电时序和正确复位
2.1.5 软硬件是否匹配?
2.1.5.1 Headset/handset mic bias配置
2.1.5.2 MBHC设置
2.1.5.2.1 Handset instertion/remove
2.1.5.2.2 Handset button press/release
2.1.6 GPIO配置
2.1.7 配置audio通路
2.2 Bringup kernel层
2.2.1 Device tree
2.2.1.1 Mic配置
2.4.1.2 MCLK时钟
2.4.1.3 codec reset GPIO
2.4.1.4 MIC 电压设置
2.4.1.5 Codec IRQ 设置
2.3 Bringup 系统层
2.3.1 audio相关的系统属性列表
2.4 Bringup Hal层
2.4.1 Device table
2.4.2 Audio hal changes
2.4.2.1 Define the new device entry in device_tabl
2.4.2.2 Add ACDB ID mapping
2.4.2.3 Modification to add a new mapping from And
2.5 Route配置
2.5.2 ADB DEBUG ROUTE
2.5.2.1 Stereo speaker
2.5.2.2 Speaker device
2.5.2.3 Handset
2.5.2.4 Stereo Headset
2.5.2.5 HPH-L(mono) non-44.1KHZ
2.5.2.6 Stereoheadset– Class-H Low Power (LP)
2.5.2.7 Stereoheadset – Class-H HiFi 48KHz
2.5.2.8 PCM playback over stereo headset – Class-H
2.5.2.9 PCM playback over lineout mono – Primary p
2.5.2.10 PCM playback over lineout mono – Mixing p
2.5.2.11 PCM playback over lineout stereo – Primar
2.5.2.12 PCM playback over lineout stereo – Mixing
2.5.2.13 PCM recording over the headset (AMIC2 inp
2.5.2.14 PCM recording over DMIC0 input
2.5.2.15 Verification of audio paths on MI2S
2.5.1 Mixer path xml
6.8.1 Mixer path 定义
6.8.1.1 Audio route (FE to BE)-specific mixer sett
6.8.1.2 Sound device-specific mixer settings
6.8.1.3 Volume control through mixer_path.xml
6.8.1.4 ACDB device ID table
2.6 bringup排查流程
2.7命令
3 Fastmmi source code
4 ACDB校准
4.1 Adding a device
4.1.1 Creating ACDB device ID and calibration data
5 How to debug
5.1 How to R/W Registers
5.1.1 SLIMBUS slave device register dump
5.1.2 Read SLIMBUS slave device register
5.1.3 Write SLIMBUS slave device registers
5.1.4 Power state of the WCD codec
5.1.5 soundwire slave device register dump
5.1.6 R/W soundwire slave device registers
5.1.7 soundwire master device register dump
5.1.8 R/W Soundwire master device register
5.1.9 WSA881x r/w operations
5.1.9.1 To write a register
5.1.9.2 To read a single register
5.1.9.3 To read a multiple registers:
5.1.9.4 To dump all register
5.1.10 How to R/W WCD9335/934x codec registers
5.2 Enable Logs
5.2.1用户空间log
5.2.2 kernel log
5.2.3 用户空间log
5.2.3.1 Java file logs
5.2.3.2 C/C++ source file logs
5.2.3 Enable audio/voice log codes in QXDM
5.2.4 Log 分析
5.3高通工具分析
5.3.1 QXDM使用方法
5.3.1.1 方法1:打开已有的dmc文件
5.3.1.2 方法2:手动选择audio LOG输出
5.3.1.3 QXDM代码对照表
5.3.2 QCAT使用
9 Audio的通路及涉及模块
10.1 Audio Path
10.2 Voice Tx and Rx paths
10.3 mDSP for the voice Tx and Rx paths
10 Vocie call
10.1 APP path
10.2 Modem path
13 Audio问题集
13.1 msm8909平台Audio问题
13.1.2 问题1:WCD9326磁珠问题导致声卡注册失败
13.1.2.1 问题描述
13.1.2.2 问题分析
13.1.2.3 总结
13.1.3 问题2:WSA8815 BusID问题导致声卡注册失败
13.1.3.1 问题描述
13.1.3.2 分析
13.1.3.3 总结
13.1.4 问题3:speaker无输出
13.1.4 问题4:mic无输入
13.2 msm8996 audio问题
13.2.1 说明
13.2.2 问题1: speaker无输出(xml修改无效)
13.2.2.1 问题描述
13.2.2.2 分析
13.2.2.3 总结
14 专业术语
15 参考文献