日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

高通 thermal子系统

發(fā)布時間:2023/12/16 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通 thermal子系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

main函數(shù):

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

通過讀取soc_id來確認加載哪個配置(有多個配置文件時通過android.mk文件確認編譯哪個):

讀soc_id:thermal_monitor_init_data->therm_get_msm_id->get_soc_info

根據(jù)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

通過下圖可以看出這是到底溫度關(guān)閉cpu3的意思

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

可以通過kill服務(wù)來驗證,因為kill后該服務(wù)會自動啟動

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"

設(shè)置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文件中加載了,剛開機也調(diào)度了這個限制check_temp,但 是在disable_msm_thermal函數(shù)里面又使其不調(diào)度了:

/* 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函數(shù)里的判斷可以看出:instance->lvl_arr[instance->curr_lvl + 1].lvl.value < instance->dev_mtgn_max_limit,下一個階梯小于限制限制的,那么就不改限制了,因為這個限制的是最大頻率,最小頻率不由這里決定。

4、ss-data.c中配置的和thermal_monitor-data-8916.c中配置的有什么區(qū)別?

答:配置data的時候一個配置的是.data.ss一個配置的是.data.tm

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

答:解析的函數(shù)策略不一樣,獲取的數(shù)據(jù)也不一樣,ss-data.c走的是ss_algorithm.c的handle_timer_sig函數(shù)。

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

內(nèi)核dtsi里面的配置

補充:

cpu頻率列表在哪,怎么設(shè)置不降頻?

msm8917.dtsi 中 qcom,cpufreq-table配置類cpu頻率列表,把低頻的都刪掉或者都改成高頻,就一定不會降頻了

參考:

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

總結(jié)

以上是生活随笔為你收集整理的高通 thermal子系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。