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.

jacinto6 hdmi display issue with drm edid.

Other Parts Discussed in Thread: SYSCONFIG, TFP403

I have some problem to display 1920x720p resolution LCD.

At first, I had added kernel parameter "video=HDMI-A-1:1920x720@60", but It did not work.

modetest log  :

24 23 connected HDMI-A 0x0 6 23
modes:
name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
1920x720 60 1920 2008 2208 2496 720 721 724 746 flags: nhsync, pvsync; type:
1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; type: driver
848x480 60 848 864 976 1088 480 486 494 517 flags: phsync, pvsync; type: driver
640x480 60 640 656 752 800 480 489 492 525 flags: nhsync, nvsync; type: driver
props:
1 EDID:
flags: immutable blob
blobs:

value: 2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0

So I had added kernel parameter "drm_kms_helper.edid_firmware=HDMI-A-1:edid/1920x720.bin" after I got the EDID infomation from lcd board

I modified "drivers/gpu/drm/drm_edid_load.c" to add 1920x720 edid from lcd board and changed kernel config for CONFIG_DRM_LOAD_EDID_FIRMWARE.

I think the EDID is applied well because of the result of modetest log. 

But, still it did not work.

modetest log  :

24 23 connected HDMI-A 340x270 1 23
modes:
name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
1920x720 60 1920 2000 2058 2248 720 724 730 744 flags: nhsync, nvsync; type: preferred, driver

props:
1 EDID:
flags: immutable blob
blobs:

value:
00ffffffffffff00244dda0100000000
0018010380221b782aeea5a3544c9926
14505400000001010101010101010101
0101010101013327804871d01820503a
46000000000000180000000000000000
00000000000000000000000000000000
000000000000000000000000000000fc
0044414f4c2d4456490a2020202000a9
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0

Is there any other suggestions or tips ?

  • Hi,

    Your question has been raised to DSS SW expert.

    Best regards
    Lucy
  • the dump of registers ompadss

    # cat /sys/kernel/debug/omapdss/hdmi
    HDMI_WP_REVISION 50031d00
    HDMI_WP_SYSCONFIG 0000000c
    HDMI_WP_IRQSTATUS_RAW 60030010
    HDMI_WP_IRQSTATUS 00000000
    HDMI_WP_IRQENABLE_SET 06000000
    HDMI_WP_IRQENABLE_CLR 06000000
    HDMI_WP_IRQWAKEEN 00000000
    HDMI_WP_PWR_CTRL 000000aa
    HDMI_WP_DEBOUNCE 00001414
    HDMI_WP_VIDEO_CFG 80010101
    HDMI_WP_VIDEO_SIZE 02d00780
    HDMI_WP_VIDEO_TIMING_H 0be0503a
    HDMI_WP_VIDEO_TIMING_V 00e00406
    HDMI_WP_CLK 0a000700
    HDMI_WP_AUDIO_CFG 01030005
    HDMI_WP_AUDIO_CFG2 000010c0
    HDMI_WP_AUDIO_CTRL 00000010
    HDMI_WP_AUDIO_DATA 00000000
    PLL_CONTROL 00000018
    PLL_STATUS 00000003
    PLL_GO 00000000
    PLL_CONFIGURATION1 0006441e
    PLL_CONFIGURATION2 00e06004
    PLL_CONFIGURATION3 00001000
    PLL_SSC_CONFIGURATION1 00000000
    PLL_SSC_CONFIGURATION2 00000000
    PLL_CONFIGURATION4 00073333
    HDMI_TXPHY_TX_CTRL 40000000
    HDMI_TXPHY_DIGITAL_CTRL f0000000
    HDMI_TXPHY_POWER_CTRL bf1bcc80
    HDMI_TXPHY_PAD_CFG_CTRL 00107f80
    HDMI_TXPHY_BIST_CONTROL 00000800
    HDMI_CORE_FC_INVIDCONF 00000010
    HDMI_CORE_FC_INHACTIV0 00000080
    HDMI_CORE_FC_INHACTIV1 00000007
    HDMI_CORE_FC_INHBLANK0 00000047
    HDMI_CORE_FC_INHBLANK1 00000001
    HDMI_CORE_FC_INVACTIV0 000000d0
    HDMI_CORE_FC_INVACTIV1 00000002
    HDMI_CORE_FC_INVBLANK 00000018
    HDMI_CORE_FC_HSYNCINDELAY0 00000050
    HDMI_CORE_FC_HSYNCINDELAY1 00000000
    HDMI_CORE_FC_HSYNCINWIDTH0 00000039
    HDMI_CORE_FC_HSYNCINWIDTH1 00000000
    HDMI_CORE_FC_VSYNCINDELAY 00000004
    HDMI_CORE_FC_VSYNCINWIDTH 00000006
    HDMI_CORE_FC_CTRLDUR 0000000c
    HDMI_CORE_FC_EXCTRLDUR 00000020
    HDMI_CORE_FC_EXCTRLSPAC 00000001
    HDMI_CORE_FC_CH0PREAM 0000000b
    HDMI_CORE_FC_CH1PREAM 00000016
    HDMI_CORE_FC_CH2PREAM 00000021
    HDMI_CORE_FC_AVICONF0 00000000
    HDMI_CORE_FC_AVICONF1 00000000
    HDMI_CORE_FC_AVICONF2 00000000
    HDMI_CORE_FC_AVIVID 00000000
    HDMI_CORE_FC_PRCONF 00000010
    HDMI_CORE_MC_CLKDIS 00000000
    HDMI_CORE_MC_SWRSTZREQ 000000ff
    HDMI_CORE_MC_FLOWCTRL 00000001
    HDMI_CORE_MC_PHYRSTZ 00000000
    HDMI_CORE_MC_LOCKONCLOCK 00000060
    HDMI_CORE_I2CM_SLAVE 00000000
    HDMI_CORE_I2CM_ADDRESS 00000000
    HDMI_CORE_I2CM_DATAO 00000000
    HDMI_CORE_I2CM_DATAI 00000000
    HDMI_CORE_I2CM_OPERATION 00000000
    HDMI_CORE_I2CM_INT 0000000c
    HDMI_CORE_I2CM_CTLINT 000000cc
    HDMI_CORE_I2CM_DIV 0000000b
    HDMI_CORE_I2CM_SEGADDR 00000000
    HDMI_CORE_I2CM_SOFTRSTZ 00000001
    HDMI_CORE_I2CM_SEGPTR 00000000
    HDMI_CORE_I2CM_SS_SCL_HCNT_1_ADDR 00000000
    HDMI_CORE_I2CM_SS_SCL_HCNT_0_ADDR 0000006c
    HDMI_CORE_I2CM_SS_SCL_LCNT_1_ADDR 00000000
    HDMI_CORE_I2CM_SS_SCL_LCNT_0_ADDR 0000007f
    HDMI_CORE_I2CM_FS_SCL_HCNT_1_ADDR 00000000
    HDMI_CORE_I2CM_FS_SCL_HCNT_0_ADDR 00000011
    HDMI_CORE_I2CM_FS_SCL_LCNT_1_ADDR 00000000
    HDMI_CORE_I2CM_FS_SCL_LCNT_0_ADDR 00000024
    HDMI_CORE_I2CM_SDA_HOLD_ADDR 00000009
  • Hi,

    I could not reproduce the reported problem on my setup. I used GLSDK
    7.04 with a Rev. G EVM and a 1920x720 HDMI display. I disabled the
    code to read edid in the kernel and forced the display mode using "
    video=HDMI-A-1:1920x720@60" appended to the kernel parameters. I could
    see the monitor come up and I was able to run kmscube on the HDMI
    display.

    $ modetest -p
    ...
    18 30 (0,0) (1920x720)
    1920x720 0 1920 2008 2208 2496 720 721 724 746 flags: nhsync, pvsync; type:


    The output of modetest also shows the resolution set correctly.

    Could you provide more information to proceed further?

    1. SDK version
    2. EVM version
    3. Display details
    - Is it an off the shelf display or a custom one?
    - Has it been tested with multiple J6 EVM's?
    - Have multiple displays been tested with the same J6 EVM?

    regards,
    Venkat
  •  1. SDK version
        : GLSDK 7.04

     2. EVM version
        : Custom board basded on Rev. G EVM

     3. Display details

     - Is it an off the shelf display or a custom one?
        : It's customized OLED display. 
          The digital receiver of the display board is TI TFP403(DVI1.0).
          Physical connecter is HDMI.
          But as you know, according to the register setting(HDMI_CORE_FC_INVIDCONF 0x00000010) DVI mode is set.

     - Has it been tested with multiple J6 EVM's?
        : Yes. We have 2ea EVM. All of them are not working with this board.

     - Have multiple displays been tested with the same J6 EVM?
        : No. We have only one OLED display board.
          But all of laptop is working with this OLED board. And also i.mx6 AP board(using imxdpu driver) is working.
          TI evm and our custom boards are not working with this board.
          There's somthing weird.
          TI evm and our custom boards with this EDID setting(from OLED display board)
          are working with other 12.3"LCD(1920x720 LG, AUO) and moitors(LG, SAUMSUNG fullhd monitors)
          although some LCDs have sharpness problems because of sync.
          Only this OLED display board is not working!!!
    :-(

     

  • Hi,

    We are not entirely sure why the OLED board is not working with the TI EVM. There are some modifications to the HDMI driver from K3.14 used in GLSDK 7.04 to the latest K 4.4. Could you please try the latest SDK based on K4.4 and let us know if you see the same/different behaviour?

    downloads.ti.com/.../index_FDS.html

    regards,
    Venkat
  • The problem is solved.
    There is no problem at the latest K 4.4
    The HSW resister setting was wrong @GLSDK 7.04.(HSW timing was delayed.)

    hdmi_wp.c file
    void hdmi_wp_video_config_timing function

    ...
    // timing_h |= FLD_VAL(timings->hsw, 7, 0);
    timing_h |= FLD_VAL(timings->hsw-1, 7, 0); /*Setting value should be (timings->hsw - 1) */
    ...



    Thanks

    regards,
    JeHun