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.

DVR RDK Grpx frame buffer question

Other Parts Discussed in Thread: THS7360, TMS320DM8168

I am using DVR RDK on dm8168, how do I modify such that the same frame buffer on GRPX0 can be shown on both the HDMI and DVO2 output? just like HDCOMP and DVO2 are showing the same frame GRPX1,

Thanks

  • hi Thomas,

    Tying of HDMI and DVO2 is not supported in the current RDK code. Let me come up with the list of changes required to tie them and then you could display same grpx on HDMI and DVO2 output.

    Regards,

    Brijesh Jadav

  • Thanks, a list of changes required would be helpful.

  • hi Brijesh Jadav,

    Would there be many changes needed? or just a few?
    Hope to see your list soon, as I am stuck here for some time already.

    Thanks

    Thomas

  • Hi,

    Please find below list of changes required to support tying of HDMI and DVO2

    1, Modify display controller tree in \\dvr_rdk\mcfw\src_bios6\links_m3vpss\system\system_dctrl.c like below

    /* To tie DVO2 and HDCOMP together refer following Mesh */
    Vps_DcConfig gSystem_dctrlTriDisplayConfigHdmiDvo2 = {
        VPS_DC_USERSETTINGS,                                   /* Use Case */
        /* Edge information */
        {
         {VPS_DC_BP0_INPUT_PATH, VPS_DC_VCOMP_MUX}     ,
         {VPS_DC_VCOMP_MUX, VPS_DC_VCOMP}     ,
         {VPS_DC_CIG_CONSTRAINED_OUTPUT, VPS_DC_HDCOMP_BLEND}     ,
         {VPS_DC_BP1_INPUT_PATH, VPS_DC_HDCOMP_MUX}     ,
         {VPS_DC_HDCOMP_MUX, VPS_DC_CIG_PIP_INPUT}     ,
         {VPS_DC_CIG_PIP_OUTPUT, VPS_DC_DVO2_BLEND}     ,
         {VPS_DC_CIG_PIP_OUTPUT, VPS_DC_HDMI_BLEND}     ,
         {VPS_DC_SEC1_INPUT_PATH, VPS_DC_SDVENC_MUX}     ,
         {VPS_DC_SDVENC_MUX, VPS_DC_SDVENC_BLEND}     ,
         {VPS_DC_GRPX0_INPUT_PATH, VPS_DC_HDMI_BLEND}     ,
         {VPS_DC_GRPX1_INPUT_PATH, VPS_DC_HDCOMP_BLEND}     ,
         {VPS_DC_GRPX0_INPUT_PATH, VPS_DC_DVO2_BLEND}
         }
        ,
        12,
        /* VENC information */
        {
         /* Mode information */
         {
          {VPS_DC_VENC_HDMI, {FVID2_STD_1080P_60}
           }
          ,                                                    /* 1080p30 is mode
                                                                * is overwritten
                                                                * later inside
                                                                * System_displayCtrlInit
                                                                */
          {VPS_DC_VENC_HDCOMP, {FVID2_STD_1080P_60}
           }
          ,                                                    /* 1080p30 is mode
                                                                * is overwritten
                                                                * later inside
                                                                * System_displayCtrlInit
                                                                */
          {VPS_DC_VENC_DVO2, {FVID2_STD_1080P_60}
           }
          ,                                                    /* 1080p30 is mode
                                                                * is overwritten
                                                                * later inside
                                                                * System_displayCtrlInit
                                                                */
          {VPS_DC_VENC_SD, {FVID2_STD_NTSC}
           }
          }
         ,
         (VPS_DC_VENC_DVO2 | VPS_DC_VENC_HDMI),              /* Tied VENC bit
                                                                * mask */
         4u                                                    /* Number of VENCs
                                                                */
         }
    };

    2, Modify the function System_displayCtrlInit to use this display controller tree like

        if(pPrm->tiedDevicesMask == (VPS_DC_VENC_DVO2 | VPS_DC_VENC_HDMI))
        {
            dctrlTriDisplayConfig = &(gSystem_dctrlTriDisplayConfigHdmiDvo2);
            dctrlTriDisplayConfig->vencInfo.tiedVencs = pPrm->tiedDevicesMask;
        }

    3, Modify the tied venc mask in U:\dvr_rdk\demos\mcfw_api_demos\mcfw_demo\demo_vcap_venc_vdec_vdis.c file

    Vdis_tiedVencInit(VDIS_DEV_DVO2, VDIS_DEV_HDMI, &vdisParams);

    These are the minimal changes required to tie hdmi with DVO2, And now you should be able to see same grpx on HDMi and DVO2.

    Regards,

    Brijesh Jadav

  • Hi Brijesh Jadav,

    Thanks, I will try that.

  • Hello, Brijesh

    How to tie HDMI and DVO2 using vpss driver sysfs?

    I have followed the below document but it's not work.

    http://processors.wiki.ti.com/index.php/DM816X_C6A816X_AM389X_VPSS_Video_Driver_User_Guide_PSP_04.00.00.11#Cloning_fb0.28graphics0.29_output_to_both_HDMI_VENC.28display0.29_and_DVO2_VENC.28display1.29

    I want to display GUI(ex. QT application) frame buffer 0(/dev/fb0) on the HDMI and VGA. HDMI display seems good but VGA display fails(It's black!).

    Are there something should to do?

    Thanks in advance.

    Steven

  • Hi Steven,

     

    Can you check if you are following below steps?

    1, echo 0 > /sys/devices/platform/vpss/graphics0/enabled

    2, echo 0 > /sys/devices/platform/vpss/display0/enabled

    3, echo 0 > /sys/devices/platform/vpss/display1/enabled

    4, echo 5 > /sys/devices/platform/vpss/system/tiedvenc

    5, echo 2:hdmi,dvo2 > /sys/devices/platform/vpss/graphics0/nodes

    6, echo 720p-60 > /sys/devices/platform/vpss/display0/mode

    7, echo 720p-60 > /sys/devices/platform/vpss/display1/mode

    8, echo 1 > /sys/devices/platform/vpss/display0/enabled

    9, echo 1 > /sys/devices/platform/vpss/display1/enabled

    10, echo 1 > /sys/devices/platform/vpss/graphics0/enabled

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    Thank for quick reply.

    your steps will cause some errors,  just like:

    VPSS_DCTRL: stop venc before changing mode
    sh: write error: Invalid argument

    So I following the below steps

    1. echo 0 > /sys/devices/platform/vpss/display0/enabled

    2. echo 0 > /sys/devices/platform/vpss/display1/enabled

    3. echo 720p-60 > /sys/devices/platform/vpss/display0/mode

    4. echo 720p-60 > /sys/devices/platform/vpss/display1/mode

    5. echo 5 > /sys/devices/platform/vpss/system/tiedvencs

    6. echo 2:hdmi,dvo2 > /sys/devices/platform/vpss/graphics0/nodes

    7. echo 1 > /sys/devices/platform/vpss/display0/enabled

    8. echo 1 > /sys/devices/platform/vpss/display1/enabled

    9. ./GUI_app(simple GUI application)

    But the result is the same. It's no signal on VGA display.

    Another question: On DVR RDK board, VGA display from dvo2 or hdcomp ?

    thanks again!

    Steven

  • Hi Steven,

     

    Vga output is from hdcomp.

     

    on which do you see this error? can you check the status of the VENC using below commnad? If it says 1, VENC is still on, so one of the steps 1 and 2 above is failed. It could fail if one of the input path like graphics/fbdev is still connected to the VENC. Can you try disabling fbdev?

     

    cat  /sys/devices/platform/vpss/display0/enabled

    cat  /sys/devices/platform/vpss/display1/enabled

     

    Regards,

    Brijesh Jadav

  • Hello Brijesh,

    The status of the VENC  is 1.

    cat /sys/devices/platform/vpss/display0/enabled is 1

    cat /sys/devices/platform/vpss/display1/enabled is 1

    Because VGA output is from hdcomp, so I change the steps below:

    1. echo 0 > /sys/devices/platform/vpss/graphics0/enabled

        VPSS_GRPX : please open fb0 node first.
        sh: write error: Invalid argument

        At this moment, i dont execute my GUI app. So /dev/fb0 is closed.

    2. echo 0 > /sys/devices/platform/vpss/display0/enabled

        Disable hdmi venc.

    3. echo 0 > /sys/devices/platform/vpss/display3/enabled

        Disable hdcomp venc.

    4. cat /sys/devices/platform/vpss/display0/enabled

        cat /sys/devices/platform/vpss/display3/enabled

        Both are zero.

    4. echo 3 > /sys/devices/platform/vpss/system/tiedvencs

        Tied hdmi with hdcomp.

    5. cat /sys/devices/platform/vpss/display0/enabled   

        cat /sys/devices/platform/vpss/display3/enabled

        Both are 1. Does "set tiedvencs" will enable venc?

    5. echo 2:hdmi,hdcomp > /sys/devices/platform/vpss/graphics0/nodes

        Set /dev/fb0 output.

    6. ./GUI_APP

        GUI_APP will open fbdev and show simple gui on the /dev/fb0

    The result is the same! VGA display is no signal!

    Thanks!

    Steven

  • Hi Brijesh,

    Let me clarify...

    When I tied hdmi with dvo2 and execute my GUI application. VGA display has singal but it shows black.

    When I tied hdmi with hdcomp and execute my GUI application. VGA display has no signal.

    Why? Is VGA display from hdcomp on DVR RDK?

    Thanks!

    Steven

  • Hi Steven,

     

    Could you please share the dump of below registers?

    0x48108000

    0x48140724

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    Sorry for late reply.

    0x48108000: 44033013

    0x48140724: 00000002

    Regards,

    Steven

  • Hi Steven,

     

    i hope you have taken this register dump when VGA does not output anything.

    From the dump, venc is on and pin mux is set correctly for hte sync signals, so it should display at least back ground color, ie black color, but tv is still not detecting. there is only one possibility, there is a filter at the outpu of DAC, ths7360. DAC signals goes through this filter, if this filter is disabled, it will not output anything. Could you check if filter is configured correctly?

    When you tie, HDMI + DVO2, are you seeing black output? TV  is detecting input mode correctly.. Did you try this with DVR-RDK?

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    Does THS7360 need be manual configured on DVRRDK? It seems configured correctly by hardware setting.

    When I tied hdmi + dvo2 and execute gui application, I could see black output. But tied hdmi + hdcomp is no signal.

    I have tried it with our  board and DVRRDK board. The result is the same.

    Dump register :

    Our board :

    0x48108000: 44033013

    0x48140724: 00000002

    DVRRDK:

    0x48108000: 5403301A

    0x48140724: 00000002

    Thanks for your support.

    Regards,

    Steven

  • Hi Steven,

     

    There is THS7360 driver on DVRRDK which enables the output and sets filter required for the mode. The api, which is called, Device_ths7360SetSfParams. Could you check if you are calling this api for setting ths7360 filter correctly?

     

    There is only one difference in the register dump you shared. DVRRDK somehow is setting up the output in 1080i mode, whereas you are setting progressive mode. Except that it is same.

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    As I know, THS7360 only need be configured in EVM board.  THS7360 always enables the output by hardware setting(DIS_SD, DIS_SF pin has be connected to ground).

    Is it wrong?

    By the way, I could see the video display on VGA monitor using my demo application. I dont think it's THS7360 setting problem.

    Thank for your support.

    Regards,

    Steven

  • Hi Sirs,

    Does anyone have any clue?

    Thanks!

    Regards,

    Steven

  • Hi Steven,

     

    I am not getting your question. is it VGA output working or not? working in which application and not working in which application?

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    Sorry for my english.

    1. VGA output is not working on my GUI application.

    This application just display simple UI on /dev/fb0. I have tied the hdmi output with hdcomp(VGA) output using vpss sysfs. But VGA output is no signal.

    2. VGA output is working on DVRRDK mcfw demo application.

    I have run decode-display demo, I modified  /dvr_rdk/demos/mcfw_api_demos/mcfw_demo/demo_vdec_vdis.c file to tie hdmi with hdcomp.

    //Vdis_tiedVencInit(VDIS_DEV_HDCOMP, VDIS_DEV_DVO2, &vdisParams);
    Vdis_tiedVencInit(VDIS_DEV_HDCOMP, VDIS_DEV_HDMI, &vdisParams);

    After modified, GRPX frame buffer can display on the VGA output.

    At this moment, I execute my GUI application and can see the simple UI on VGA output.

    My question is:

    I want to display /dev/fb0 on the VGA output. I dont know how "mcfw demo api" configure the vpss driver.

    I have used vpss sysfs to configure vpss but it's not work.  I think there are something wrong in my vpss sysfs configure.

    Any help will be appreciate.

    thanks

    Regards,

    Steven

  • Hi Steven,

     

    As i understand, your TV says no signal for the VGA output, which means either Venc is not on, or somewhere the path is blocked. Before tying, Could we first check that VGA is working fine?

    After loading VPSS.ko, can you do below steps? After these steps, are you seeing any blank output on 720p mode?

    echo 0 > /sys/devices/platform/vpss/display3/enabled

    cat  /sys/devices/platform/vpss/display3/enabled

    echo vga, rgb888, 0/0/0/0 > /sys/devices/platform/vpss/display3/output

    echo 720p-60 >  /sys/devices/platform/vpss/display3/mode

    echo 1 > /sys/devices/platform/vpss/display3/enabled

     

    Rgds,

    Brijesh Jadav

  • Hi Brijesh,

    I follow the steps:

    echo vga, rgb888, 0/0/0/0 > /sys/devices/platform/vpss/display3/output

    result :

    VPSS_DCTRL: invalid output value vga
    sh: write error: Invalid argument

    cat /sys/devices/platform/vpss/display3/output

    result :

    component,rgb888

    Regards,

    Steven





  • ok, can you try

     

    echo component, rgb888, 0/0/0/0 > /sys/devices/platform/vpss/display3/output

     

    Regards,

    Brijesh

  • Hi Brijesh,

    Thanks for quick reply.

    #echo component,rgb888,0/0/0/0 > /sys/devices/platform/vpss/display3/output

    #cat /sys/devices/platform/vpss/display3/ouput

    component,rgb888

    After the above setting, VGA output still no signal.

    I see another thread, http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/134363.aspx?pi239031349=2

    It seems the same problem i met.

    My DM8168 SOC is old version(ES1.0 or ES1.1) and my PSP is 04.04.0.1.

    Does it cause this problem?

    Thanks

    Best regards,

    Steven

  • Hi Steven,

     

    VGA output is not possible on ES1.1 or ES1.0, You will need ES2.0 or later to get the VGA output.

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    I am very sorry.

    I check SOC chip again. It seems revision is ES2.0. (TMS320DM8168BCYG2)

    PSP is 04.04.0.1

    sorry again!

    regards,

    Steven

  • Hi Steven,

     

    Is it possible to migrate to latest PSP release?

     

    Regards,

    Brijesh Jadav

  • Hi Brijesh,

    After updating vpss driver(vpss.ko) from PSP 04.04.00.02. I could see my gui application display on VGA and HDMI now!!!

    My steps is below:

    1.  Update /linux-04.04.00.01/drivers/video/ti81xx/vpss folder from linux-04.04.00.02 except grpx.c (if i update grpx.c, ti81xxfb.ko will insmod fail...it will show "no grpxs")

    2.  After boot up, VGA output could detect signal, but the display  is green, NOT black. And display is shift(there is a black bar on the left of green screen.)

    3.  # cat /sys/devices/platform/vpss/display3/output

            component,yuv422spuv

         # echo 0 > /sys/devices/platform/vpss/display3/enabled
         # echo component,rgb888,0/0/0/0 > /sys/devices/platform/vpss/display3/output
         # echo 1 > /sys/devices/platform/vpss/display3/enabled

         VGA output is black now!

    4. # echo 0 > /sys/devices/platform/vpss/display0/enabled
        # echo 0 > /sys/devices/platform/vpss/display3/enabled
        # echo 3 > /sys/devices/platform/vpss/system/tiedvencs
        # echo 2:hdmi,hdcomp > /sys/devices/platform/vpss/graphics0/nodes

        # ./gui_app

        I could see my gui display on VGA and HDMI output!!! But on VGA output, the UI is shift(black bar at the left of screen) and output is flicker. Are there something wrong?

    Thanks for your patience!!

    Regards,

    Steven