retries_cr = 0;
        retry_count = 0;
 
-       if (!link->wa_flags.dp_early_cr_pattern)
+       if (!link->ctx->dc->work_arounds.lt_early_cr_pattern)
                dp_set_hw_training_pattern(link, tr_pattern, offset);
 
        /* najeeb - The synaptics MST hub can put the LT in
                        &link->preferred_training_settings,
                        <_settings);
 
-       if (link->wa_flags.dp_early_cr_pattern)
-               start_clock_recovery_pattern_early(link, <_settings, DPRX);
-
        /* 1. set link rate, lane count and spread. */
-       dpcd_set_link_settings(link, <_settings);
+       if (link->ctx->dc->work_arounds.lt_early_cr_pattern)
+               start_clock_recovery_pattern_early(link, <_settings, DPRX);
+       else
+               dpcd_set_link_settings(link, <_settings);
 
        if (link->preferred_training_settings.fec_enable != NULL)
                fec_enable = *link->preferred_training_settings.fec_enable;
        dp_set_panel_mode(link, panel_mode);
 
        /* Attempt to train with given link training settings */
-       if (link->wa_flags.dp_early_cr_pattern)
-               start_clock_recovery_pattern_early(link, <_settings, DPRX);
-
        /* Set link rate, lane count and spread. */
-       dpcd_set_link_settings(link, <_settings);
+       if (link->ctx->dc->work_arounds.lt_early_cr_pattern)
+               start_clock_recovery_pattern_early(link, <_settings, DPRX);
+       else
+               dpcd_set_link_settings(link, <_settings);
 
        /* 2. perform link training (set link training done
         *  to false is done as well)