DISP Q&A

Q1:多分屏切全屏显示的时候出现显示画面错位

  1. dump disp input数据发现正常

    echo dumpframe [layerid] [portid] [path] > /proc/mi_modules/mi_disp/mi_disp0

  2. 看是否有使用disp layer1,会不会是layer1盖在上面导致;关闭layer1发现问题仍然存在

  3. 查看disp0 proc信息

发现原来是区域有重叠,同一层layer不同port显示窗口不能重叠,除非重叠窗口有disable,hide也不行。

Q2: 当disp的dev1输出HDMI/VGA时,如果同时要使用cvbs, cvbs是使用dev1还是dev0?

当HDMI/VGA用dev0的时候,cvbs是用wbc bind dev1的。现在情况cvbs需要切到dev0,设置WBC属性(MI_DISP_WBC_Source_t参数)的时候,可以选择数据源是dev1,然后wbc bind disp dev0来实现cvbs输出。

Q3:DISP模块只支持YUV420SP(NV12)格式吗?

是的,目前只支持这一种格式,如果没法改变源的格式,可以尝试用SCL模块去转成YUV420SP再给到DISP模块。

例如前级JPD模块,输出的是yuv422格式的数据,中间通过接SCL模块将格式转换成yuv420SP,然后再送给DISP。

Q4:切换预览窗口,使用disp disable/enable inputport这对接口时,需要重新bind吗?

不需要,只需要重新设置窗口的宽高。

Q5:disp支持1080i 分辨率吗?

不支持。

Q6:wbc支持放大功能吗?

不支持。WBC支持缩小,但不支持放大。如果配置目标分辨率比源分辨率小,那么会自动缩小。 如果需要放大,可以在后面添加scl进行放大后再传给后级。

Q7:如何确认disp输出帧率能够达到某个固定值?

通过查看disp中断数来判断,watch -n1 cat /proc/mi_modules/mi_disp/mi_disp1 | grep IrqCnt -A2

此命令为间隔1s,查询中断次数。再相减之后,可以算出1s收到多少个中断数,如上,第一行中断数为91107,第二行91167,相减为61,因此理论上disp1应该可以达到60帧,如果达不到,可以去前级找原因,是否做了帧率控制。

Q8:更改Disp Device的interface type如果报错: Not support. interface count more than max[1]怎么解决?

错误Log信息:[MI ERR ]: _MI_DISP_IMPL_CheckPubAttr[686]: Not support. interface count more than max[1]

切换之前需要调用MI_DISP_DeInitDev,再重新MI_DISP_InitDev。

Q9:disp如何打内部patten?

dev bank offset value
0 1150 7 1c/e/c/a/8/6/4/2
1 1160 7 1c/e/c/a/8/6/4/2

注意:恢复video:value=1即可,举例 disp0:riu_w 1150 7 1。