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;
567 static void drm_dp_link_train_adjust(struct drm_dp_link_train *train)
569 struct drm_dp_link_train_set *request = &train->request;
570 struct drm_dp_link_train_set *adjust = &train->adjust;
606 link->train.clock_recovered = true;
617 link->train.pattern = DP_TRAINING_PATTERN_1;
626 if (link->train.clock_recovered)
629 drm_dp_link_train_adjust(&link->train);
655 link->train.clock_recovered = false;
662 link->train.channel_equalized = true;
674 link->train.pattern = DP_TRAINING_PATTERN_3;
676 link->train.pattern = DP_TRAINING_PATTERN_2;
685 if (link->train.channel_equalized)
688 drm_dp_link_train_adjust(&link->train);
716 link->train.pattern = DP_TRAINING_PATTERN_DISABLE;
744 if (!link->train.clock_recovered) {
762 if (!link->train.channel_equalized) {
795 link->train.pattern = DP_TRAINING_PATTERN_1;
805 link->train.pattern = DP_TRAINING_PATTERN_3;
807 link->train.pattern = DP_TRAINING_PATTERN_2;
854 drm_dp_link_train_init(&link->train);
857 if (drm_dp_link_train_valid(&link->train)) {