drm/amd/display: Fix DP Compliance tests 4.3.2.1 and 4.3.2.2
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / display / dc / core / dc_link_dp.c
index 1a3dbed..d7d2dcd 100644 (file)
@@ -1138,23 +1138,22 @@ static enum link_training_result check_link_loss_status(
        const struct link_training_settings *link_training_setting)
 {
        enum link_training_result status = LINK_TRAINING_SUCCESS;
-       unsigned int lane01_status_address = DP_LANE0_1_STATUS;
        union lane_status lane_status;
-       uint8_t dpcd_buf[4] = {0};
+       uint8_t dpcd_buf[6] = {0};
        uint32_t lane;
 
        core_link_read_dpcd(
-               link,
-               lane01_status_address,
-               (uint8_t *)(dpcd_buf),
-               sizeof(dpcd_buf));
+                       link,
+                       DP_SINK_COUNT,
+                       (uint8_t *)(dpcd_buf),
+                       sizeof(dpcd_buf));
 
        /*parse lane status*/
        for (lane = 0; lane < link->cur_link_settings.lane_count; lane++) {
                /*
                 * check lanes status
                 */
-               lane_status.raw = get_nibble_at_index(&dpcd_buf[0], lane);
+               lane_status.raw = get_nibble_at_index(&dpcd_buf[2], lane);
 
                if (!lane_status.bits.CHANNEL_EQ_DONE_0 ||
                        !lane_status.bits.CR_DONE_0 ||