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.

SN65DSI86: Screen become blank after sometime on sleep

Part Number: SN65DSI86

Hi TI,

We have few unit which are having screen blank problem after boot or when the device enter into sleep state. I have pulled the register dump from failing unit and listed below. Also we found that 0x96 reg is 0x0 (main link off) when the issue happened. In our SW we are setting 0x96 reg to 0xA (fast link training) but when the issue occurs we are getting 0x0 from the edp bridge chip. Can you help us debug this issue? Device kernel log showing "Link training failed and link is off". 

F0 0x00
F1 0x00
F2 0x00
F3 0x00
F4 0x01
F5 0x02
F6 0x00
F7 0x00
F8 0x06
F9 0x00
FA 0x00
FB 0x00
FC 0x00
FD 0x00
FE 0x00
FF 0x00

Thanks

Mani

  • Mani

    How do you put the DSI86 into the sleep state? 

    Does the issue show up with semi-auto link training?

    For fast link training, SW needs to program both the DSI86 and the eDP panel with the calibrated settings, have you done that?

    Thanks

    David

  • Hi David,

    Actually we are using semi auto link training and sorry for the confusion. If you look at the register dump the F8 reg is set to 0x06 when the issue happened. so it proves that the link training failure bit and semi auto link training bit are set. Why the link training suddenly failed and what causes that? We are only seeing 3 or 4 units with this failure and other units are working fine. Is this related to bad chip or SW?

    Also when the issue happened we were tried writing 0x96 reg with 0x0a but after writing read back saying the value is 0x0.

    Test starts
    0 = 0x36
    1 = 0x38
    2 = 0x49
    3 = 0x53
    4 = 0x44
    5 = 0x20
    6 = 0x20
    7 = 0x20
    8 = 0x02
    9 = 0x00
    10 = 0x86
    11 = 0x00
    12 = 0x00
    13 = 0x01
    14 = 0x00
    15 = 0x00
    16 = 0x20
    17 = 0x00
    18 = 0x7b
    19 = 0x00
    20 = 0x00
    21 = 0x00
    22 = 0x00
    23 = 0x00
    24 = 0x00
    25 = 0x00
    26 = 0x00
    27 = 0x00
    28 = 0x00
    29 = 0x00
    30 = 0x00
    31 = 0x00
    32 = 0x70
    33 = 0x08
    34 = 0x00
    35 = 0x00
    36 = 0xa0
    37 = 0x05
    38 = 0x00
    39 = 0x00
    40 = 0x00
    41 = 0x00
    42 = 0x00
    43 = 0x00
    44 = 0x20
    45 = 0x00
    46 = 0x00
    47 = 0x00
    48 = 0x0a
    49 = 0x00
    50 = 0x00
    51 = 0x00
    52 = 0x50
    53 = 0x00
    54 = 0x1b
    55 = 0x00
    56 = 0x30
    57 = 0x00
    58 = 0x03
    59 = 0x00
    60 = 0x00
    61 = 0x00
    62 = 0x00
    63 = 0x00
    64 = 0xaf
    65 = 0x61
    66 = 0x00
    67 = 0x00
    68 = 0x80
    69 = 0x00
    70 = 0x10
    71 = 0x09
    72 = 0xc8
    73 = 0x05
    74 = 0x70
    75 = 0x00
    76 = 0x25
    77 = 0x00
    78 = 0x20
    79 = 0x00
    80 = 0x0a
    81 = 0x00
    82 = 0x70
    83 = 0x08
    84 = 0xa0
    85 = 0x05
    86 = 0x20
    87 = 0x00
    88 = 0x40
    89 = 0xe4
    90 = 0x0d
    91 = 0x00
    92 = 0x10
    93 = 0x00
    94 = 0xb0
    95 = 0x00
    96 = 0xa0
    97 = 0x60
    98 = 0xa4
    99 = 0x00
    100 = 0x00
    101 = 0x00
    102 = 0x00
    103 = 0x00
    104 = 0x00
    105 = 0x00
    106 = 0x00
    107 = 0x00
    108 = 0x00
    109 = 0x00
    110 = 0x00
    111 = 0x00
    112 = 0x00
    113 = 0x00
    114 = 0x00
    115 = 0x00
    116 = 0x00
    117 = 0x01
    118 = 0x02
    119 = 0x01
    120 = 0x80
    121 = 0x00
    122 = 0x00
    123 = 0x00
    124 = 0x00
    125 = 0x00
    126 = 0x00
    127 = 0x00
    128 = 0x00
    129 = 0x00
    130 = 0x00
    131 = 0x00
    132 = 0x00
    133 = 0x00
    134 = 0x00
    135 = 0x00
    136 = 0x00
    137 = 0x1f
    138 = 0x7c
    139 = 0xf0
    140 = 0xc1
    141 = 0x07
    142 = 0x1f
    143 = 0x7c
    144 = 0xf0
    145 = 0xc1
    146 = 0x07
    147 = 0x30
    148 = 0x80
    149 = 0x00
    150 = 0x00
    151 = 0x04
    152 = 0x01
    153 = 0x00
    154 = 0x00
    155 = 0x00
    156 = 0x00
    157 = 0x00
    158 = 0x00
    159 = 0x00
    160 = 0x01
    161 = 0xff
    162 = 0xff
    163 = 0x00
    164 = 0x00
    165 = 0x00
    166 = 0x00
    167 = 0x00
    168 = 0x00
    169 = 0x00
    170 = 0x00
    171 = 0x00
    172 = 0x00
    173 = 0x00
    174 = 0x00
    175 = 0x00
    176 = 0x04
    177 = 0x78
    178 = 0xac
    179 = 0xac
    180 = 0x08
    181 = 0x6c
    182 = 0x9c
    183 = 0x9c
    184 = 0x0c
    185 = 0x5c
    186 = 0x5c
    187 = 0x5c
    188 = 0x0c
    189 = 0x0c
    190 = 0x0c
    191 = 0x0c
    192 = 0x3f
    193 = 0x3f
    194 = 0x0f
    195 = 0x00
    196 = 0x00
    197 = 0x00
    198 = 0x00
    199 = 0x00
    200 = 0x00
    201 = 0x00
    202 = 0x00
    203 = 0x00
    204 = 0x00
    205 = 0x00
    206 = 0x00
    207 = 0x00
    208 = 0x00
    209 = 0x00
    210 = 0x00
    211 = 0x00
    212 = 0x00
    213 = 0x00
    214 = 0x00
    215 = 0x00
    216 = 0x00
    217 = 0x00
    218 = 0x00
    219 = 0x00
    220 = 0x00
    221 = 0x00
    222 = 0x00
    223 = 0x00
    224 = 0x00
    225 = 0x00
    226 = 0x00
    227 = 0x00
    228 = 0x00
    229 = 0x00
    230 = 0x00
    231 = 0x00
    232 = 0x00
    233 = 0x00
    234 = 0x00
    235 = 0x00
    236 = 0x00
    237 = 0x00
    238 = 0x00
    239 = 0x00
    240 = 0x00
    241 = 0x00
    242 = 0x00
    243 = 0x00
    244 = 0x01
    245 = 0x02
    246 = 0x00
    247 = 0x00
    248 = 0x06
    249 = 0x00
    250 = 0x00
    251 = 0x00
    252 = 0x00
    253 = 0x00
    254 = 0x00
    255 = 0x00
    

    Thanks

    Mani

  • Mani

    For the 3 or 4 units, do they work in normal mode and only have issue after waking up from the sleep state? If these units work in normal mode but only fail after waking up from the sleep state, then I don't think it is a unit issue, more a wake up timing issue. 

    If training is unsuccessful, the SN65DSI86 will transition the ML_TX_MODE to Main Link Off. So if you start the semi-auto link training and training is unsuccessful, then I would expect the register 0x96 read back 0x00.

    The register 0xF8 indicates link training failed because the clock recovery portion of the link training failed. Does the panel also go into sleep state when DSI86 goes into the sleep state? Do you wait until the panel comes out of the sleep state before start the semi-auto link training?

    How does the DSI86 go into the sleep state?

    Thanks

    David

  • HI David,

    This Link training failure is happening all the time. Right after the boot display backlight is ON  but nothing is on the screen (blank). It has nothing to do with sleep mode or wake up. sorry for the confusion in the tittle.

    How to fix the clock recovery portion of the training?

    Thanks

    Mani

  • Mani

    Can you do a unit swap and see if the issue follows the unit or the board? If the issue follows the unit, then I may need the unit back for further failure analysis.

    For clock recovery failure, the DSI86 sends the TPS1 clock pattern at the Nyquist frequency of the data rate to the sink and the sink needs to lock to the TPS1 clock pattern. If it fails,

    • Check the physical connection between the DSI86 and the sink
    • Make sure the output lane order is correct
    • Clock pattern amplitude may be too low
      • Use a shorter cable between the DSI86 and the sink
      • Change DSI86 VOD in the DP Link Training LUT registers

    Thanks

    David

  • Hi David,

    The failure units are production product so physical connection and lane order are correct. The issue is not happening all the time so the physical connection should be good. We don't have shorter cable because the panel is connected through FPC to main board (fixed length). We can try changing the VOD in LUT but how to do that? Just random value or any specific value to reg 0xB0 thru 0xC3

    We will try display swap test.

    Thanks

    Mani

  • Mani

    I would focus on increasing the V(n)_P0_VOD. For clock signal, you shouldn't need pre-emphasis, only SWING.

    Thanks

    David

  • Hi David,

    I have changed the TX swing but it didn't help for passing link training.

    I am trying to write 0x96 reg with 0x0A value but the read back from the register showing 0x0 all the time but I can able to write 0x01 or 0x02  and also read back correctly. Why I am not able to write 0x0A on 0x96 reg?

    How to clear the 0xF8 register since it is set to 0x06 after training failure? I know reboot will clear the registers but I want to clear it without reboot.

    Planning for swap test today or tomorrow and update you the results.

    Thanks

    Mani

  • Mani

    You can write 0xFF to register 0xF8 to clear it. 

    You can write 0x96 to register 0x0A and that will start the link training. But if the link training failed, it will switch to MAIN_LINK_OFF.

    Thanks

    David

  • Hi David,

    The swap test confirms that the issue is following the panel. So we requested our display vendor for FA.

    I have one more unit which is not only failing in Link training there are other failures too like DSI error and Aux Error. Please look at the reg dump I have collected two times during the failure. Each time reg dump showing different values. I would like to get your feedback before doing swap test.

    F0 0x00 0x00
    F1 0x00 0x09
    F2 0x00 0x00
    F3 0x00 0x00
    F4 0x41 0x11
    F5 0x02 0x00
    F6 0x00 0x00
    F7 0x00 0x00
    F8 0x02 0x02
    F9 0x00 0x00
    FA 0x00 0x00
    FB 0x00 0x00
    FC 0x00 0x00
    FD 0x00 0x00
    FE 0x00 0x00
    FF 0x00 0x00

    thanks

    Mani

  • Mani

    For the AUX error

    1. Does the panel require 100k pullup/pulldown on AUXP/N? 

    2. Since the reported error is associated with I2C-over-AUX or Native AUX failure, can you do a manual AUX read and see if you are getting the right data? For Native AUX, please refer to section 8.4.5.2.1. For I2C-over-AUX, please refer to section 8.4.5.3.

    For the DSI error

    1. If the error happens, can you clear that particular status register by writing 0xFF to it and then read it back, do you still see the status register reported the same error? 

    2. If the status register reported the same error, you can 

    a. Try to change the RX EQ by writing to register 0x11

    b. If RX EQ does not help solving the issue, we need to check the setup/hold timing on the DSI interface.

    Thanks

    David

  • Hi David,

    Aux Error:

    1. Yes. The panel needs 100K pullup on AUXP/N

    2. I will check the aux data

    DSI Error:

    1. After clearing the particular register DSI error is gone and it is not coming again.

    Thanks

    Mani

  • Mani

    So the reported DSI error may not be real since you can clear it and it is not coming back. I would focus on the AUX error first.

    Thanks
    David