main函数:

vendor/qcom/proprietary/thermal-engine/thermal.c

通过读取soc_id来确认加载哪个配置(有多个配置文件时通过android.mk文件确认编译哪个):

读soc_id:thermal_monitor_init_data->therm_get_msm_id->get_soc_info

根据soc_id通过msm_soc_table确定msm_id:

读取soc_id文件:

#define SYSFS_PLATFORMID   "/sys/devices/soc0/soc_id"

#define SYSFS_PLATFORMID_DEPRECATED   "/sys/devices/system/soc/soc0/id"

8909可以确定为:THERM_MSM_8909

同理通过therm_get_pmic_model得到pmic和subtype_id

pmic: THERM_PMIC_PM8909    subtype_id: THERM_PLATFORM_SUB_QRD

最终确定加载的是:tm_cfgs_8909

通过下图可以看出这是到底温度关闭cpu3的意思

串口有如下打印,意思是停止cpu失败了刚好和上面的限制匹配

可以通过kill服务来验证,因为kill后该服务会自动启动

devices_init->cpufreq_init->do_hotplug

msm8909.dtsi配置cpu温度降频

查看CPU主频

adb shell "cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_available_frequencies"

adb shell "cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq"

adb shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"

adb shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"

adb shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"

查看GPU频率列表

adb shell "cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies"

查看GPU当前频率

adb shell "cat /sys/class/kgsl/kgsl-3d0/devfreq/cur_freq"

设置GPU频率

adb root

adb shell stop mpdecision

adb shell stop thermal-engine

adb shell stop thermald

adb shell rmmod core_ctl

adb shell "echo 409600000 > /sys/class/kgsl/kgsl-3d0/devfreq/max_freq"

adb shell "echo 409600000 > /sys/class/kgsl/kgsl-3d0/devfreq/min_freq"

1、msm8909.dtsi配置的cpu温度降频为什么不起作用?(compatible = "qcom,msm-thermal";)

答:\kernel\drivers\thermal\msm_thermal.c文件中加载了,刚开机也调度了这个限制check_temp,但 是在disable_msm_thermal函数里面又使其不调度了:

/* make sure check_temp is no longer running */

cancel_delayed_work_sync(&check_temp_work);

2、vendor ss-data.c里面配置的.device_mtgn_max_limit代表什么,代码里在哪用到?

答:vendor\qcom\proprietary\thermal-engine\ss_algorithm.c中把device_mtgn_max_limit的值复制给dev_mtgn_max_limit了,dev_mtgn_max_limit在increase_mitigation_lvl里面做比较时使用

3、vendor ss-data.c里面配置的限制频率.device_mtgn_max_limit是53000为什么最后限制的是53333KHz?

答:ss_algorithm.c中increase_mitigation_lvl函数里的判断可以看出:instance->lvl_arr[instance->curr_lvl + 1].lvl.value < instance->dev_mtgn_max_limit,下一个阶梯小于限制限制的,那么就不改限制了,因为这个限制的是最大频率,最小频率不由这里决定。

4、ss-data.c中配置的和thermal_monitor-data-8916.c中配置的有什么区别?

答:配置data的时候一个配置的是.data.ss一个配置的是.data.tm

5、ss-data.c和thermal_monitor-data-8916.c中配置的.algo_type = SS_ALGO_TYPE,和.algo_type = MONITOR_ALGO_TYPE,到底有什么作用?

答:解析的函数策略不一样,获取的数据也不一样,ss-data.c走的是ss_algorithm.c的handle_timer_sig函数。

6、ss-data.c和thermal_monitor-data-8916.c中配置的.sensor = "xo_therm",和.sensor = "cpu1-3",到底有什么作用?

答:代表不同的sensor,如不同的热敏电阻:如handle_timer_sig有temp = sensors_manager_read(algo_clnt[idx].sensor_clnt);中得到温度。

7、ss-data.c和thermal_monitor-data-8916.c中配置的.set_point = 85000,和.set_point_clr = 55000,和.lvl_trig = 85000,和.lvl_clr = 80000,有什么作用?

答:带clr的是恢复原来的限制,不带clr的是进入限制。

8、温度限制充电配置的sensor的温度从哪读到的?

adb shell cat sys/devices/soc/qpnp-vadc-11/xo_therm

adb shell cat sys/devices/soc/qpnp-vadc-11/case_therm

内核dtsi里面的配置

补充:

cpu频率列表在哪,怎么设置不降频?

msm8917.dtsi 中 qcom,cpufreq-table配置类cpu频率列表,把低频的都删掉或者都改成高频,就一定不会降频了

参考:

http://blog.csdn.net/zhangyongfeiyong/article/details/52885897

高通 thermal子系统相关推荐

  1. 高通平台camera 移植过程

    1  camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略:在kernel中实现se ...

  2. 高通与安卓水火不容 Android音频系统缺陷测评

    导读:高通与安卓它们都存在同样的问题.是什么原因导致高通Snapdragon全系列都会存在如此问题?它会带来怎样的影响?与Android搭配的高通产品为什么问题会加重?我们来一一分析. Qualcom ...

  3. Qualcomm 高通芯片组与Android音频系统缺陷测评分析

    转自:http://www.soomal.com/doc/10100002164.htm Qualcomm高通公司是目前Android智能手机上最为知名的ARM架构的处理器和芯片方案硬件提供商,高通公 ...

  4. 高通SDX12:跨子系统数据共享实例分享

    高通SDX12:跨子系统数据共享实例分享 1. 实例背景 1.1 问题现象 1.2 初步分析 1.3 客户SDK版本显示SDK版本 svn号 1.4 SDK版本.模组厂商版本均显示SDK版本 svn号 ...

  5. 高通子系统subsystem基础知识

    翻译了高通相关文档部分内容,结合sm4350平台项目做的总结: 1,基本概念 Subsystem The system on chip (SoC) consists of a main APSS pr ...

  6. Android 系统自动重启Bug(高通平台)

    点击打开链接 最近客户反馈了一个Bug,我们的系统用着用着会自动重启,尤其是在拨号的时候极容易死机或者进入下载模式.根据老大和高通的支持得到了一个解决方案. 在Android系统中,有这么一个文件夹: ...

  7. 高通msm8994启动流程简介

    处理器信息 8994包含如下子系统: 子系统 处理器 含义 APSS 4*Cortex-A53 应用子系统 APSS 4*Cortex-A57 应用子系统 LPASS QDSP6 v5.5A(Hexa ...

  8. 高通android开发摘要

    一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参 ...

  9. Android 功耗(3)---高通功耗问题分析方法

    高通功耗问题分析 高通官方提供了一篇文档extensive_power_debug_guide_(simplified_chinese功耗调试).pdf  用来分析中断功耗问题. 本文结合该文档简单的 ...

  10. 高通camera架构讲解

    转自:http://www.cnblogs.com/thjfk/p/4086001.html Camera原理:外部光线穿过lens后,经过color filter滤波后照射到sensor面上,sen ...

最新文章

  1. 陆奇:不确定的世界需要更多对话,人工智能需要人监督
  2. iphone分辨率_目前最值得入手的三款安卓机!流畅度堪比iPhone,用三五年不过时...
  3. 皮一皮:这才是持之以恒的专一...
  4. 深入理解Android Paging分页加载库
  5. linux rpm 查看安装目录下,Linux如何修改RPM的安装目录?
  6. 使用System Center DPM 2012 SP1保护企业关键数据(二)备份及恢复AD
  7. SQLite学习手册(命令行工具)
  8. 深度学习入门必须理解这25个概念
  9. 如何在Java中针对XSD验证XML
  10. 厌倦 VMware,试试更轻量级的虚拟机!
  11. 使用javamail发送包含八位验证码的邮件(完美解决中文乱码问题)
  12. Hyperf初体验-JsonRpc的使用
  13. 解决VS 2017/2019社区版无法登陆的方法
  14. 资本纷纷入局,咖啡赛道还能香多久?
  15. linux下cat导出日志,Linux命令:cat
  16. h5php大转盘抽奖,Vue.js实现大转盘抽奖总结及实现思路
  17. ios 获取沙盒文件名_iOS之沙盒路径
  18. [Android各版本特性]Android 4.4 Kitkat
  19. 031:vue+openlayers加载GPX数据(代码示例)
  20. @Deprecated的使用

热门文章

  1. Android使用BottomNavigationView+NavigationUI报错
  2. 【转】win10更改C盘中用户文件夹名
  3. 【数据库设计及SQL代码实现】英皇电影院电影管理系统
  4. linux下配置Tilera MDE4.1.8方法
  5. 新版个人所得税计算python_用 Python 写个2019年专项扣除新个人所得税计算器
  6. “汽车人”眼中的网络安全-网络安全的5W1H
  7. HDU - 5773 - The All-purpose Zero 【必做题目之LIS+++贪贪贪贪心】
  8. iOS - UIButton连续点击事件控制
  9. 如何高效开展测试用例评审?附用例评审检查清单及用例评审报告模板
  10. react组件设计原则_可靠React组件设计的7个准则之封装