This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: J721S2 Display Port get resolution error

Part Number: TDA4VM

Tool/software:

We use J721S2 and SDK8.4.

We connet display port with different DP cable.

TDA4 device sometimes will get wrong resolution with some DP cable.

But TDA4 device always get right resolution with other DP cable.

How to get right resolution with all DP cable?

  • Hi,

    May I know are you using DSS driver from Linux or RTOS?

    If RTOS, which application are you running?

    Regards,

    Nikhil

  • We use RTOS driver.

    We run our application and use display node to display .

    This image is normal display.

    normal

    This image is wrong resolution display

  • Hi Nikhil Dasan ,
    We want to print out the relevant status and exception messages when connecting on the DP driver. Where should we print them?

  • Our customers have reported many such abnormal problems, which occur occasionally. When they occur, the screen will turn normal when the switch is turned on, but our customers do not have a screen switch and can only restart the ECU. This is a very serious problem. Please help.

  • Hi John Tu,

    Are you sure that this is caused by changing the DP Cable? 

    TDA4 device sometimes will get wrong resolution with some DP cable.

    In the above cables that causes the issue, does this happens in every boot or does it happen occasionally?

    I see that you are using SDK 8.4 which is one of the initial releases for the J721s2 device. If this happens on cable on every boot, can your test with the same cable on the latest SDK? Any vision_apps demos can be run to test this.

    Are you seeing this on EVM or on custom board?

    When they occur, the screen will turn normal when the switch is turned on, but our customers do not have a screen switch and can only restart the ECU.

    What is this switch? could you elaborate?

    Regards,

    Nikhil

  • Hi Nikhil Dasan ,
    I've sorted out the current problems:
    1. When using our ECU to connect the display screen, an abnormal displa will occur when turning on the computer (such as the image provided by Joe, and my another image the display is shifted). We have tried DP cable and DP to HDMI device+HDMI cable, and there is a chance that the abnormal will happen, but the same cable is used. It's normal on other devices
    2. It may happen that the display screen is disconnected and then reconnected during operation.
    Since replacing the SDK is too risky and takes a lot of time, our requirements are:
    1. When connecting to the display screen, some relevant information can be printed out, such as display resolution, abnormal status, and error message.
    2. Is it possible to update the patch for us to verify?

  • Hi,

    From the DSS perspective, there are few error status information that could be obtained. 

    Please find this patch below to see the errors from DSS. The patch is on SDK 9.2, so please apply the changes manually on SDK 8.4
    The only change is the files could be found in tiovx folder in SDK 8.4

    /cfs-file/__key/communityserver-discussions-components-files/791/6470.disp_5F00_stats.patch

    You could do the below in your application to print out the display stats.

    +                    if (status == VX_SUCCESS)
    +                    {
    +                        status = tivxNodeSendCommand(obj->disp_node, 0u,
    +                                    TIVX_DISPLAY_GET_CURRENT_STATUS,
    +                                    NULL, 0u);
    +                    }

    Regards,

    Nikhil

  • Hi Nikhil Dasan ,

    How to support hot plug detect on SDK 8.4 for j721s2??

  • Hi,

    Are you using the EVM? If yes, then HPD is not supported on the EVM. 

    Regards,

    Nikhil

  • Hi Nikhil Dasan ,

    Do I need specific pins to support HPD?

    Or any GPIOs can also be supported??  

    because HPD and RGMII1_RD0  Shared this pin( AA24) on j721s2..

  • Hi,

    Yes, this is MUXED as shown above and is currently not being brought out in the EVM SOM. Are you using the EVM or the custom board?

    Regards,

    Nikhil

  • Hi Nikhil,

    we used custom board, we  need HPD function and RGMII,Are there any suggested practices??

  • Hi,

    Since there is only one pin mapped to the DP0_HPD and RGMII_RD0 (i.e. AA24), there is no way to use both together. It is a hardware restriction.

    When using our ECU to connect the display screen, an abnormal displa will occur when turning on the computer (such as the image provided by Joe, and my another image the display is shifted)

    During this issue, may I know what is the resolution shown on the Display / Monitor from the monitors properties/menu?

    Regards,

    Nikhil

  • Hi Nikhil,

    Can we use additional GPIO to polling HPD status and to init display driver? 

    During this issue, may I know what is the resolution shown on the Display / Monitor from the monitors properties/menu? 640x1079 or 640x1080 by different display Monitor have to show.

  • if using DP to DP cable : 640x1079, the resolution is incorrect and the display is abnormal.
    abnormal display:

    abnormal resolution:

    if using DP to HDMI cable :1920x1080, the resolution is correct, but the display is abnormal.
    abnormal display:

    abnormal resolution:

    normal display:

    normal resolution:

  • Hi Nikhil,

    When power on  init DSS I can detect a low level pulse of about 100ms from the HPD signal.High to Low(100ms)to High and the display is normal 

    If HPD signal always keep High the display is abnormal .

  • Hi,

    After seeing a wrong resolution, when you reset the board and try again, does this issue go away? 

    Or, when you remove and connect back the cable does this resolve the issue?

    Regards,

    Nikhil

  • Hi Nikhil,

    when reset board or re initial dss or re plug cable or reset monitor,the issue is resolve.

  • Hi Nikhil,

    I think they  failed or timed out in Dp bus training on the board power on initial.

    Cloud you provide us with an dp driver upgrade patch?(SDK8.4 to 8.6 or to higher Version)

  • Hi Nikhil,

    We tried to add print log in Dss_dctrlDrvDpStartVideo.

    When the abnormal display was happen  ,the videoMode.width=1920、videoMode.height=1080、videoMode.pclk=148500,It means that the resolution of DP_TX output is normal, but the DP_RX(monitor) interpretation is wrong.

    I'm guessing there is something wrong with the display during the training process,Maybe the timing of the training on the DP_TX side or the training pattern  are incorrect, causing some problems with the clock recovery on the DP_RX(monitor) side.

    Cloud you provide us with an dp driver upgrade patch?(SDK8.4 to 8.6 or to higher Version)

    We tried using different DP_RX(monitor), and the results are as below:

    We boot the ECU(TDA4) repeatedly to observe the number of abnormal displays each time.

    DP to DP(Philip):  abnormal display rate:30%

    DP to DP(HP):  hasn't happened yet

    DP(Brand "L") to HDMI: hasn't happened yet

    DP(Brand "A") to HDMI:   abnormal display rate:1%~3%

    static int32_t Dss_dctrlDrvDpStartVideo(Dss_DctrlDisplayPortDrvObj *pObj)
    {
    int32_t retVal = FVID2_SOK;
    int32_t dpApiRet = CDN_EOK;
    DP_AudioVideoClkCfg clkCfg;
    DP_VideoParameters videoParams;

    clkCfg.videoClockEnable = true;
    clkCfg.audioClockEnable = true;
    clkCfg.pktDataClockEnable = true;

    videoParams.bitsPerSubpixel = 8;
    videoParams.pxEncFormat = DP_PXENC_PXL_RGB;
    videoParams.stereoVidAttr = DP_STEREO_VIDEO_LEFT;
    videoParams.btType = DP_BT_601;
    videoParams.forceMiscIgnoreBit = false;
    videoParams.alignment = DP_ALIGN_MSB;
    videoParams.dscEnable = 0;

    /* fill the ones the driver does not care about */
    videoParams.vicParams.vic = 0U;
    videoParams.vicParams.hFreq = 0.0;
    videoParams.vicParams.vFreq = 0,0;
    videoParams.vicParams.vicR = 0;
    videoParams.vicParams.vicPR = 0;

    /* and, now the actually important ones */
    videoParams.vicParams.hActive = pObj->videoMode.width;
    videoParams.vicParams.hSync = pObj->videoMode.hsw;
    videoParams.vicParams.hFrontPorch = pObj->videoMode.hfp;
    videoParams.vicParams.hBackPorch = pObj->videoMode.hbp;
    videoParams.vicParams.hBlank = pObj->videoMode.hbp + pObj->videoMode.hfp + pObj->videoMode.hsw;
    videoParams.vicParams.hTotal = videoParams.vicParams.hBlank + videoParams.vicParams.hActive;
    videoParams.vicParams.vActive = pObj->videoMode.height;
    videoParams.vicParams.vSync = pObj->videoMode.vsw;
    videoParams.vicParams.vFrontPorch = pObj->videoMode.vfp;
    videoParams.vicParams.vBackPorch = pObj->videoMode.vbp;
    videoParams.vicParams.vBlank = pObj->videoMode.vbp + pObj->videoMode.vfp + pObj->videoMode.vsw;
    videoParams.vicParams.vTotal = videoParams.vicParams.vBlank + videoParams.vicParams.vActive;
    videoParams.vicParams.pxlFreq = pObj->videoMode.pclk / (float64_t)1000;

  • Hi,

    We boot the ECU(TDA4) repeatedly to observe the number of abnormal displays each time.

    DP to DP(Philip):  abnormal display rate:30%

    DP to DP(HP):  hasn't happened yet

    DP(Brand "L") to HDMI: hasn't happened yet

    DP(Brand "A") to HDMI:   abnormal display rate:1%~3%

    TDA4 device sometimes will get wrong resolution with some DP cable.

    But TDA4 device always get right resolution with other DP cable.

    I see. So the issue is with different displays and not different cables as mentioned above.

    Cloud you provide us with an dp driver upgrade patch?(SDK8.4 to 8.6 or to higher Version)

    I think you directly copy the dss folder in SDK 8.6 in pdk/package/ti/drv and try replacing it on SDK 8.4

    But I'm not sure how this will fix the issue happening on the RX Monitor end. 

    You could try the above.

    Regards,

    Nikhil

  • Hi Nikhil,

    Thanks your reply

    When the abnormal display was happen  ,the videoMode.width=1920、videoMode.height=1080、videoMode.pclk=148500,It means that the resolution of DP_TX output is normal, Dss_dctrlDrvDpStartVideo<====Does this represent the resolution of the DP_TX output?

    Thanks .

  • Hi

    Dss_dctrlDrvDpStartVideo<====Does this represent the resolution of the DP_TX output?

    Yes, you are correct

    Regards,

    Nikhil

  • Hi Nikhil,

    Thanks your reply.

    Would this happen if HDCP was wrong?

    When the abnormal display was happen ,How to check the HDCP transmitter type?? we want to add log in dss driver for debug

    Can we access the results (like clock freq )of the displays clock recovery through the AUX channel?

    If tda4 dp tx resolution output is correct,I'm guessing there may be a problem with HDCP or clock recovery.

    What API or functions can we use to get the DPCD register value in the DP_RX?

    We want to  get value in the DP_RX DPCD register Address: 00205h(SINK_STATUS) through the J721s2 AUX CH.

  • Hi,

    What API or functions can we use to get the DPCD register value in the DP_RX?

    We have the API DP_ReadDpcd() in the pdk driver in the path pdk/packages/ti/drv/dss/src/csl/dp/src/dp_if.c

    Please refer it's usage in the driver to use the same.

    Regards,

    Nikhil

  • Hi Nikhil,

    We found the issue thanks.

  • Hi,

    If you don't mind, could you please let me know what the issue was?

    Regards,

    Nikhil

  • Hi Nikhil,

    We want to try more.

    How to add delay time in Dss_dctrlDrvProcessHpdDp ? (before or after the DP_LinkTraining.)

    dss\src\drv\dctrl\dss_dctrlExtended.c

    thanks.

  • Hi,

    You could use the function Osal_delay(1000) for 1 sec of delay. This is used in all the PDK based examples

    Regards,

    Nikhil