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 | ||
