Lines Matching refs:train

437  * @train: DisplayPort link training state
439 void drm_dp_link_train_init(struct drm_dp_link_train *train)
441 struct drm_dp_link_train_set *request = &train->request;
442 struct drm_dp_link_train_set *adjust = &train->adjust;
456 train->pattern = DP_TRAINING_PATTERN_DISABLE;
457 train->clock_recovered = false;
458 train->channel_equalized = false;
461 static bool drm_dp_link_train_valid(const struct drm_dp_link_train *train)
463 return train->clock_recovered && train->channel_equalized;
468 struct drm_dp_link_train_set *request = &link->train.request;
511 if (link->train.pattern != DP_TRAINING_PATTERN_DISABLE)
514 pattern |= link->train.pattern;
529 switch (link->train.pattern) {
550 struct drm_dp_link_train_set *adjust = &link->train.adjust;
576 static void drm_dp_link_train_adjust(struct drm_dp_link_train *train)
578 struct drm_dp_link_train_set *request = &train->request;
579 struct drm_dp_link_train_set *adjust = &train->adjust;
615 link->train.clock_recovered = true;
626 link->train.pattern = DP_TRAINING_PATTERN_1;
635 if (link->train.clock_recovered)
638 drm_dp_link_train_adjust(&link->train);
664 link->train.clock_recovered = false;
671 link->train.channel_equalized = true;
683 link->train.pattern = DP_TRAINING_PATTERN_3;
685 link->train.pattern = DP_TRAINING_PATTERN_2;
694 if (link->train.channel_equalized)
697 drm_dp_link_train_adjust(&link->train);
725 link->train.pattern = DP_TRAINING_PATTERN_DISABLE;
753 if (!link->train.clock_recovered) {
771 if (!link->train.channel_equalized) {
804 link->train.pattern = DP_TRAINING_PATTERN_1;
814 link->train.pattern = DP_TRAINING_PATTERN_3;
816 link->train.pattern = DP_TRAINING_PATTERN_2;
863 drm_dp_link_train_init(&link->train);
866 if (drm_dp_link_train_valid(&link->train)) {