MT6572平台,ATV(MT5193)播放时出现卡顿现象
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
在MT6572平台上,ATV chip用的MT5193,
ATV播放时出现卡顿现象。
[SOLUTION]
在CAMERA_isp.c 的 ISP_SOF_Buf_Get() 中 (funciton 结尾处)增加以下用红色字体
标出的code。
...
if (bDeqBuf)
{
ISP_RTBC_DEQUE(rtbc_deq_DMA);
bDeqBuf = 0;
wake_up_interruptible(&ISPInfo.WaitQueueHead);
}
}
// fixed timing issue in post-MP; update next buffer to ISP when VF open
// 增加此行
if( ISP_RD32(ISP_REG_TG_VF_CON) & 0x00000001 ) // 增加此行
{ // 增加此行
dma_base_addr = ISP_REG_IMGO_BASE_ADDR; // 增加此行
pAddr = pstRTBuf->ring_buf.data[(pstRTBuf->ring_buf.start+1)%pstRTBuf-
>ring_buf.total_count].base_pAddr; // 增加此行
ISP_WR32(dma_base_addr, pAddr); // 增加此行
} // 增加此行
//if(IspInfo.DebugMask & ISP_DBG_RT_BUF_CTRL)
//{
//ISP_RTBC_PRINTBUF();
// LOG_WRN("[rtbc][irq][S]: -");
//}
pstRTBuf->state = ISP_RT_BUF_INFO_SOF;
//
//spin_unlock_irqrestore(&(IspInfo.SpinLockRTBC),g_Flash_SpinLock);
//
return 0;
}
在MT6572平台上,ATV chip用的MT5193,
ATV播放时出现卡顿现象。
[SOLUTION]
在CAMERA_isp.c 的 ISP_SOF_Buf_Get() 中 (funciton 结尾处)增加以下用红色字体
标出的code。
...
if (bDeqBuf)
{
ISP_RTBC_DEQUE(rtbc_deq_DMA);
bDeqBuf = 0;
wake_up_interruptible(&ISPInfo.WaitQueueHead);
}
}
// fixed timing issue in post-MP; update next buffer to ISP when VF open
// 增加此行
if( ISP_RD32(ISP_REG_TG_VF_CON) & 0x00000001 ) // 增加此行
{ // 增加此行
dma_base_addr = ISP_REG_IMGO_BASE_ADDR; // 增加此行
pAddr = pstRTBuf->ring_buf.data[(pstRTBuf->ring_buf.start+1)%pstRTBuf-
>ring_buf.total_count].base_pAddr; // 增加此行
ISP_WR32(dma_base_addr, pAddr); // 增加此行
} // 增加此行
//if(IspInfo.DebugMask & ISP_DBG_RT_BUF_CTRL)
//{
//ISP_RTBC_PRINTBUF();
// LOG_WRN("[rtbc][irq][S]: -");
//}
pstRTBuf->state = ISP_RT_BUF_INFO_SOF;
//
//spin_unlock_irqrestore(&(IspInfo.SpinLockRTBC),g_Flash_SpinLock);
//
return 0;
}
