RK px30 双面屏带宽不足问题调试

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>;

}

vop-dclk-mode = <0>;

 
 

    3.dts 参考说明

    dmc: dmc {
    	compatible = "rockchip,rk3399-dmc";
    	devfreq-events = <&dfi>;
    	interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
    	clocks = <&cru SCLK_DDRCLK>;
    	clock-names = "dmc_clk";
    	ddr_timing = <&ddr_timing>;
    
    /* DDR 利用率超过 40%,开始升频;auto-freq-en=1 时才有效 */
    upthreshold = &lt;40&gt;;
    
    /* DDR 利用率低于 20%,开始降频;auto-freq-en=1 时才有效 */
    downdifferential = &lt;20&gt;;
    
    system-status-freq = &lt;
    /*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
    &gt;;
    
    /* auto-freq-en=1 时有效,表示 normal 场景的最低频率 */
    auto-min-freq = &lt;400000&gt;;
    
    /* 等于 1,表示开启负载变频功能;等于 0,表示关闭负载变频功能。开启负载变频功能后,SYS_STATUS_NORMAL 场景将完全被负载负载变频接替,且最低频率以 auto-min-freq 为准,而不是以SYS_STATUS_NORMAL 定义的为准。而且开启负载变频后,其他场景定义的频率将作为最低频率,系统根据 DDR带宽的利用率状况,依据 upthreshold、downdifferential 来提高、降低 DDR 频率 */
    
    auto-freq-en = &lt;1&gt;;
    status = "disabled";
    

    };

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值