diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_bios.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 52 |
1 files changed, 38 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index 3d43da6d3482..1ee98f121a00 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c | |||
@@ -598,47 +598,71 @@ parse_edp(struct drm_i915_private *dev_priv, struct bdb_header *bdb) | |||
598 | 598 | ||
599 | dev_priv->vbt.edp_pps = *edp_pps; | 599 | dev_priv->vbt.edp_pps = *edp_pps; |
600 | 600 | ||
601 | dev_priv->vbt.edp_rate = edp_link_params->rate ? DP_LINK_BW_2_7 : | 601 | switch (edp_link_params->rate) { |
602 | DP_LINK_BW_1_62; | 602 | case EDP_RATE_1_62: |
603 | dev_priv->vbt.edp_rate = DP_LINK_BW_1_62; | ||
604 | break; | ||
605 | case EDP_RATE_2_7: | ||
606 | dev_priv->vbt.edp_rate = DP_LINK_BW_2_7; | ||
607 | break; | ||
608 | default: | ||
609 | DRM_DEBUG_KMS("VBT has unknown eDP link rate value %u\n", | ||
610 | edp_link_params->rate); | ||
611 | break; | ||
612 | } | ||
613 | |||
603 | switch (edp_link_params->lanes) { | 614 | switch (edp_link_params->lanes) { |
604 | case 0: | 615 | case EDP_LANE_1: |
605 | dev_priv->vbt.edp_lanes = 1; | 616 | dev_priv->vbt.edp_lanes = 1; |
606 | break; | 617 | break; |
607 | case 1: | 618 | case EDP_LANE_2: |
608 | dev_priv->vbt.edp_lanes = 2; | 619 | dev_priv->vbt.edp_lanes = 2; |
609 | break; | 620 | break; |
610 | case 3: | 621 | case EDP_LANE_4: |
611 | default: | ||
612 | dev_priv->vbt.edp_lanes = 4; | 622 | dev_priv->vbt.edp_lanes = 4; |
613 | break; | 623 | break; |
624 | default: | ||
625 | DRM_DEBUG_KMS("VBT has unknown eDP lane count value %u\n", | ||
626 | edp_link_params->lanes); | ||
627 | break; | ||
614 | } | 628 | } |
629 | |||
615 | switch (edp_link_params->preemphasis) { | 630 | switch (edp_link_params->preemphasis) { |
616 | case 0: | 631 | case EDP_PREEMPHASIS_NONE: |
617 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_0; | 632 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_0; |
618 | break; | 633 | break; |
619 | case 1: | 634 | case EDP_PREEMPHASIS_3_5dB: |
620 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_3_5; | 635 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_3_5; |
621 | break; | 636 | break; |
622 | case 2: | 637 | case EDP_PREEMPHASIS_6dB: |
623 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_6; | 638 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_6; |
624 | break; | 639 | break; |
625 | case 3: | 640 | case EDP_PREEMPHASIS_9_5dB: |
626 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_9_5; | 641 | dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_9_5; |
627 | break; | 642 | break; |
643 | default: | ||
644 | DRM_DEBUG_KMS("VBT has unknown eDP pre-emphasis value %u\n", | ||
645 | edp_link_params->preemphasis); | ||
646 | break; | ||
628 | } | 647 | } |
648 | |||
629 | switch (edp_link_params->vswing) { | 649 | switch (edp_link_params->vswing) { |
630 | case 0: | 650 | case EDP_VSWING_0_4V: |
631 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_400; | 651 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_400; |
632 | break; | 652 | break; |
633 | case 1: | 653 | case EDP_VSWING_0_6V: |
634 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_600; | 654 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_600; |
635 | break; | 655 | break; |
636 | case 2: | 656 | case EDP_VSWING_0_8V: |
637 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_800; | 657 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_800; |
638 | break; | 658 | break; |
639 | case 3: | 659 | case EDP_VSWING_1_2V: |
640 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_1200; | 660 | dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_1200; |
641 | break; | 661 | break; |
662 | default: | ||
663 | DRM_DEBUG_KMS("VBT has unknown eDP voltage swing value %u\n", | ||
664 | edp_link_params->vswing); | ||
665 | break; | ||
642 | } | 666 | } |
643 | } | 667 | } |
644 | 668 | ||