android factorymode下回路测试无声音问题解析

news/2024/10/18 14:23:20/

一、            问题描述

进入factory mode后在进行回路测试项时,第一次测试可以听到声音,但之后再进行测试时无法听到声音。

二、            factory回路测试项代码流程

主要涉及代码为:

mediatek/factory/src/test/ftm_audio.cpp

mediatek/factory/src/test/ftm_audio_Common.cpp

1.    audio_init

在init函数中主要是分配内存空间和注册功能函数

回路测试项目使用的的主要函数是mAudio_reveiverloopback_entry

2.    mAudio_reveiverloopback_entry

在这个接口中主要有4个功能

(1)      输出显示信息

staticitem_taudio_items_loopback[]= {

#ifdefMTK_DUAL_MIC_SUPPORT

    {ITEM_MIC1,uistr_info_audio_loopback_dualmic_mi1, 0},//选择MIC1

    {ITEM_MIC2,uistr_info_audio_loopback_dualmic_mi2, 0},//选择MIC2

#endif

    {ITEM_PASS, uistr_pass, 0},//测试通过

    {ITEM_FAIL, uistr_fail, 0},//测试失败

    {-1, NULL, 0},

};

(2)      初始化audio和headset

这里默认使用MIC1

(3)      监控用户操作

首先获取headset信息

然后做了do{}while(1)循环,用来检测用户的操作

例如选择了MIC1,就会设定需要打开MIC1,即设定g_loopback_item = 1,在Audio_Headset_detect_thread中会使用此项来作为打开MIC 1或者MIC2的判断条件

在退出循环后即退出此项测试后,会根据之前获取的headset信息(headset是否可用等信息)及选择的MIC1或者MIC2来disable 之前的打开项

(4)      创建Audio_Headset_detect_thread线程

 

3.    Audio_Headset_detect_thread

(1)      获取headset信息Audio_headset_update_info(hds, hds->info);

例如目前headset是否可用等信息,这一点在界面上有显示项,也是后续判断是否需要打开MIC的一个判断项

(2)      设定循环检测来判断需要打开哪一个headset MIC (默认打开MIC1)

HeadsetMic_Receiver_Loopback(MIC1_ON, hds->Headset_mic);

这里还有另外一个判断条件是hds->avail即headset此时是否可用,如果测试hds->avail为0时,会打开

PhoneMic_Receiver_Loopback(MIC1_OFF);

在测试完成退出循环检测后,会再进行一次检测,关闭之前打开的MIC

并且结束线程

 

 

三、           问题解决

问题出在寄存器上,adb shell cat /proc/audio 命令可以输出audio的寄存器配置

AFE_DL_SRC2_1的bit4:3被写成了1,也就是输出通路被mute所导致的

修改方法为:在mediatek/factory/src/test/ftm_audio_Common.cpp中判断headset是否插入前重新配置此寄存器


http://www.ppmy.cn/news/394784.html

相关文章

android4.4.2 boot,MTK6582+Android4.4.2之bootloader recovery 和factory mode等问题

PMIC:MT6323 1. 侧按键硬件设计 我们设备左边侧按键定义为F7,连接到PMIC MT6323的FCHR_ENB引脚,右边1个电源按键直接接到PMIC的PWRKEY,右边的另一个按键(我们定义为F6)连接到CPU的KCOL0和KROW0引脚 2. DrvGen配置codegen.dws文件 mediatek\dct\DrvGen.exe mediatek…

[Factory mode] 怎么配置工厂模式测试项

[Factory mode] 怎么配置工厂模式测试项 [DESCRIPTION] 修改alps/mediatek/custom/$proj/factory/factory.ini配置工厂模式测项 [KEYWORD] Factory mode test [SOLUTION] alps/mediatek/custom/$proj/factory/factory.ini 可以定制Factory mode测试项,如&#x…

MTK 平台屏蔽 factory mode

环境: MT6737 AndroidN 需求:屏蔽factory mode 修改: vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6735/boot_mode.c 注释这段代码: if (!factory_forbidden) { …

徐静蕾字体效果图

最近发生的有争议的事情太多了,几乎每一天网友们都在争论什么天大的事情。抛开其它的话题不说,电脑里能多一种字体并不是坏事。今天终于找到了传说中的静蕾字体,贴几张图供大家参考。中文效果: 英文和数字效果: 符号…

微软面向大众市场发布Office 2010

2010年6月18日,微软中国在北京面向大众市场正式发布Microsoft Office 2010,用户从今天开始,即可通过电子商务网站、传统软件连锁、新兴家电卖场等多种渠道便捷地购买到正版Office 2010。微软还与众多主流电脑制造商合作,在新出厂的…

人脸识别、AI与大数据:技术挑战与突破

——访IEEEFellow,国际知名计算机视觉、模式识别、机器学习、生物特征识别领域理论、技术和应用研究专家,英国Surrey大学博士,中科院资深研究员,中科院优秀百人计划,生物识别与安全技术研究中心主任,中科奥…

爬虫实践---电影排行榜

哈哈!经过几天的学习,已经可以自己独立地慢慢的来写”蜘蛛侠“了,加油! 电影网站:http://dianying.2345.com/top/ 首先对于网站进行浏览,查看一下网页大概信息。 对于大体框架来看,电影有元素…

消耗了大量网络文学资源,漫改剧或成为IP改编的新蓝海

前不久,由猫眼研究院发布的《2018年电视剧市场观察》显示,近几年IP大战消耗了大量网络文学资源,漫改剧或成为IP改编的新蓝海。而随着网络文学改编剧接近饱和,接受二次元漫画文化熏陶的90后、00后成了影视剧的核心收看群体&#xf…