return -EINVAL;
 
        snprintf(rd_buf, rd_buf_size, "  %d  %d  %d\n",
-                       link->cur_lane_setting.VOLTAGE_SWING,
-                       link->cur_lane_setting.PRE_EMPHASIS,
-                       link->cur_lane_setting.POST_CURSOR2);
+                       link->cur_lane_setting[0].VOLTAGE_SWING,
+                       link->cur_lane_setting[0].PRE_EMPHASIS,
+                       link->cur_lane_setting[0].POST_CURSOR2);
 
        while (size) {
                if (*pos >= rd_buf_size)
        }
 
        for (i = 0; i < (unsigned int)(link_training_settings.link_settings.lane_count); i++)
-               link_training_settings.lane_settings[i] = link->cur_lane_setting;
+               link_training_settings.lane_settings[i] = link->cur_lane_setting[i];
 
        dc_link_set_test_pattern(
                link,
 
                                dpcd_base_lt_offset,
                                dpcd_lt_buffer,
                                size_in_bytes + sizeof(dpcd_pattern.raw));
-
-       link->cur_lane_setting = lt_settings->lane_settings[0];
 }
 
 bool dp_is_cr_done(enum dc_lane_count ln_count,
                        dpcd_lane[0].bits.MAX_SWING_REACHED,
                        dpcd_lane[0].bits.MAX_PRE_EMPHASIS_REACHED);
        }
-       link->cur_lane_setting = link_training_setting->lane_settings[0];
 
        return status;
 }
 
 #else
        encoder->funcs->dp_set_lane_settings(encoder, link_settings);
 #endif
+       memmove(link->cur_lane_setting,
+                       link_settings->lane_settings,
+                       sizeof(link->cur_lane_setting));
 }
 
 void dp_set_hw_test_pattern(
 
        struct dc_link_settings reported_link_cap;
        struct dc_link_settings verified_link_cap;
        struct dc_link_settings cur_link_settings;
-       struct dc_lane_settings cur_lane_setting;
+       struct dc_lane_settings cur_lane_setting[LANE_COUNT_DP_MAX];
        struct dc_link_settings preferred_link_setting;
        struct dc_link_training_overrides preferred_training_settings;
        struct dp_audio_test_data audio_test_data;