完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
有两处温度设定会对GPU有影响:
1. rk3288.dtsi clk_gpu_dvfs_table: clk_gpu { operating-points = < /* KHz uV */ 200000 1200000 300000 1200000 400000 1200000 >; channel = <1>; tsadc-ch = <2>; temp-limit-enable = <0>; target-temp = <90>; min_temp_limit = <200>; normal-temp-limit = < /*delta-temp delta-freq*/ 3 50000 6 150000 15 250000 >; regu-mode-table = < /*freq mode*/ 200000 4 0 3 >; regu-mode-en = <0>; status = "okay"; }; 当温度超过target-temp后,会按照normal-temp-limit此table中的delta_temp来降低当前的frequency为cur_freq - delta_freq, 最低值不能小于min_temp_limit. 此值用于和当前要设置的target_freq比较,如果target_freq比cur_freq - delta_freq大,那么就设置成cur_freq - delta_freq. 由于temp-limit-enable的值是0,所以此功能默认是关闭的,根据情况决定是否使能. 2. mali_kbase_dvfs.c: static void mali_dvfs_event_proc(struct work_struct *w) { int ret = 0; struct rk_dvfs_t *dvfs = work_to_dvfs(w); int temp = rockchip_tsadc_get_temp(1, 0); if (is_overheated(dvfs)) { if (could_jump_down(dvfs)) { I("to jump down for overheated, temp:%d.", dvfs->temp); ret = jump_down_actually(dvfs); if (ret) E("fail to jump down, ret:%d.", ret); } else { W("overheated! temp:%d, but can't jump down anymore.", dvfs->temp); } dvfs->temp = 0; goto EXIT; } } 通过rockchip_tsadc_get_temp()读取,如果温度过高(is_overheated()),这里的阀值设置的是110°, #define TEMP_UPPER_LIMIT (110) 那么就通过jump_down_actually()降低频率. |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
3059 浏览 0 评论
3010 浏览 1 评论
2490 浏览 1 评论
3829 浏览 1 评论
4567 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-31 12:49 , Processed in 0.990928 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号