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.

AM6548: tidss does not work on linux 6.12.46

Part Number: AM6548

Hi TI Team,

We have encountered an issue where tidss does not work on linux 6.12.46.

 

 

  • SOC: AM6548
  • DP connector Chip: TOSHIBA 358867XBG
  • Linux Kernel: v6.12.46 CIP (downloaded from git://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git)

 

After system startup, /dev/fb0 and /dev/dri/cardo present, but there is no ouput from DP port.

Questions:

Is the tidss not completed in kernel 6.12? If so, is there any patch for fixing it?

 

  • Hi,
    Since you are trying to integrate a custom bridge, there is only limited help we can offer.

    Please go through [FAQ] AM62P: Display SubSystem (DSS): Basic Debugging and Forum Best Practices and post General Debugging command output on this E2E.

    Are you seeing output on DPI lines on running kmstest?

  • Yes. 

    Here is the debugging info:

    root@iot2050-debian:~/kmsxx# ls -l /dev/dri/card*
    crw-rw---- 1 root video 226, 0 Sep 9 08:39 /dev/dri/card0
    root@iot2050-debian:~/kmsxx# modetest -M tidss
    opened device `TI Keystone DSS` on driver `tidss` (version 1.0.0 at 0)
    Encoders:
    id crtc type possible crtcs possible clones
    40 39 none 0x00000001 0x00000001
    
    Connectors:
    id encoder status name size (mm) modes encoders
    41 40 connected DP-1 520x330 12 40
    modes:
    index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
    #0 1920x1200 59.95 1920 1968 2000 2080 1200 1203 1209 1235 154000 flags: phsync, nvsync; type: preferred, driver
    #1 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: nhsync, nvsync; type: driver
    #2 1680x1050 59.95 1680 1784 1960 2240 1050 1053 1059 1089 146250 flags: nhsync, pvsync; type: driver
    #3 1600x900 60.00 1600 1624 1704 1800 900 901 904 1000 108000 flags: phsync, pvsync; type: driver
    #4 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver
    #5 1440x900 59.89 1440 1520 1672 1904 900 903 909 934 106500 flags: nhsync, pvsync; type: driver
    #6 1280x800 59.81 1280 1352 1480 1680 800 803 809 831 83500 flags: nhsync, pvsync; type: driver
    #7 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
    #8 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver
    #9 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver
    #10 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver
    #11 720x400 70.08 720 738 846 900 400 412 414 449 28320 flags: nhsync, pvsync; type: driver
    props:
    1 EDID:
    flags: immutable blob
    blobs:
    
    value:
    00ffffffffffff00220e8f3600000000
    02210104a53421783a5cf5a8554ca424
    0c5054a10800b30095008100d1c0a9c0
    81c0a9408180283c80a070b023403020
    360006442100001a000000fd00323c1e
    5011010a202020202020000000fc0048
    5020453234692047340a2020000000ff
    00434e4b33303230465a500a20200046
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0
    5 link-status:
    flags: enum
    enums: Good=0 Bad=1
    value: 0
    6 non-desktop:
    flags: immutable range
    values: 0 1
    value: 0
    4 TILE:
    flags: immutable blob
    blobs:
    
    value:
    
    CRTCs:
    id fb pos size
    39 50 (0,0) (1920x1200)
    #0 1920x1200 59.95 1920 1968 2000 2080 1200 1203 1209 1235 154000 flags: phsync, nvsync; type: preferred, driver
    props:
    24 VRR_ENABLED:
    flags: range
    values: 0 1
    value: 0
    27 CTM:
    flags: blob
    blobs:
    
    value:
    28 GAMMA_LUT:
    flags: blob
    blobs:
    
    value:
    29 GAMMA_LUT_SIZE:
    flags: immutable range
    values: 0 4294967295
    value: 256
    
    Planes:
    id crtc fb CRTC x,y x,y gamma size possible crtcs
    32 39 50 0,0 0,0 0 0x00000001
    formats: AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12
    props:
    8 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    30 IN_FORMATS:
    flags: immutable blob
    blobs:
    
    value:
    01000000000000001d00000018000000
    01000000900000004152313241423132
    52413132524731364247313641523135
    41423135415232344142323452413234
    42413234524732344247323441523330
    41423330585231325842313252583132
    58523135584231355852323458423234
    52583234425832345852333058423330
    59555956555956594e56313200000000
    ffffff1f000000000000000000000000
    0000000000000000
    in_formats blob decoded:
    AR12: LINEAR(0x0)
    AB12: LINEAR(0x0)
    RA12: LINEAR(0x0)
    RG16: LINEAR(0x0)
    BG16: LINEAR(0x0)
    AR15: LINEAR(0x0)
    AB15: LINEAR(0x0)
    AR24: LINEAR(0x0)
    AB24: LINEAR(0x0)
    RA24: LINEAR(0x0)
    BA24: LINEAR(0x0)
    RG24: LINEAR(0x0)
    BG24: LINEAR(0x0)
    AR30: LINEAR(0x0)
    AB30: LINEAR(0x0)
    XR12: LINEAR(0x0)
    XB12: LINEAR(0x0)
    RX12: LINEAR(0x0)
    XR15: LINEAR(0x0)
    XB15: LINEAR(0x0)
    XR24: LINEAR(0x0)
    XB24: LINEAR(0x0)
    RX24: LINEAR(0x0)
    BX24: LINEAR(0x0)
    XR30: LINEAR(0x0)
    XB30: LINEAR(0x0)
    YUYV: LINEAR(0x0)
    UYVY: LINEAR(0x0)
    NV12: LINEAR(0x0)
    34 zpos:
    flags: range
    values: 0 1
    value: 0
    35 COLOR_ENCODING:
    flags: enum
    enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1
    value: 0
    36 COLOR_RANGE:
    flags: enum
    enums: YCbCr limited range=0 YCbCr full range=1
    value: 1
    37 alpha:
    flags: range
    values: 0 65535
    value: 65535
    38 pixel blend mode:
    flags: enum
    enums: Pre-multiplied=0 Coverage=1
    value: 0
    42 0 0 0,0 0,0 0 0x00000001
    formats: AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12
    props:
    8 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 0
    30 IN_FORMATS:
    flags: immutable blob
    blobs:
    
    value:
    01000000000000001d00000018000000
    01000000900000004152313241423132
    52413132524731364247313641523135
    41423135415232344142323452413234
    42413234524732344247323441523330
    41423330585231325842313252583132
    58523135584231355852323458423234
    52583234425832345852333058423330
    59555956555956594e56313200000000
    ffffff1f000000000000000000000000
    0000000000000000
    in_formats blob decoded:
    AR12: LINEAR(0x0)
    AB12: LINEAR(0x0)
    RA12: LINEAR(0x0)
    RG16: LINEAR(0x0)
    BG16: LINEAR(0x0)
    AR15: LINEAR(0x0)
    AB15: LINEAR(0x0)
    AR24: LINEAR(0x0)
    AB24: LINEAR(0x0)
    RA24: LINEAR(0x0)
    BA24: LINEAR(0x0)
    RG24: LINEAR(0x0)
    BG24: LINEAR(0x0)
    AR30: LINEAR(0x0)
    AB30: LINEAR(0x0)
    XR12: LINEAR(0x0)
    XB12: LINEAR(0x0)
    RX12: LINEAR(0x0)
    XR15: LINEAR(0x0)
    XB15: LINEAR(0x0)
    XR24: LINEAR(0x0)
    XB24: LINEAR(0x0)
    RX24: LINEAR(0x0)
    BX24: LINEAR(0x0)
    XR30: LINEAR(0x0)
    XB30: LINEAR(0x0)
    YUYV: LINEAR(0x0)
    UYVY: LINEAR(0x0)
    NV12: LINEAR(0x0)
    44 zpos:
    flags: range
    values: 0 1
    value: 1
    45 COLOR_ENCODING:
    flags: enum
    enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1
    value: 0
    46 COLOR_RANGE:
    flags: enum
    enums: YCbCr limited range=0 YCbCr full range=1
    value: 1
    47 alpha:
    flags: range
    values: 0 65535
    value: 65535
    48 pixel blend mode:
    flags: enum
    enums: Pre-multiplied=0 Coverage=1
    value: 0
    
    Frame buffers:
    id size pitch
    
    root@iot2050-debian:~/kmsxx# kmsprint --device=/dev/dri/card0
    Connector 0 (41) DP-1 (connected)
    Encoder 0 (40) NONE
    Crtc 0 (39) 1920x1200@59.95 154.000 1920/48/32/80/+ 1200/3/6/26/- 60 (59.95) P|D
    Plane 0 (32) fb-id: 50 (crtcs: 0) 0,0 1920x1200 -> 0,0 1920x1200 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12)
    FB 50 1920x1200 XR24
    root@iot2050-debian:~/kmsxx# kmstest --device=/dev/dri/card0
    Connector 0/@41: DP-1
    Crtc 0/@39: 1920x1200@59.95 154.000 1920/48/32/80/+ 1200/3/6/26/- 60 (59.95) P|D
    Plane 0/@32: 0,0-1920x1200
    Fb 52 1920x1200-XR24
    press enter to exit
    
    root@iot2050-debian:~/kmsxx# dmesg | grep -i dss
    [ 0.093713] /bus@100000/i2c@2030000/edp-bridge@f: Fixed dependency cycle(s) with /bus@100000/dss@4a00000
    [ 0.093977] /bus@100000/dss@4a00000: Fixed dependency cycle(s) with /bus@100000/i2c@2030000/edp-bridge@f
    [ 0.101120] /bus@100000/i2c@2030000/edp-bridge@f: Fixed dependency cycle(s) with /bus@100000/dss@4a00000
    [ 0.108335] /bus@100000/i2c@2030000/edp-bridge@f: Fixed dependency cycle(s) with /bus@100000/dss@4a00000
    [ 0.108442] /bus@100000/dss@4a00000: Fixed dependency cycle(s) with /bus@100000/i2c@2030000/edp-bridge@f
    [ 0.548954] /bus@100000/dss@4a00000: Fixed dependency cycle(s) with /bus@100000/i2c@2030000/edp-bridge@f
    [ 0.549112] /bus@100000/i2c@2030000/edp-bridge@f: Fixed dependency cycle(s) with /bus@100000/dss@4a00000
    [ 4.681946] [drm] Initialized tidss 1.0.0 for 4a00000.dss on minor 0
    [ 6.232732] tidss 4a00000.dss: [drm] fb0: tidssdrmfb frame buffer device

  • Please share kmstest result as well.

  • Here is the kmstest result;

    kmstest --device=/dev/dri/card0
    Connector 0/@41: DP-1
    Crtc 0/@39: 1920x1200@59.95 154.000 1920/48/32/80/+ 1200/3/6/26/- 60 (59.95) P|D
    Plane 0/@32: 0,0-1920x1200
    Fb 52 1920x1200-XR24

  • Your configuration seems to be working, can you probe the DPI pins on your board and check if you are seeing signals?

  • There is an issue on tidss, and there is a patch for fixing it: lore.kernel.org/.../