Hi Brijesh,
As u suggested to stop the vencs first, i put the following lines of code in ipnc_rdk/ipnc_mcfw/mcfw/src_linux/mcfw_api/ti_vdis.c file
Changes :-
#if defined (TI_8107_BUILD)
//Original Code
/*
pContext->tiedDevicesMask = VDIS_VENC_HDMI | VDIS_VENC_HDCOMP;
pContext->deviceParams[VDIS_DEV_HDCOMP].resolution = pContext->deviceParams[VDIS_DEV_HDMI].resolution;
*/
//Modified Code
Vdis_sysfsCmd(3,VDIS_SYSFSCMD_SETVENC, VDIS_SYSFS_DVO2, VDIS_OFF);
Vdis_sysfsCmd(3,VDIS_SYSFSCMD_SETVENC, VDIS_SYSFS_HDMI, VDIS_OFF);
pContext->tiedDevicesMask = VDIS_VENC_DVO2 | VDIS_VENC_HDMI;
pContext->deviceParams[VDIS_DEV_HDMI].resolution = pContext->deviceParams[VDIS_DEV_DVO2].resolution;
#endif
-----------------------------------------------------------------------------------------------------------------------------------------------------
I am disabling the HDMI and VDO2 display by above two line (in bold).
-------------------------------------------------------------------------------------------------------------------------------------------------------
Display Control Tree
[host] Before System_linkControl SYSTEM_M3VPSS_CMD_GET_DISPLAYCTRL_INIT
[m3vpss ] tiedVencs VPS_DC_VENC_HDMI | VPS_DC_VENC_DVO2
[m3vpss ] VPS_DCTRL_INST_0
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_DVO2
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDMI
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_SD
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDCOMP
[m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_CLK_SRC VPS_DC_VENC_HDMI | VPS_DC_VENC_DVO2
[m3vpss ] HDCOMPCLK
[m3vpss ] DBG: cnt 0
[m3vpss ] DBG: vencs is 0
[m3vpss ] DBG: vencInfo->modeInfo[0].vencId = 1
[m3vpss ] DBG: cnt 1
[m3vpss ] DBG: vencs is 1
[m3vpss ] DBG: vencInfo->modeInfo[1].vencId = 2
[m3vpss ] DBG: cnt 2
[m3vpss ] DBG: vencs is 3
[m3vpss ] DBG: vencInfo->modeInfo[2].vencId = 4
[m3vpss ] DBG: cnt 3
[m3vpss ] DBG: vencs is 7
[m3vpss ] DBG: vencInfo->modeInfo[3].vencId = 8
[m3vpss ] DBG: at line 2321 retval is 0
[m3vpss ] DBG: at line 2333 retval is 0
[m3vpss ] DBG: at line 2346 retval is 0
[m3vpss ] DBG: at line 2356 retval is 0
[m3vpss ] DBG: at line 2395 retval is 0
[m3vpss ] DBG: at line 2405 retval is 0
[m3vpss ] DBG: at line 2412 retval is 0
[m3vpss ] DBG: at line 2321 retval is 0
[m3vpss ] DBG: at line 2333 retval is 0
[m3vpss ] DBG: at line 2346 retval is -1
[m3vpss ] DBG: dcConfigVencMode is -1
[m3vpss ] DBG: retVal = -1
[m3vpss ] 6637: Assertion @ Line: 715 in links_m3vpss/system/system_dctrl.c: retVal == FVID2_SOK : failed !!!
-------------------------------------------------------------------------------------------------------------------------------------------------------
The retVal is setting to -1 FVID2_EFAIL as shown above (in red) , the lines of code where the error is occurring is as follow :
File : ti_tools/hdvpss_01_00_01_37/packages/ti/psp/vps/drivers/display/src/vps_dctrl.c
Function : dcConfigVencMode
Code :
if (FVID2_SOK == retVal)
{
/* Call the setMode of the Venc in order to make sure
that mode is correct */
retVal = outputNode->setMode(
outputNode->vencHandle,
modeInfo);
Vps_printf("WAVU_DBG: at line %d retval is %d\n",__LINE__,retVal);
/* Mode is set in the VENC, so get the mode information */
if (FVID2_SOK == retVal)
{
retVal = outputNode->getMode(
outputNode->vencHandle,
&outputNode->modeInfo);
Vps_printf("WAVU_DBG: at line %d retval is %d\n",__LINE__,retVal);
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------
The retVal is set to -1 in outputNode->setMode
----------------------------------------------------------------------------------------------------------------------------------------------------
IS I AM STOPPING VENCs PROPERLY ??
IS I AM MISSING SOMETHING ????
Thanks.