完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.简介 我们有一个项目是双屏异显的(双 MIPI 屏),副屏是通过 rk618 的转换芯片,把 rgb 信号转成 mipi信号输出,但是转换出来的画面会有抖动的现象,log 打印的错误显示带宽不足 [ 127.410618] rockchip-vop ff470000.vop: [drm:vop_isr] ERROR WIN1_EMPTY irq err [ 127.568685] rockchip-vop ff470000.vop: [drm:vop_isr] ERROR WIN1_EMPTY irq err [ 130.254854] rockchip-vop ff470000.vop: [drm:vop_isr] ERROR WIN1_EMPTY irq err 2.调试过程 2.1 先关闭 dmc 定频,来查看现象 &dmc { center-supply = <&vdd_logic>; status = "disabled"; }; 如果问题解决,说明当前的ddr频率没有问题,则把 dmc 打开 修改vop-dclk-mode值:0,1,2 vop-dclk-mode = <0>; 注: 常是改为 vop-dclk-mode = <1>; 2.2 如果上述修改不行,则需要修改 ddr 频率 改成 rk 支持的最大频率,查看现象,逐步调试成合适的频率,即可 &dmc { status = "okay"; system-status-freq = < /*system status freq(KHz)*/ SYS_STATUS_NORMAL 856000 //只保留这个改成这个列表里最高频率看看能不能行。 /* SYS_STATUS_REBOOT 666000 SYS_STATUS_SUSPEND 328000 SYS_STATUS_VIDEO_1080P 666000 SYS_STATUS_VIDEO_4K 856000 SYS_STATUS_VIDEO_4K_10B 856000 SYS_STATUS_PERFORMANCE 856000 SYS_STATUS_BOOST 856000 SYS_STATUS_DUALVIEW 856000 SYS_STATUS_ISP 856000 */ >; auto-min-freq = <666000>; auto-freq-en = <1>; } 3.dts 参考说明 dmc: dmc { compatible = "rockchip,rk3399-dmc"; devfreq-events = <&dfi>; interrupts = clocks = <&cru SCLK_DDRCLK>; clock-names = "dmc_clk"; ddr_timing = <&ddr_timing>; /* DDR 利用率超过 40%,开始升频;auto-freq-en=1 时才有效 */ upthreshold = <40>; /* DDR 利用率低于 20%,开始降频;auto-freq-en=1 时才有效 */ downdifferential = <20>; system-status-freq = < /*system status freq(KHz)*/ /* 只有 auto-freq-en=0 时有效。表示除了下列场景以外的,都用这个场景 */ SYS_STATUS_NORMAL 800000 /* reboot 前的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_REBOOT 528000 /* 一级待机时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_SUSPEND 200000 /* 1080P 视频时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_VIDEO_1080P 300000 /* 4K 视频时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_VIDEO_4K 600000 /* 4K 10bit 视频时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_VIDEO_4K_10B 800000 /* 性能模式时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_PERFORMANCE 800000 /* 触屏时的 DDR 频率,用于从低频提高上来,改善触屏响应。当 auto-freq-en=1 时,会以此频率作为 min值,根据负载状况往上升频 */ SYS_STATUS_BOOST 400000 /* 双屏显示时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_DUALVIEW 600000 /* ISP 时的 DDR 频率。当 auto-freq-en=1 时,会以此频率作为 min 值,根据负载状况往上升频 */ SYS_STATUS_ISP 600000 >; /* auto-freq-en=1 时有效,表示 normal 场景的最低频率 */ auto-min-freq = <400000>; /* 等于 1,表示开启负载变频功能;等于 0,表示关闭负载变频功能。开启负载变频功能后,SYS_STATUS_NORMAL 场景将完全被负载负载变频接替,且最低频率以 auto-min-freq 为准,而不是以SYS_STATUS_NORMAL 定义的为准。而且开启负载变频后,其他场景定义的频率将作为最低频率,系统根据 DDR带宽的利用率状况,依据 upthreshold、downdifferential 来提高、降低 DDR 频率 */ auto-freq-en = <1>; status = "disabled"; }; 原作者:KaminLuo |
|
相关推荐
1个回答
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
431 浏览 0 评论
524 浏览 1 评论
1789 浏览 1 评论
3043 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
3771 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 02:41 , Processed in 0.617746 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号