特定屏在格子画面下看到最底下的一根线闪动
关键字:格子画面 线闪
适用机型:所有Non-OS芯片
之前有遇到某客户V39平台点某些FHD的屏,VGA下某些Timing,尤其1920X1080/60时,在细线格子画面下,最后一根横线会上下闪动的问题。后来通过把调试工具里Direct Scaler Adjustment页的Delay Line由0改为2,问题解决。具体代码如下。这个寄存器是所有Non-OS芯片通用的。
msSetFrameLockMode( BYTE ucFrameLockMode )
{
。。。。。。
case FLM_FBL_FRAMEPLL: // Tune Clock
SCALEROP_PUTSTR("\r\n [- FLM_FBL_FRAMEPLL -]");
bEnableFrameLock = 1;
bEnableFramePLLMode = 1;
ucLockYLine = 0x02;
if (IS_SRC_INTERLACE_MODE(SRC1))
{
if( g_SetupModeInfo[SRC1].ucDeInterlaceMode == DEINT_OFF )
ucInputTriggerPointDelayLines = 2;
else if( IsSrcInput1080I(SRC1) && (g_WindowInfo[SRC1].V_PostScalingInfo == POST_SCALING_UP) )
ucInputTriggerPointDelayLines = 5; // Check in FullHD panel & 1080i, overscan=25
else
ucInputTriggerPointDelayLines = 6;
}
else if( g_WindowInfo[SRC1].V_PostScalingInfo == POST_SCALING_UP )
ucInputTriggerPointDelayLines = 7;
else
ucInputTriggerPointDelayLines = 8;
#if(PANEL_TYPE_SEL==PNL_AU370_T370HW01_HD)//added 2017.03.01
if(IsVGAInUse()&&(g_SrcInfo[GetVGASrcIdx()].ucModeIndex==MD_1920x1080_60)&&((ucInputTriggerPointDelayLines&_BIT1)==0))
ucInputTriggerPointDelayLines=ucInputTriggerPointDelayLines|_BIT1;
#endif
msWriteByteMask(SC1_12, ucLockYLine, 0x0F);
msSetDelayLine( ucInputTriggerPointDelayLines );
msLPLL_EnableFrameLockCtrl(bEnableFrameLock); // Frame Lock On/Off
msWriteBit(SC10_39, _ENABLE, _BIT0); // Output freerun enable
msSetFrameLockMode_FastLock(ucFrameLockMode);
break;
}
|