Spaces:
Runtime error
Runtime error
Ticket Name: Linux/TDA2-17: YUV422 Output on LCD | |
Query Text: | |
Part Number: TDA2-17 Tool/software: Linux Hi all: We use VISION SDK3.2. We referred to The Implementation of YUV422 Output for SRV. Sgx3Dsrv -> Display_M4 (VID2) by LCD2 Capture_dsswbLink-> Display2_M4 (VID1) by LCD3 The following is my set params: /* Capture DSS WB params */ pPrm->numVipInst = 0; pPrm->numDssWbInst = 1; pPrm->dssWbInst[0].dssWbInstId = VPS_CAPT_INST_DSS_WB1; /* Only supported id */ System_VideoScanFormat scanFormat = SYSTEM_SF_PROGRESSIVE; pPrm->dssWbInst[0].dssWbInputPrms.inNode = SYSTEM_WB_IN_NODE_LCD2;//SYSTEM_WB_IN_NODE_TV; pPrm->dssWbInst[0].dssWbInputPrms.wbInSourceWidth = 1280; pPrm->dssWbInst[0].dssWbInputPrms.wbInSourceHeight =720; pPrm->dssWbInst[0].dssWbInputPrms.wbInWidth = 1280; pPrm->dssWbInst[0].dssWbInputPrms.wbInHeight = 720; pPrm->dssWbInst[0].dssWbInputPrms.wbPosx = 0; pPrm->dssWbInst[0].dssWbInputPrms.wbPosy = 0; pPrm->dssWbInst[0].dssWbInputPrms.wbInSourceDataFmt = SYSTEM_DF_RGB24_888; pPrm->dssWbInst[0].dssWbInputPrms.wbScanFormat = scanFormat; pPrm->dssWbInst[0].dssWbOutputPrms.wbWidth = 1280; pPrm->dssWbInst[0].dssWbOutputPrms.wbHeight = 720; pPrm->dssWbInst[0].dssWbOutputPrms.wbDataFmt = SYSTEM_DF_YUV422I_UYVY; pPrm->dssWbInst[0].dssWbOutputPrms.wbScanFormat = scanFormat; //SYSTEM_SF_INTERLACED; pPrm->dssWbInst[0].numBufs = 4U; chains_common.c lcdType =CHAINS_DISPLAY_TYPE_LCD_10_INCH Int32 ChainsCommon_DualDisplay_StartDisplayCtrl( Chains_DisplayType lcdType, UInt32 displayLCDWidth, UInt32 displayLCDHeight) { Int32 status; DisplayCtrlLink_ConfigParams *pPrm = &gChains_commonObj.dctrlCfgPrms; DisplayCtrlLink_VencInfo *pVInfo; DisplayCtrlLink_OvlyParams *pOvlyPrms; DisplayCtrlLink_OvlyPipeParams *pPipeOvlyPrms; DisplayCtrlLink_OvlyParams ovlyPrms[2]; /* Set the link id */ gChains_commonObj.displayCtrlLinkId = SYSTEM_LINK_ID_DISPLAYCTRL; /* Number of valid entries in vencInfo array */ pPrm->numVencs = 2; /* Bitmask of tied vencs. Two vencs, which uses same pixel clock and whose vsync are synchronized, can be tied together. */ pPrm->tiedVencs = 0; /* Activate the HDMI BSP layer in the Dctrl link. This is not required if there is no HDMI display in use. */ //pPrm->deviceId = DISPLAYCTRL_LINK_USE_HDMI; /* Configure LCD */ pPrm->deviceId = DISPLAYCTRL_LINK_USE_LCD; pVInfo = &pPrm->vencInfo[0]; pVInfo->tdmMode = DISPLAYCTRL_LINK_TDM_DISABLE; pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD2; pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI2_OUTPUT; pVInfo->vencOutputInfo.vsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.hsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; /* Below are of dont care for EVM LCD */ pVInfo->vencOutputInfo.fidPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->vencOutputInfo.actVidPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->mInfo.standard = SYSTEM_STD_CUSTOM; pVInfo->mInfo.scanFormat = SYSTEM_SF_PROGRESSIVE; pVInfo->mInfo.width = displayLCDWidth; pVInfo->mInfo.height = displayLCDHeight; if(lcdType == CHAINS_DISPLAY_TYPE_LCD_7_INCH) { pVInfo->mInfo.pixelClock = 29232u; pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hFrontPorch = 40u; pVInfo->mInfo.hBackPorch = 40u; pVInfo->mInfo.hSyncLen = 48u; pVInfo->mInfo.vFrontPorch = 13u; pVInfo->mInfo.vBackPorch = 29u; pVInfo->mInfo.vSyncLen = 3u; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 4; } else if(lcdType == CHAINS_DISPLAY_TYPE_LCD_10_INCH) { pVInfo->mInfo.pixelClock = 37250U; pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hBackPorch = 80U;//20U80 pVInfo->mInfo.hSyncLen = 62U; pVInfo->mInfo.hFrontPorch = 48U;//20U48 pVInfo->mInfo.vBackPorch = 12U; pVInfo->mInfo.vSyncLen = 35U; pVInfo->mInfo.vFrontPorch = 6U; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 1; } else if (lcdType == CHAINS_DISPLAY_TYPE_LDC_10_INCH_LCDCTRL_TC358778_MIPI_DSI_1920_1200) { pVInfo->mInfo.pixelClock = 147000U; pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hBackPorch = 30U; pVInfo->mInfo.hSyncLen = 16U; pVInfo->mInfo.hFrontPorch = 32U; pVInfo->mInfo.vBackPorch = 16U; pVInfo->mInfo.vSyncLen = 2U; pVInfo->mInfo.vFrontPorch = 7U; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 1; } else if (lcdType == CHAINS_DISPLAY_TYPE_FPD) { pPrm->deviceId = DISPLAYCTRL_LINK_USE_LCD; pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD3; pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI3_OUTPUT; pVInfo->mInfo.width = displayLCDWidth; pVInfo->mInfo.height = displayLCDHeight; pVInfo->mInfo.pixelClock = 69300; /* modified as per panel-tlc59108.c form linux*/ pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hBackPorch = 44U; pVInfo->mInfo.hSyncLen = 32U; pVInfo->mInfo.hFrontPorch = 48U; pVInfo->mInfo.vBackPorch = 12U; pVInfo->mInfo.vSyncLen = 7U; pVInfo->mInfo.vFrontPorch = 4U; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 1; pVInfo->vencOutputInfo.vsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.hsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; /* Below are of dont care for EVM LCD */ pVInfo->vencOutputInfo.fidPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.actVidPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->vencOutputInfo.dataFormat = SYSTEM_DF_RGB24_888; pVInfo->vencOutputInfo.dvoFormat = SYSTEM_DCTRL_DVOFMT_GENERIC_DISCSYNC; pVInfo->vencOutputInfo.videoIfWidth = SYSTEM_VIFW_24BIT; pVInfo->vencOutputInfo.pixelClkPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->vencOutputInfo.aFmt = SYSTEM_DCTRL_A_OUTPUT_MAX; /* Configure overlay params */ pOvlyPrms = &ovlyPrms[0]; pOvlyPrms->vencId = pVInfo->vencId; pOvlyPrms->deltaLinesPerPanel = 0; pOvlyPrms->alphaBlenderEnable = 0; pOvlyPrms->backGroundColor = 0x10; pOvlyPrms->colorKeyEnable = 1; pOvlyPrms->colorKeySel = SYSTEM_DSS_DISPC_TRANS_COLOR_KEY_SRC; pOvlyPrms->ovlyOptimization = SYSTEM_DSS_DISPC_OVLY_FETCH_ALLDATA; pOvlyPrms->transColorKey = DRAW2D_TRANSPARENT_COLOR; } else { UTILS_assert(NULL); } /* Configure LCD overlay params */ pVInfo->mode = 0; pVInfo->isInputPipeConnected[0] = FALSE; pVInfo->isInputPipeConnected[1] = TRUE; pVInfo->isInputPipeConnected[2] = TRUE; pVInfo->isInputPipeConnected[3] = TRUE; pVInfo->writeBackEnabledFlag = TRUE; pVInfo->vencOutputInfo.dataFormat = SYSTEM_DF_RGB24_888; pVInfo->vencOutputInfo.dvoFormat = SYSTEM_DCTRL_DVOFMT_GENERIC_DISCSYNC; pVInfo->vencOutputInfo.videoIfWidth = SYSTEM_VIFW_24BIT; pVInfo->vencOutputInfo.pixelClkPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.aFmt = SYSTEM_DCTRL_A_OUTPUT_MAX; if(lcdType != CHAINS_DISPLAY_TYPE_FPD) { pOvlyPrms = &ovlyPrms[0]; pOvlyPrms->vencId = pVInfo->vencId; pOvlyPrms->deltaLinesPerPanel = 0; pOvlyPrms->alphaBlenderEnable = 0; pOvlyPrms->backGroundColor = 0x10; pOvlyPrms->colorKeyEnable = 1; pOvlyPrms->colorKeySel = SYSTEM_DSS_DISPC_TRANS_COLOR_KEY_SRC; pOvlyPrms->ovlyOptimization = SYSTEM_DSS_DISPC_OVLY_FETCH_ALLDATA; pOvlyPrms->transColorKey = DRAW2D_TRANSPARENT_COLOR; } //************************************************************************** pPrm->deviceId = DISPLAYCTRL_LINK_USE_LCD; pVInfo = &pPrm->vencInfo[1]; pVInfo->tdmMode = DISPLAYCTRL_LINK_TDM_24BIT_TO_8BIT; pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD3; pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI3_OUTPUT; pVInfo->vencOutputInfo.vsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.hsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; /* Below are of dont care for EVM LCD */ pVInfo->vencOutputInfo.fidPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->vencOutputInfo.actVidPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->mInfo.standard = SYSTEM_STD_CUSTOM; pVInfo->mInfo.scanFormat = SYSTEM_SF_PROGRESSIVE; pVInfo->mInfo.width = displayLCDWidth; pVInfo->mInfo.height = displayLCDHeight; if(lcdType == CHAINS_DISPLAY_TYPE_LCD_7_INCH) { pVInfo->mInfo.pixelClock = 29232u; pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hFrontPorch = 40u; pVInfo->mInfo.hBackPorch = 40u; pVInfo->mInfo.hSyncLen = 48u; pVInfo->mInfo.vFrontPorch = 13u; pVInfo->mInfo.vBackPorch = 29u; pVInfo->mInfo.vSyncLen = 3u; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 4; } else if(lcdType == CHAINS_DISPLAY_TYPE_LCD_10_INCH) { pVInfo->mInfo.pixelClock = 74500U; pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hBackPorch = 20U;//20U80 pVInfo->mInfo.hSyncLen = 62U; pVInfo->mInfo.hFrontPorch = 20U;//20U48 pVInfo->mInfo.vBackPorch = 12U; pVInfo->mInfo.vSyncLen = 35U; pVInfo->mInfo.vFrontPorch = 6U; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 1; } else if (lcdType == CHAINS_DISPLAY_TYPE_LDC_10_INCH_LCDCTRL_TC358778_MIPI_DSI_1920_1200) { pVInfo->mInfo.pixelClock = 147000U; pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hBackPorch = 30U; pVInfo->mInfo.hSyncLen = 16U; pVInfo->mInfo.hFrontPorch = 32U; pVInfo->mInfo.vBackPorch = 16U; pVInfo->mInfo.vSyncLen = 2U; pVInfo->mInfo.vFrontPorch = 7U; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 1; } else if (lcdType == CHAINS_DISPLAY_TYPE_FPD) { pPrm->deviceId = DISPLAYCTRL_LINK_USE_LCD; pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD3; pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI3_OUTPUT; pVInfo->mInfo.width = displayLCDWidth; pVInfo->mInfo.height = displayLCDHeight; pVInfo->mInfo.pixelClock = 69300; /* modified as per panel-tlc59108.c form linux*/ pVInfo->mInfo.fps = 60U; pVInfo->mInfo.hBackPorch = 44U; pVInfo->mInfo.hSyncLen = 32U; pVInfo->mInfo.hFrontPorch = 48U; pVInfo->mInfo.vBackPorch = 12U; pVInfo->mInfo.vSyncLen = 7U; pVInfo->mInfo.vFrontPorch = 4U; pVInfo->vencDivisorInfo.divisorLCD = 1; pVInfo->vencDivisorInfo.divisorPCD = 1; pVInfo->vencOutputInfo.vsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.hsPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; /* Below are of dont care for EVM LCD */ pVInfo->vencOutputInfo.fidPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.actVidPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->vencOutputInfo.dataFormat = SYSTEM_DF_RGB24_888; pVInfo->vencOutputInfo.dvoFormat = SYSTEM_DCTRL_DVOFMT_GENERIC_DISCSYNC; pVInfo->vencOutputInfo.videoIfWidth = SYSTEM_VIFW_24BIT; pVInfo->vencOutputInfo.pixelClkPolarity = SYSTEM_DCTRL_POLARITY_ACT_HIGH; pVInfo->vencOutputInfo.aFmt = SYSTEM_DCTRL_A_OUTPUT_MAX; /* Configure overlay params */ pOvlyPrms = &ovlyPrms[1]; pOvlyPrms->vencId = pVInfo->vencId; pOvlyPrms->deltaLinesPerPanel = 0; pOvlyPrms->alphaBlenderEnable = 0; pOvlyPrms->backGroundColor = 0x10; pOvlyPrms->colorKeyEnable = 1; pOvlyPrms->colorKeySel = SYSTEM_DSS_DISPC_TRANS_COLOR_KEY_SRC; pOvlyPrms->ovlyOptimization = SYSTEM_DSS_DISPC_OVLY_FETCH_ALLDATA; pOvlyPrms->transColorKey = DRAW2D_TRANSPARENT_COLOR; } else { UTILS_assert(NULL); } /* Configure LCD overlay params */ pVInfo->mode = 0; pVInfo->isInputPipeConnected[0] = TRUE; pVInfo->isInputPipeConnected[1] = FALSE; pVInfo->isInputPipeConnected[2] = FALSE; pVInfo->isInputPipeConnected[3] = FALSE; pVInfo->writeBackEnabledFlag =FALSE; pVInfo->vencOutputInfo.dataFormat = SYSTEM_DF_BGR16_565; pVInfo->vencOutputInfo.dvoFormat = SYSTEM_DCTRL_DVOFMT_GENERIC_DISCSYNC; pVInfo->vencOutputInfo.videoIfWidth = SYSTEM_VIFW_16BIT; pVInfo->vencOutputInfo.pixelClkPolarity = SYSTEM_DCTRL_POLARITY_ACT_LOW; pVInfo->vencOutputInfo.aFmt = SYSTEM_DCTRL_A_OUTPUT_MAX; if(lcdType != CHAINS_DISPLAY_TYPE_FPD) { pOvlyPrms = &ovlyPrms[1]; pOvlyPrms->vencId = pVInfo->vencId; pOvlyPrms->deltaLinesPerPanel = 0; pOvlyPrms->alphaBlenderEnable = 0; pOvlyPrms->backGroundColor = 0x10; pOvlyPrms->colorKeyEnable = 0; pOvlyPrms->colorKeySel = SYSTEM_DSS_DISPC_TRANS_COLOR_KEY_SRC; pOvlyPrms->ovlyOptimization = SYSTEM_DSS_DISPC_OVLY_FETCH_ALLDATA; pOvlyPrms->transColorKey = DRAW2D_TRANSPARENT_COLOR; } /* Setting HDMI overlay pipe parameters */ pPipeOvlyPrms = &gChains_commonObj.pipeParams[0]; pPipeOvlyPrms->pipeLine = SYSTEM_DSS_DISPC_PIPE_VID1; pPipeOvlyPrms->globalAlpha = 0xFF; pPipeOvlyPrms->preMultiplyAlpha = 0; pPipeOvlyPrms->zorderEnable = TRUE; pPipeOvlyPrms->zorder = SYSTEM_DSS_DISPC_ZORDER0; /* Setting LCD overlay pipe parameters */ pPipeOvlyPrms = &gChains_commonObj.pipeParams[1]; pPipeOvlyPrms->pipeLine = SYSTEM_DSS_DISPC_PIPE_VID2; pPipeOvlyPrms->globalAlpha = 0xFF; pPipeOvlyPrms->preMultiplyAlpha = 0; pPipeOvlyPrms->zorderEnable = TRUE; pPipeOvlyPrms->zorder = SYSTEM_DSS_DISPC_ZORDER1; /* Setting PIP overlay pipe parameters on LCD */ pPipeOvlyPrms = &gChains_commonObj.pipeParams[2]; pPipeOvlyPrms->pipeLine = SYSTEM_DSS_DISPC_PIPE_VID3; pPipeOvlyPrms->globalAlpha = 0xFF; pPipeOvlyPrms->preMultiplyAlpha = 0; pPipeOvlyPrms->zorderEnable = TRUE; pPipeOvlyPrms->zorder = SYSTEM_DSS_DISPC_ZORDER2; /* Configure graphics overlay for HDMI */ pPipeOvlyPrms = &gChains_commonObj.pipeParams[3]; pPipeOvlyPrms->pipeLine = SYSTEM_DSS_DISPC_PIPE_GFX1; pPipeOvlyPrms->globalAlpha = 0xFF; pPipeOvlyPrms->preMultiplyAlpha = 0; pPipeOvlyPrms->zorderEnable = TRUE; pPipeOvlyPrms->zorder = SYSTEM_DSS_DISPC_ZORDER3; /* Create, configure and start the Display Ctrl link */ status = System_linkCreate(gChains_commonObj.displayCtrlLinkId, NULL, 0); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_CONFIG, &gChains_commonObj.dctrlCfgPrms, sizeof(DisplayCtrlLink_ConfigParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_OVLY_PARAMS, &ovlyPrms[0], sizeof(DisplayCtrlLink_OvlyParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_OVLY_PARAMS, &ovlyPrms[1], sizeof(DisplayCtrlLink_OvlyParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_OVLY_PIPELINE_PARAMS, &gChains_commonObj.pipeParams[0], sizeof(DisplayCtrlLink_OvlyPipeParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_OVLY_PIPELINE_PARAMS, &gChains_commonObj.pipeParams[1], sizeof(DisplayCtrlLink_OvlyPipeParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_OVLY_PIPELINE_PARAMS, &gChains_commonObj.pipeParams[2], sizeof(DisplayCtrlLink_OvlyPipeParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); status = System_linkControl(gChains_commonObj.displayCtrlLinkId, DISPLAYCTRL_LINK_CMD_SET_OVLY_PIPELINE_PARAMS, &gChains_commonObj.pipeParams[3], sizeof(DisplayCtrlLink_OvlyPipeParams), TRUE); UTILS_assert(status == SYSTEM_LINK_STATUS_SOK); return status; } vps_cfgDss.h TDM set static inline void VpsDssDispcAdvLcdTdmConfig_init( Vps_DssDispcAdvLcdTdmConfig *advLcdTdmCfg) { if (advLcdTdmCfg != NULL) { // advLcdTdmCfg->tdmEnable = 0U; advLcdTdmCfg->tdmEnable = 1U; advLcdTdmCfg->bitAlignPixel1Cycle1 = 0U; advLcdTdmCfg->bitAlignPixel1Cycle2 = 0U; advLcdTdmCfg->bitAlignPixel1Cycle3 = 0U; advLcdTdmCfg->bitAlignPixel2Cycle1 = 0U; advLcdTdmCfg->bitAlignPixel2Cycle2 = 0U; advLcdTdmCfg->bitAlignPixel2Cycle3 = 0U; advLcdTdmCfg->noBitsPixel1Cycle1 = 8U; advLcdTdmCfg->noBitsPixel1Cycle2 = 8U; // advLcdTdmCfg->noBitsPixel1Cycle3 = 8U; advLcdTdmCfg->noBitsPixel1Cycle3 = 0U; advLcdTdmCfg->noBitsPixel2Cycle1 = 0U; advLcdTdmCfg->noBitsPixel2Cycle2 = 0U; advLcdTdmCfg->noBitsPixel2Cycle3 = 0U; advLcdTdmCfg->tdmUnusedBits = 0U; //advLcdTdmCfg->tdmCycleFormat = 0x2U; advLcdTdmCfg->tdmCycleFormat = 0x1U; advLcdTdmCfg->tdmParallelMode = 0x0U; } } The image size is correct, but the color space is incorrect. Is there something wrong with the setting? Would you please give me advice for it? Regards, Victor | |
Responses: | |
Hi Victor, Do you want to YUV422 output from DSS? over which interface? ie discrete or embedded sync interface? Regards, Brijesh | |
Hi Brijesh, I want to Discrete interface. Regards, Victor | |
hi Victor, DSS natively does not support YUV422 output over discrete sync interface. But i have a way. In that case, you need to treat input YUV422 interleaved data as if it is RGB565 data and configure DSS input video pipeline as receiving RGB565 data. You need to disable all pixels processing in this pipeline, disable blending in overlay manager, connect only this pipeline to the overlay manager.. At the output of overlay manager, convert RGB24 data to RGB565 by setting videoifSize field and then enable TDM mode to send out single pixel over two clock cycles. This is how you could get YUV422 over 8bit discrete sync interface. All the pixel processing that you required, you need to do using another pipeline, in memory to memory mode.. Rgds, Brijesh | |