Xilinx / embeddedsw

Xilinx Embedded Software (embeddedsw) Development
Other
929 stars 1.06k forks source link

DP 1.4 RX : Wrong mask used when modifying MCDP6000 register #272

Open jvallie1 opened 11 months ago

jvallie1 commented 11 months ago

Hello, Commit c3fde06710739985a11b9cf21138c17f1dcdf512 introduced a new bug in the DP 1.4 RX driver.

XDpRxSs_MCDP6000_ModifyRegister(DpRxSsPtr->IicPtr->BaseAddress,
            XDPRXSS_MCDP6000_IIC_SLAVE, 0x0A00,
            0x55000000, 0x55000000);

The last parameter, the bit mask, should be 0xFF000000 instead of 0x55000000.

Bits 31 to 24 of the 0x0A00 register have two valid values: 0x55 : Transparent 0xAA : Non-Transparant

If the current value is 0xAA, then after XDpRxSs_MCDP6000_ModifyRegister is called the value will be 0xFF, which is invalid. We have seen this scenario happen after reconnecting the DP input on a graphics card output.