Android Q - 音频通路调试

对于当前模块不是很清楚,刚好有个项目这方面有点问题,根据展锐支持文档一步步检查就可以了。首先得先弄清楚硬件具体是怎么连接的,比如文档提到的案例:sprd codec speaker output 连接外部 PA。

耳机接的是什么,speaker接的是什么,receive接的是什么。

本文可能涉及到的文件路径信息参考如下:
 kernel/arch/<arch name>/boot/dts/sprd-sound-xxx.dtsi
 kernel/arch/<arch name>/boot/dts/<board>.dts
 kernel/sound/soc/sprd/sprd-asoc-card-utils.c
 kernel/sound/soc/sprd/sprd-asoc-card-utils-hook.c
 kernel/sound/soc/sprd/sprd-asoc-card-utils-legacy.c
 kernel/sound/soc/sprd/include/sprd-asoc-card-utils.h
 kernel/sound/soc/sprd/include/sprd-asoc-card-utils-legacy.h
 device/sprd/<chip>/<board>/rootdir/system/etc/audio_params/tiny_hw.xml
 device/sprd/<chip>/<board>/rootdir/system/etc/audio_params/codec_pga.xml
 device/sprd/<chip>/<board>/rootdir/system/etc/audio_params/audio_para
 device/sprd/<chip>/<board>/BoardConfig.mk 

这里只做简单记录,详细信息可看展锐提供的文档。

Kernel部分
    sprd-sound-xxx.dtsi 中已配置了 common 配置信息,与 common 有差异的配置在对应板级 DTS 中修改,板级 DTS 配置信息会覆盖 common中的定义。
    1、sprd-audio-card widgets 配置
        不使用外部 PA,需要定义 headphone、speaker、earpiece 三个 widgets。
        使用外部 PA,需要定义一个 widgets 表示一个外部 speaker,该 widgets 的 event 可以控制外部 PA 的开关。
    2、sprd-audio-card routing 配置
    3、sprd spk-ext-pa-info 配置
    4、sprd spk-ext-pa-gpio 配置
    5、sprd spk-ext-pa-names 配置
    
HAL 部分
    1 Xml 文件配置
        .1 Codec 通路配置

                这里记录一下正常情况下的配置文件吧

                speaker->喇叭,headphone->耳机,earpiece->听筒

tiny_hw.xml

<device name="speaker">
   <path name="on">
     <ctl name="SPKL Mixer DACLSPKL Switch" val="1" />
     <ctl name="Speaker Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Speaker Function" val="0" />
     <ctl name="SPKL Mixer DACLSPKL Switch" val="0" />
   </path>
</device>

<device name="headphone">
   <path name="on">
     <ctl name="HPL EAR Sel" val="HPL" />
     <ctl name="HPL Mixer DACLHPL Switch" val="1" />
     <ctl name="HPR Mixer DACRHPR Switch" val="1" />
     <ctl name="HeadPhone Function" val="1" />
   </path>
   <path name="off">
     <ctl name="HeadPhone Function" val="0" />
     <ctl name="HPL Mixer DACLHPL Switch" val="0" />
     <ctl name="HPR Mixer DACRHPR Switch" val="0" />
     <ctl name="HPL EAR Sel" val="EAR" />
   </path>
</device>

<device name="earpiece">
   <path name="on">
        <ctl name="EAR Mixer DACLEAR Switch" val="1"/>
        <ctl name="Earpiece Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Earpiece Function" val="0" />
     <ctl name="EAR Mixer DACLEAR Switch" val="0"/>
   </path>
</device>

        .2 Codec 参数配置
    
    2 Property 属性配置
           
ro.vendor.audio_tunning.dual_spk 属性 含义
ro.vendor.audio_tunning.dual_spk = 0 默认调试模式。
ro.vendor.audio_tunning.dual_spk = 1 双 SPK-HPR+HPL
ro.vendor.audio_tunning.dual_spk = 2 单 SPK-HPL/HPR
ro.vendor.audio_tunning.dual_spk = 3 听筒喇叭二合一。

    3 代码修改

        开启ENABLE_DEVICES_CTL_ON宏开关

最后补充两个方法:
        1、耳机测试AT命令----AT+SPVLOOP
Description:
Audio frequency loopback test
Set command:
AT+ SPVLOOP= <cmd>,<mode>< volume ><loopbacktype><voiceformat>
<delaytime><outdevice><indevice>

Return

OK
Parameter:
<cmd>:
cmd
Description
0 DISABLE
1 EABLE
2 SETMODE
3 SETVOLUME
4 SETDEVICE
<mode>:
Optional mode exists 0-7
0 handhold 1 : handfree 2: earphone
<volume>: the size of volume
<loopbacktype>:
0: AD->DA loop,
1: AD->ul_process->dl_process->DA loop,
2: AD->ul_process->encoder->decoder->dl_process->DA loop
<voiceformat>: (1-3)
1: EFS vocoder
2: HR Vocoder
3: AMR Vocoder
<delaytime>: (0-1000) ms
<outdevice>:
1 ear
2 spk
4 hp
<indevice>
1 mic_0
2 mic_1
4 mic_hp

        

        完整命令:AT+SPVLOOP=1,4,8,2,3,0 

        2、查看当前音频设备状态----tinymix

C:\Users\lichang>adb shell
sl8541e_1h10_32b:/ # tinymix
Mixer name: 'sprdphone'
Number of controls: 135
ctl     type    num     name                                     value

0       ENUM    1       VBC Switch                               AP
1       ENUM    1       VBC INT Switch                           AP
2       ENUM    1       VBC DMA Switch                           AP_AON
3       BOOL    1       VBC DA EQ Switch                         On
4       BOOL    1       VBC AD01 EQ Switch                       Off
5       BOOL    1       VBC AD02 EQ Switch                       Off
6       ENUM    1       VBC EQ FW Name                           vbc_eq
7       ENUM    1       VBC EQ Update                            loaded
8       INT     2       VBC DAC01 MIXERDG                        0 0
9       INT     2       VBC DAC23 MIXERDG                        0 0
10      INT     1       VBC MIXERDG_DA01 STEP                    4096
11      INT     1       VBC MIXERDG_DA23 STEP                    1
12      INT     1       VBC DACL DG Set                          35
13      INT     1       VBC DACR DG Set                          35
14      INT     1       VBC ADCL DG Set                          16
15      INT     1       VBC ADCR DG Set                          16
16      INT     1       VBC ADC23L DG Set                        24
17      INT     1       VBC ADC23R DG Set                        24
18      INT     1       VBC STL DG Set                           24
19      INT     1       VBC STR DG Set                           24
20      BOOL    1       VBC DACL DG Switch                       On
21      BOOL    1       VBC DACR DG Switch                       On
22      BOOL    1       VBC ADCL DG Switch                       On
23      BOOL    1       VBC ADCR DG Switch                       On
24      BOOL    1       VBC ADC23L DG Switch                     Off
25      BOOL    1       VBC ADC23R DG Switch                     Off
26      BOOL    1       VBC STL HPF Switch                       Off
27      BOOL    1       VBC STR HPF Switch                       Off
28      INT     1       VBC STL HPF Set                          3
29      INT     1       VBC STR HPF Set                          3
30      BOOL    1       VBC AD0 DG Mux                           Off
31      BOOL    1       VBC AD1 DG Mux                           Off
32      BOOL    1       VBC AD2 DG Mux                           Off
33      BOOL    1       VBC AD3 DG Mux                           Off
34      ENUM    1       VBC DA IIS Mux                           AUDIIS0
35      INT     1       VBC DA EQ Profile Select                 0
36      INT     1       VBC AD01 EQ Profile Select               -1
37      INT     1       VBC AD23 EQ Profile Select               -1
38      INT     1       VBC_DA_SRC                               0
39      BOOL    1       VBC_FM_MUTE_DIRECT                       Off
40      BOOL    1       VBC_FM_UNMUTE_SMOOTH                     Off
41      INT     1       VBC FM_MUTE_SMOOTHDG STEP                1
42      BOOL    1       VBC_IIS_WIDTH_SEL                        Off
43      BOOL    1       VBC_DA_IIS_LRMOD_SEL                     Off
44      BOOL    1       VBC_AD01_IIS_LRMOD_SEL                   Off
45      BOOL    1       VBC_AD23_IIS_LRMOD_SEL                   Off
46      ENUM    1       SYS_IIS0                                 ap_iis0
47      ENUM    1       SYS_IIS1                                 vbc_iis1
48      ENUM    1       SYS_IIS2                                 vbc_iis1
49      ENUM    1       SYS_IIS3                                 vbc_iis1
50      ENUM    1       SYS_IIS4                                 vbc_iis1
51      BOOL    1       IIS_BT_FM_LOOP                           Off
52      BOOL    1       vbc_access_en                            Off
53      ENUM    1       VBC DAC0 Mixer Mux Sel                   by eq
54      ENUM    1       VBC DAC1 Mixer Mux Sel                   by eq
55      ENUM    1       VBC ST0 Mixer Mux Sel                    by eq
56      ENUM    1       VBC ST1 Mixer Mux Sel                    by eq
57      ENUM    1       VBC DAC0 Mixer Out Sel                   by eq
58      ENUM    1       VBC DAC1 Mixer Out Sel                   by eq
59      ENUM    1       VBC ST0 Mixer Out Sel                    by eq
60      ENUM    1       VBC ST1 Mixer Out Sel                    by eq
61      INT     1       SPKL Playback Volume                     3
62      INT     1       HPL Playback Volume                      1
63      INT     1       HPR Playback Volume                      7
64      INT     1       EAR Playback Volume                      6
65      INT     1       ADCL Capture Volume                      6
66      INT     1       ADCR Capture Volume                      6
67      INT     1       DAC Playback Volume                      2
68      INT     1       Inter PA Config                          2
69      BOOL    1       DACL Switch                              On
70      BOOL    1       DACR Switch                              On
71      BOOL    1       MIC Bias Switch                          Off
72      BOOL    1       HEADMIC Bias Switch                      Off
73      BOOL    1       DACLSPKL Enable                          On
74      BOOL    1       DACRSPKL Enable                          On
75      ENUM    1       Aud Codec Info                           (null)
76      ENUM    1       DAC LRCLK Select                         normal
77      ENUM    1       ADC LRCLK Select                         normal
78      ENUM    1       ADC1 LRCLK Select                        normal
79      ENUM    1       DAS Input Mux                            L+R
80      INT     1       PCM_TOTAL_NORMAL                         0
81      INT     1       PCM_TOTAL_DEEPBUF                        0
82      BOOL    1       Speaker Function                         Off
83      BOOL    1       Speaker1 Function                        Off
84      BOOL    1       Earpiece Function                        Off
85      BOOL    1       HeadPhone Function                       On
86      BOOL    1       Line Function                            Off
87      BOOL    1       Mic Function                             Off
88      BOOL    1       Aux Mic Function                         On
89      BOOL    1       HP Mic Function                          Off
90      BOOL    1       DMic Function                            Off
91      BOOL    1       DMic1 Function                           Off
92      BOOL    1       Digital FM Function                      Off
93      BOOL    1       Speaker Mute                             Off
94      BOOL    1       Speaker2 Mute                            Off
95      BOOL    1       HeadPhone Mute                           Off
96      BOOL    1       Earpiece Mute                            Off
97      ENUM    1       SmartAmp Boost                           Bypass
98      ENUM    1       ST0 CHAN MUX                             AD01
99      ENUM    1       ST1 CHAN MUX                             AD01
100     ENUM    1       ST0 INMUX                                AD0(2)ST0
101     ENUM    1       ST1 INMUX                                AD1(3)ST1
102     ENUM    1       AD0 INMUX                                IIS0AD0
103     ENUM    1       AD1 INMUX                                IIS1AD1
104     ENUM    1       AD2 INMUX                                IIS2AD2
105     ENUM    1       AD3 INMUX                                IIS3AD3
106     ENUM    1       AD IISMUX                                DIGFM
107     ENUM    1       AD23 IISMUX                              AUDIIS1
108     ENUM    1       DA0 ADDFM MUX                            BYPASS(ST)
109     ENUM    1       DA1 ADDFM MUX                            BYPASS(ST)
110     ENUM    1       DA0 ADDST MUX                            BYPASS(ST)
111     ENUM    1       DA1 ADDST MUX                            BYPASS(ST)
112     BOOL    1       Aud Loop in VBC Switch                   Off
113     BOOL    1       Aud1 Loop in VBC Switch                  Off
114     ENUM    1       HPL EAR Sel                              EAR
115     BOOL    1       HPL Mixer DACLHPL Switch                 Off
116     BOOL    1       HPR Mixer DACRHPR Switch                 Off
117     BOOL    1       SPKL Mixer DACLSPKL Switch               On
118     BOOL    1       SPKL Mixer ADCLSPKL Switch               Off
119     BOOL    1       SPKL Mixer ADCRSPKL Switch               Off
120     BOOL    1       SPKR Mixer ADCLSPKR Switch               Off
121     BOOL    1       SPKR Mixer ADCRSPKR Switch               Off
122     BOOL    1       EAR Mixer DACLEAR Switch                 Off
123     BOOL    1       ADCL Mixer MainMICADCL Switch            Off
124     BOOL    1       ADCL Mixer AuxMICADCL Switch             Off
125     BOOL    1       ADCL Mixer HPMICADCL Switch              On
126     BOOL    1       ADCR Mixer MainMICADCR Switch            Off
127     BOOL    1       ADCR Mixer AuxMICADCR Switch             Off
128     BOOL    1       ADCR Mixer HPMICADCR Switch              On
129     BOOL    1       ADC-DAC Adie Loop switch                 Off
130     BOOL    1       ADC1-DAC Adie Loop switch                Off
131     BOOL    1       ADC-DAC Digital Loop switch              Off
132     BOOL    1       ADC1-DAC Digital Loop switch             Off
133     BOOL    1       Virt Output Switch                       On
134     BOOL    1       Virt HP Jack Switch                      Off

或者 

 针对某一条通路开关手动开关或者读取状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/626453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

prompt工程策略(四:仅使用 LLM 分析数据集,不使用插件或代码)

原文&#xff1a;我是如何赢得GPT-4提示工程大赛冠军的 原文的原文&#xff1a; How I Won Singapore’s GPT-4 Prompt Engineering Competition 插件&#xff1a;OpenAI 为 GPT-4 版本的 ChatGPT 提供的 Advanced Data Analysis&#xff08;高级数据分析&#xff09;插件 ——…

百望云钉钉:重塑财务智能化管理,助力企业实现数字化飞跃

近年来&#xff0c;数字技术正在深刻改变着企业生产方式和组织模式&#xff0c;企业面连着业务流程再造、经营模式创新等一系列建设挑战。 其中&#xff0c;财务部门从价值守护走向价值创造的过程中&#xff0c;展现出对企业经营与业务发展的巨大影响力。叠加金税四期税务改革&…

【智能优化算法】雁群优化算法(Wild Geese Algorithm,WGA)

雁群优化算法(Wild Geese Algorithm,WGA)是期刊“Array”的2021年智能优化算法 01.引言 雁群优化算法(Wild Geese Algorithm,WGA)用于大规模全局优化&#xff0c;并利用IEEE CEC 2008和CEC 2010高维D100、500、1000特别会议的大规模测试函数验证了该算法的效率和性能。WGA的灵…

内网渗透—域信息收集防火墙策略同步不出网隧道上线

1、前言 最近在学域渗透方面的知识&#xff0c;这里就记录一下。主要涉及到什么是域&#xff0c;域的信息收集&#xff0c;防火墙的策略同步&#xff0c;以及当主机出网的协议被封杀时如何利用隧道上线。 2、什么是域 域是一个有安全边界的计算机集合&#xff0c;在域内的计…

干部选拔任用的重要性与实践策略

在当今的组织管理中&#xff0c;干部选拔任用是一项至关重要的工作。它不仅关系到组织的稳定与发展&#xff0c;更直接影响到组织的效能和竞争力。因此&#xff0c;科学、公正、有效的干部选拔任用机制对于组织的长期健康发展具有不可忽视的意义。 一、干部选拔任用的重要性 …

华为涅槃,余承东重生

最近一段时间&#xff0c;余承东甚为低调。最为明显的是&#xff0c;“遥遥领先”已经听不到了&#xff0c;“余大嘴”口中的措辞越来越克制。 今后手机相关的发布会&#xff0c;或许不再看到余承东的身影。 5月10日&#xff0c;余承东的职位正式更新&#xff0c;从终端BG CE…

xFormers

文章目录 一、关于 xFormers二、安装 xFormers三、基准测试&#xff08;可选&#xff09;测试安装 四、使用 xFormers1、Transformers 关键概念2、Repo 地图注意力机制Feed forward mechanismsPositional embeddingResidual pathsInitializations 3、主要特征4、安装故障排除 一…

POETIZE个人博客系统源码 | 最美博客

简介&#xff1a; POETIZE个人博客系统源码 | 最美博客 这是一个 SpringBoot Vue2 Vue3 的产物&#xff0c;支持移动端自适应&#xff0c;配有完备的前台和后台管理功能。 网站分两个模块&#xff1a; 博客系统&#xff1a;具有文章&#xff0c;表白墙&#xff0c;图片墙&…

【UnityShader入门精要学习笔记】第十二章 屏幕后处理效果

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 建立一个基…

元宇宙,可能是未来经济新趋势,但不是文明的跃升

为什么说元宇宙是未来的一个经济趋势&#xff0c;甚至是一个即将来临的风口&#xff0c;说到元宇宙&#xff0c;相信大家都听说过&#xff0c;但是真正了解的人还是占少部分的。其实概率很容易理解&#xff0c;我们可以把他看成是一个虚拟世界&#xff0c;一个平行空间&#xf…

菲律宾签证照片尺寸要求,用手机生成

菲律宾签证照片尺寸要求如下图所示&#xff0c;可以用手机在微信搜索随时照小程序&#xff0c;快速生成哦。

做私域,该如何从公域向私域引流?

说到私域运营&#xff0c;很多人首先就会想到&#xff1a;私域流量。企业做私域&#xff0c;流量从哪来&#xff1f;该怎样去引流&#xff1f;又该如何保障私域流量的质量等一系列问题&#xff0c;都需要企业一一解决。所以&#xff0c;今天&#xff0c;我们就来探讨一下&#…

产品经理资料包干货

1.《产品汪》免费电子书 2016年我面试了差不多有200多位产品求职者&#xff0c;其中不乏之前做厨师编剧这些岗位的人。在这个过程中我意识到大众或许对产品经理这个岗位存在一些认知和理解上的误差&#xff0c;于是我就想着写一本产品经理相关的书。 关于本书的更多信息可查看…

dvwa靶场 Content Security Policy (CSP) Bypass(CSP绕过)全难度教程(附代码分析)

前置知识 Content Security Policy&#xff08;内容安全策略&#xff09;&#xff0c;用于定义脚本和其他资源从何处加载或者执行&#xff0c;总结的来说就时白名单。会一定程度的缓解xss脚本问题&#xff0c;也可以自己设定规则&#xff0c;管理网站允许加载的内容。 CSP 以…

简单记录下:Navicat 导出表结构至 Excel

首先我们需要通过sql语句查询出相关的表结构的结构 SELECT COLUMN_NAME AS 字段名称,COLUMN_TYPE AS 字段类型,IF(IS_NULLABLENO,否,是) AS 是否必填,COLUMN_COMMENT AS 注释FROM INFORMATION_SCHEMA.COLUMNSWHERE table_schema bs-gdsAND table_name sys_menu;查询的结构如下…

Linux下Code_Aster源码编译安装及使用

目录 软件介绍 基本依赖 其它依赖 一、源码下载 二、解压缩 三、编译安装 四、算例运行 软件介绍 Code_aster为法国电力集团&#xff08;EDF&#xff09;自1989年起开始研发的通用结构和热力耦合有限元仿真软件。Code_aster可用于力学、热学和声学等物理现象的仿真分析&…

LQ杯当时的WP

RC4 32位程序用IDA打开看看 进行反汇编 RC4提示&#xff0c;就是一个加密 在sub_401005函数中找到输出的变量&#xff0c;并且立下断点 动调 Packet 字符串搜索flag 看到是给192.168.11.128发送了cat flag的命令 看到它回传 Base64加密了 解一下密码就可以 CC 密码这…

Windows snmp++获取本地主机信息

编译snmp的包 调用snmp.lib实现信息获取_哔哩哔哩_bilibili 代码&#xff1a; #include <iostream> #include <libsnmp.h> #include <vector> #include <fstream> #include <string> #include "snmp_pp/snmp_pp.h" //#define _NO_L…

Go微服务: Gin框架搭建网关, 接入熔断器,链路追踪以及服务端接入限流和链路追踪

概述 本文使用最简单和快速的方式基于Gin框架搭建一个微服务的网关调用微服务的场景网关作为客户端基于RPC调用某一服务端的服务并接入熔断和限流以及链路追踪具体场景&#xff1a;通过网关API查询购物车里的数据在最后&#xff0c;会贴上网关和购物车服务的代码仓库 服务端搭…

端口号查询进程PID

情况1&#xff1a;由于 idea 突然闪退&#xff0c;导致正在 debug 的 Java 进程没结束掉&#xff0c;端口还在占用&#xff0c;重新 debug 不了&#xff0c;所以需要到任务管理器把进程结束掉 但问题是如果当任务管理器进程同时有多个 Java 进程在运行&#xff08;而且名字一样…