[Linux Audio Driver] line-out强制配置成headset

MSM8953增加新的音频设备 这里以喇叭为例,阐述如何添加一个新的音频设备。 1、 修改音频路由配置文件 mixer_paths_qrd_sku3.xml,添加音频设备路由。代码位置: hardware/qcom/audio/configs/msm8953/mixer_paths_qrd_sku3.xml。 <path name="speaker-extra"> <ctl name="RX3 MIX1 INP... 阅读详情

0. 背景

平台: android 7、 MSM8953、kernel version: msm-3.18

别问为啥要改这个,问就是硬件的坑mmp。

在这里插入图片描述

1. 修改方法

文件路径: kernel/msm-3.18/sound/soc/codecs/wcd-mbhc-v2.c
@@ -816,6 +816,10 @@ static void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc,
 		 __func__, mbhc->current_plug, plug_type);
 
 	WCD_MBHC_RSC_ASSERT_LOCKED(mbhc);

+	if(plug_type == MBHC_PLUG_TYPE_GND_MIC_SWAP){
+		plug_type = MBHC_PLUG_TYPE_HEADSET;
+	}
 
 	if (mbhc->current_plug == plug_type) {
 		pr_debug("%s: cable already reported, exit\n", __func__);
@@ -1920,6 +1924,7 @@ static bool wcd_mbhc_fw_validate(const void *data, size_t size)
 
 static irqreturn_t wcd_mbhc_btn_press_handler(int irq, void *data)
 {
+if (0){
 	struct wcd_mbhc *mbhc = data;
 	int mask;
 	unsigned long msec_val;
@@ -1963,9 +1968,10 @@ static irqreturn_t wcd_mbhc_btn_press_handler(int irq, void *data)
 		WARN(1, "Button pressed twice without release event\n");
 		mbhc->mbhc_cb->lock_sleep(mbhc, false);
 	}
-done:
 	pr_debug("%s: leave\n", __func__);
 	WCD_MBHC_RSC_UNLOCK(mbhc);
+}
+done:
 	return IRQ_HANDLED;
 }

2. 作者注

/******
@article{Linux Audio Driver,
Author = { 1byte ≠ 8bit},
Year = { 2020},
}
******/
高通msm8953 Android7.1支持Audio设备列表(十二) 简介:优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!】🚀】🚀人生格言:人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.​更多原创,欢迎关注:Android系统攻城狮​1.前言本篇目的:理解高通msm8953 Android7.1支持Audio设备列表。 阅读详情

相关推荐

gdb对dwarf调试信息的解析和使用

gdb的对dwarf的调试信息的解析到使用的过程分析

JS072110的专栏 9568

android耳机的各种按键,高通Android平台 耳机按键配置方法

在srclinuxandroidkernelsoundsocMsmMsm8x16.c中static void *def_msm8x16_wcd_mbhc_cal(void){void *msm8x16_wcd_cal;struct wcd_mbhc_btn_detect_cfg *btn_cfg;u16 *btn_low, *btn_high;msm8x16_wcd_cal = kzalloc(s...

weixin_34660766的博客 1083

MAX96712解串器MIPI CSI-2输出配置全解析:从Video Pipe映射到DPLL速率设置(以4路YUV422摄像头为例)

本文详细解析了MAX96712解串器在MIPI CSI-2输出配置中的关键步骤,包括Video Pipe映射、寄存器配置和DPLL速率设置。通过具体示例和代码片段,帮助开发者优化4路YUV422摄像头系统的图像传输稳定性和画质表现,适用于汽车电子和工业视觉应用。

weixin_30776273的博客 433

Headset驱动的设计与实现

Android移植调试工作过程中,关于驱动这一块

姥姥教我学编程 2462

Linux平台CCS安装配置完整示例

手把手讲解在Linux系统中完成CCS安装与环境配置的全过程,涵盖关键步骤与常见问题解决,是查找ccs安装教程时不可多得的实战指南。

weixin_42601134的博客 515

TC275-AutoSAR实战:Davinci Cfg多核OS配置与调试技巧

本文详细介绍了在TC275芯片上使用Davinci Cfg工具进行AutoSAR多核操作系统配置的实战步骤与调试技巧。内容涵盖从导入arxml文件的常见“坑”开始,到配置Det、EcuC、创建多核OS实例、关联OS应用、创建任务与设置优先级调度,最后分享了利用Det日志、调试器多核视图及处理核间通信与缓存一致性等关键调试方法,旨在帮助开发者高效完成复杂车载ECU软件集成。

weixin_29219189的博客 489

高通平台的耳机检测(msm8909)

          记录高通msm8909耳机检测的机制,相关代码 kernel/arch/arm/boot/dts/qcom/msm8909-qrd-skuc.dtsi sound { compatible = "qcom,msm8x16-audio-codec"; qcom,model = "msm8909-skuc-snd-card"; qcom,msm-snd-card...

Android开发 1万+

GPFS扩展技术原理(十一)-FMDN广播与EID加解密

GFPS扩展技术原理(十一)FMDN广播及EID加解密

十多年蓝牙协议软件开发,擅长蓝牙协议分析 935

耳机调试学习记录

文章目录耳机阻抗AUDIO DTSI耳机初始化耳机插拔的中断处理耳机类型的处理阻抗值的读取耳机阻抗检测log 耳机阻抗 具有电阻、电感和电容的电路里,对交流电所起的阻碍作用叫做阻抗。阻抗常用Z表示。阻抗由电阻、感抗和容抗三者组成,但不是三者简单相加,阻抗的单位是欧。 耳机的阻抗是交流阻抗的简称,阻抗越小,耳机越容易出声、越容易驱动。电视等有耳机插孔输出的机器上,一般使用中高阻抗的耳机比较适宜。低阻...

ch853199769的博客 4712

数据分析必问:Pandas面试题及参考答案

DataFrame是Pandas库中的一个核心数据结构,它类似于Excel中的表格,可以存储不同类型的数据。在Pandas中,抽样操作通常很简单,但是需要根据数据的特点和分析的需求来选择合适的抽样方法。数据标准化和归一化是数据预处理中常用的技术,目的是将数据调整到一个合适的范围内,以消除不同特征量纲和数值范围的差异,从而保证模型训练的有效性。CSV文件是一种文本文件,其中的数据以逗号分隔。不平衡数据集指的是数据集中各类别样本的数量差异较大的情况,这可能导致模型训练出现偏差,影响模型的泛化能力。

大模型大数据攻城狮的专栏 3009

【华为OD技术面试手撕真题】3、小行星碰撞 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

小行星碰撞,本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS),思路分析都非常详细, 实现最低的时间复杂度和高通过率,每个解题思路超过百字,内含各个编程语言的八股文面试题,欢迎大家订阅学习, 代码可以直接运行使用,全网限时最低价,持续更新

KJ.JK 8171

高通平台耳机类型识别

耳机类型 耳机类型一般有两种3段式耳机和4段式耳机。

qq_40933044的博客 3739

全志V3S嵌入式驱动开发(编译器升级到7.5)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 看过我们文章的朋友都知道,前面为了做v3s的驱动,对linux kernel进行了两次升级。第一次升级时从4.10.y升级到4.14.y,另外一次升级是从4.14.y升级到5.2.y。这中间最主要的原因,就是为了驱动适配的需要,更新的内核可以对硬件驱动有更好的支持,架构也更合理。 如果说内核升级尚且可以理解,那为什么要对编译器升级呢?这里面,最重要的一点就是语言的升

嵌入式-老费,一个分享专业嵌入式知识的blog 1167

QCOM耳机检测功能是如何注册input设备的

//------------------------------------------------------------------------------------------------------------- 硬件: PM-8909管脚HS_DET(J12) //---------------------------------------------------------

xuecz1230的博客 2730

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

PM8916 Codec Hardware Multibutton Headset Control (MBHC)

这个是NC和NO的区别在det脚的初始的状态。 qcom,msm-mbhc-hphl-swh = <0>; 拉低中断, 简单的理解就是低电平检测还是高电平检测 static const struct wcd_mbhc_intr intr_ids = { .mbhc_sw_intr = MSM8X16_WCD_IRQ_MBHC_HS_DET, .mbhc_btn_pr

lsn946803746的专栏 3858

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

高通音频MBHC耳机系统软件相关配置归纳

Bin.Z的博客 2993

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

WCD9335 audio driver Probe函数分析

源码位于kernel\sound\soc\codecs\Wcd9335.c 1. 模块初始化入口代码放在了module_platform_driver()这个函数中,关于这个函数的解析,请看博客链接如下, http://blog.youkuaiyun.com/jgw2008/article/details/52690602 module_platform_driver(tasha_codec

jgw2008的专栏 4033

msm8953抓取audio kernel dsp log

1.打开kernel log echo -n "file q6afe.c +p" > /sys/kernel/debug/dynamic_debug/control echo -n "file q6asm.c +p" > /sys/kernel/debug/dynamic_debug/control echo -n "file q6adm.c +p" > /sys/kernel...

Android系统攻城狮 791

【audio】坚果Pro配置双扬声器

前言 基于坚果pro手机,设置扬声器播放右声道,听筒播放左声道。 暂时先忽略听筒功率因素,是否能达到左右声道响度相当情况。 查看mixer_path配置 mixer_path.xml文件一般存放在vendor/etc目录下,该目录下可能存放多个mixer_path.xml,例如:mixer_path.xml和mixer_path_mtp.xml。 mixer_path.xml是官方提供的示例,通常情况下使用的mixer_path文件是存在后缀的,开发时会根据平台配置不同的xml文件,代码中一般会根据声卡名字

qq_38091632的博客 4524

高通平台耳机知识记录(转载)

一. 在高通平台中,默认使用内部codec的时候,耳机的输出及控制都是在内部codec中进行的,所以,可以想象得到,耳机的整个初始化起源过程,是在codec的初始化中。高通平台的machine驱动文件一般都是平台名字开头的,例如8974的是msm8974.c, 8998的是msm8998.c,8909的是msm8x16.c。可以通过cat proc/asound/cards找到声卡的名字,根据名字可以找到该平台的machine驱动文件。同时可以根据machine驱动的compatible的名字,找到dts

jlgcumt的博客 2753

Android4.x耳机插拔检测实现方法

Android4.x耳机插拔检测实现方法 2.耳机的类型 从主观来看,耳机分三段耳机和四段耳机,而四段耳机又分为欧标和美标两种。通常,四段耳机被写作headset,而三段耳机写作headphones。具体的区别如下图: l三段耳机:线序分别为,L、R、G,没有MIC端,所以三段耳机无法使用mic,只能接受声音,另外,三段耳机L,R线序长度正常,G端比较长 l四段-美标(CTIA)...

late0001的专栏 2944

高通平台根据阻抗值判断耳机类型

入口函数:初始化MBHC ADC相关函数指针到MBHC结构 void wcd_mbhc_adc_init(struct wcd_mbhc *mbhc) { if (!mbhc) { pr_err("%s: mbhc is NULL\n", __func__); return; } mbhc->mbhc_fn = &mbhc_fn; INIT_WORK(&mbhc->correct_plug_swch, wcd_correct_swch_plug); } ..

极创it的博客 1701

[Linux Audio Driver] MSM8953音频部分设备树调用关系

这个是以前实习的时候画的图,调用关系是后面的覆盖前面的,右边的覆盖左边的。 (此图为例-第二个加载的会覆盖第一个加载的) 如上图,一般我习惯使用msm8953-audio.dtsi

编程菜汝狗 1203

MSM8953 audio dts 代码跟踪

跟一下msm8953音频的dts。 msm8953-audio-mtp.dtsi &int_codec { status = "okay"; qcom,model = "msm8953-snd-card-mtp"; qcom,msm-hs-micbias-type = "internal"; // 具有内部MICBIAS qcom,msm-spk-ext-...

weixin_30657541的博客 1402

解决msm8953 mic 录音底噪问题

--- a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm-audio.dtsi +++ b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm-audio.dtsi @@ -323,12 +323,12 @@ "RX_BIAS", "MCLK", ...

houyizi337825770的专栏 1747

msm8953+android8.1接听电话时声音由默认听筒输出改为外放输出

方法一,修改frameworks/av//services/audiopolicy/enginedefault/src/Engine.cpp Engine::getDeviceForStrategyInt()函数的case STRATEGY_PHONE下 switch (mForceUse[AUDIO_POLICY_FORCE_FOR_COMMUNICATION]) { … default: // FORCE_NONE … device = availableOutputDevicesType &am

jinron10的专栏 1157
上一篇: windows自带桌面管理工具使用方法
下一篇: [Linux Device Driver] 组合按键
1byte ≠ 8bit
博客等级 码龄8年 7242粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值