Android 5.1-7.1 高通驱动修改 - 上篇

本文详细介绍了如何修改高通驱动,包括打开驱动日志、移除emmc版本检查、修改充电电流限制、添加紧急下载模式等,特别针对MSM8909平台,涉及音频、电池和充电功能的优化与调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1:打开驱动日志

 2:移除emmc版本检查

 3:在系统崩溃时关闭qload mode

 4:打开关机充电功能 

5:打开lk串口日志

6:高通8909 驱动修改充电电流限制[kernel]

7:bootloader中添加emergency download mode (组合按键开机)

8:高通平台禁用热插拔 

9:高通平台电池直冲实时刷新电量

10:打开wcd-mbhc-v2.c 耳机插拔的日志

 11:打开q6asm.c 驱动日志

12:usb或dc充电插入时打开电源

 13:修复MSM8909 4.4  音频声音跳变呼大呼小问题


1:打开驱动日志

--- a/kernel/arch/arm/configs/msm8909-1gb_defconfig
+++ b/kernel/arch/arm/configs/msm8909-1gb_defconfig
@@ -614,3 +614,5 @@ CONFIG_MSM_CORE_CTL_HELPER=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP=y
 CONFIG_SECCOMP_FILTER=y
+CONFIG_DEBUG_LL=y
+CONFIG_EARLY_PRINTK=y

 2:移除emmc版本检查

diff --git a/kernel/drivers/mmc/core/mmc.c b/kernel/drivers/mmc/core/mmc.c
old mode 100644
new mode 100755
index 4ede8e3..4df1712
--- a/kernel/drivers/mmc/core/mmc.c
+++ b/kernel/drivers/mmc/core/mmc.c
@@ -328,12 +328,13 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd)
        }
 
        card->ext_csd.rev = ext_csd[EXT_CSD_REV];
-       if (card->ext_csd.rev > 7) {
+       //richal add:disable emmc version check
+       /*if (card->ext_csd.rev > 7) {
                pr_err("%s: unrecognised EXT_CSD revision %d\n",
                        mmc_hostname(card->host), card->ext_csd.rev);
                err = -EINVAL;
                goto out;
-       }
+       }*/
 
        /* fixup device after ext_csd revision field is updated */
        mmc_fixup_device(card, mmc_fixups);

 3:在系统崩溃时关闭qload mode

diff --git a/kernel/drivers/power/reset/msm-poweroff.c b/kernel/drivers/power/reset/msm-poweroff.c
old mode 100644
new mode 100755
index b0aa6b0..854c8db
--- a/kernel/drivers/power/reset/msm-poweroff.c
+++ b/kernel/drivers/power/reset/msm-poweroff.c
@@ -63,7 +63,7 @@ static void *emergency_dload_mode_addr;
 static bool scm_dload_supported;
 
 static int dload_set(const char *val, struct kernel_param *kp);
-static int download_mode = 1;
+static int download_mode = 0;  //richal changed:disable qdload mode
 module_param_call(download_mode, dload_set, param_get_int,
                        &download_mode, 0644);
 static int panic_prep_restart(struct notifier_block *this,

 4:打开关机充电功能 

修改/android/bootable/bootloader/lk/app/aboot/aboot.c
 


unsigned char *update_cmdline(const char * cmdline)
{
           。。。。省略代码
         if (boot_into_recovery && gpt_exists)
                cmdline_len += strlen(secondary_gpt_enable);

        if (boot_into_ffbm) {
                cmdline_len += strlen(androidboot_mode);
                cmdline_len += strlen(ffbm_mode_string);
                /* reduce kernel console messages to speed-up boot */
                cmdline_len += strlen(loglevel);
        } else if (boot_reason_alarm) {
                cmdline_len += strlen(alarmboot_cmdline);
        } else if (/*device.charger_screen_enabled &&*/    //注释掉
                        target_pause_for_battery_charge()) {
                pause_at_bootup = 1;
                cmdline_len += strlen(battchg_pause);
        }
        。。。。省略代码
}
            

在代码中修改 device.charger_screen_enabled 即可。

低版本 可能加个

target_build_variant_user()  在User版本才能进入关机充电debug正常  

此方法在 android/bootable/bootloader/lk/target/init.c

方法二:

diff --git a/bootable/bootloader/lk/app/aboot/aboot.c b/bootable/bootloader/lk/app/aboot/aboot.c
old mode 100644
new mode 100755
index e8deb82..10145b5
--- a/bootable/bootloader/lk/app/aboot/aboot.c
+++ b/bootable/bootloader/lk/app/aboot/aboot.c
@@ -268,6 +268,12 @@ unsigned char *update_cmdline(const char * cmdline)
 	if (boot_into_recovery && gpt_exists)
 		cmdline_len += strlen(secondary_gpt_enable);
 
+#if USER_BUILD_VARIANT
+	device.charger_screen_enabled = 1;
+#else
+	device.charger_screen_enabled = 0;
+#endif
+
 	if (boot_into_ffbm) {
 		cmdline_len += strlen(androidboot_mode);
 		cmdline_len += strlen(ffbm_mode_string);
-- 

5:打开lk串口日志

diff --git a/bootable/bootloader/lk/project/msm8909.mk b/bootable/bootloader/lk/project/msm8909.mk
old mode 100644
new mode 100755
index afc40f6..007499a
--- a/bootable/bootloader/lk/project/msm8909.mk
+++ b/bootable/bootloader/lk/project/msm8909.mk
@@ -20,7 +20,7 @@ ENABLE_PWM_SUPPORT := true
 
 #DEFINES += WITH_DEBUG_DCC=1
 DEFINES += WITH_DEBUG_LOG_BUF=1
-DEFINES += WITH_DEBUG_UART=0
+DEFINES += WITH_DEBUG_UART=1
 #DEFINES += WITH_DEBUG_FBCON=1
 DEFINES += DEVICE_TREE=1
 #DEFINES += MMC_BOOT_BAM=1

6:高通8909 驱动修改充电电流限制[kernel]

定位文件:kernel/arch/arm/boot/dts/qcom/msm-pm8909.dtsi


 pm8909_chg: qcom,charger {
                            ....
                        qcom,ibatsafe-ma = <1000>;  // 1000 1A
                        qcom,thermal-mitigation = <1000 720 630 0>;  //1000A
                        //qcom,ibatsafe-ma = <1440>;  //
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值