Subversion Repositories Kolibri OS

Rev

Rev 5097 | Rev 6084 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5097 Rev 5354
Line 625... Line 625...
625
		break;
625
		break;
626
	}
626
	}
Line 627... Line 627...
627
 
627
 
628
	switch (edp_link_params->preemphasis) {
628
	switch (edp_link_params->preemphasis) {
629
	case EDP_PREEMPHASIS_NONE:
629
	case EDP_PREEMPHASIS_NONE:
630
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_0;
630
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0;
631
		break;
631
		break;
632
	case EDP_PREEMPHASIS_3_5dB:
632
	case EDP_PREEMPHASIS_3_5dB:
633
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_3_5;
633
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1;
634
		break;
634
		break;
635
	case EDP_PREEMPHASIS_6dB:
635
	case EDP_PREEMPHASIS_6dB:
636
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_6;
636
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2;
637
		break;
637
		break;
638
	case EDP_PREEMPHASIS_9_5dB:
638
	case EDP_PREEMPHASIS_9_5dB:
639
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPHASIS_9_5;
639
		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3;
640
		break;
640
		break;
641
	default:
641
	default:
642
		DRM_DEBUG_KMS("VBT has unknown eDP pre-emphasis value %u\n",
642
		DRM_DEBUG_KMS("VBT has unknown eDP pre-emphasis value %u\n",
643
			      edp_link_params->preemphasis);
643
			      edp_link_params->preemphasis);
644
		break;
644
		break;
Line 645... Line 645...
645
	}
645
	}
646
 
646
 
647
	switch (edp_link_params->vswing) {
647
	switch (edp_link_params->vswing) {
648
	case EDP_VSWING_0_4V:
648
	case EDP_VSWING_0_4V:
649
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_400;
649
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0;
650
		break;
650
		break;
651
	case EDP_VSWING_0_6V:
651
	case EDP_VSWING_0_6V:
652
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_600;
652
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1;
653
		break;
653
		break;
654
	case EDP_VSWING_0_8V:
654
	case EDP_VSWING_0_8V:
655
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_800;
655
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
656
		break;
656
		break;
657
	case EDP_VSWING_1_2V:
657
	case EDP_VSWING_1_2V:
658
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_1200;
658
		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
659
		break;
659
		break;
660
	default:
660
	default:
661
		DRM_DEBUG_KMS("VBT has unknown eDP voltage swing value %u\n",
661
		DRM_DEBUG_KMS("VBT has unknown eDP voltage swing value %u\n",
Line 944... Line 944...
944
		DRM_DEBUG_KMS("Port %c is analog\n", port_name(port));
944
		DRM_DEBUG_KMS("Port %c is analog\n", port_name(port));
945
	if (is_crt && (is_dvi || is_dp))
945
	if (is_crt && (is_dvi || is_dp))
946
		DRM_DEBUG_KMS("Analog port %c is also DP or TMDS compatible\n",
946
		DRM_DEBUG_KMS("Analog port %c is also DP or TMDS compatible\n",
947
			      port_name(port));
947
			      port_name(port));
948
	if (is_dvi && (port == PORT_A || port == PORT_E))
948
	if (is_dvi && (port == PORT_A || port == PORT_E))
949
		DRM_DEBUG_KMS("Port %c is TMDS compabile\n", port_name(port));
949
		DRM_DEBUG_KMS("Port %c is TMDS compatible\n", port_name(port));
950
	if (!is_dvi && !is_dp && !is_crt)
950
	if (!is_dvi && !is_dp && !is_crt)
951
		DRM_DEBUG_KMS("Port %c is not DP/TMDS/CRT compatible\n",
951
		DRM_DEBUG_KMS("Port %c is not DP/TMDS/CRT compatible\n",
952
			      port_name(port));
952
			      port_name(port));
953
	if (is_edp && (port == PORT_B || port == PORT_C || port == PORT_E))
953
	if (is_edp && (port == PORT_B || port == PORT_C || port == PORT_E))
954
		DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
954
		DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
Line 974... Line 974...
974
	}
974
	}
Line 975... Line 975...
975
 
975
 
976
	if (bdb->version >= 158) {
976
	if (bdb->version >= 158) {
977
		/* The VBT HDMI level shift values match the table we have. */
977
		/* The VBT HDMI level shift values match the table we have. */
978
		hdmi_level_shift = child->raw[7] & 0xF;
-
 
979
		if (hdmi_level_shift < 0xC) {
978
		hdmi_level_shift = child->raw[7] & 0xF;
980
			DRM_DEBUG_KMS("VBT HDMI level shift for port %c: %d\n",
979
			DRM_DEBUG_KMS("VBT HDMI level shift for port %c: %d\n",
981
				      port_name(port),
980
				      port_name(port),
982
				      hdmi_level_shift);
981
				      hdmi_level_shift);
983
			info->hdmi_level_shift = hdmi_level_shift;
982
			info->hdmi_level_shift = hdmi_level_shift;
984
		}
983
		}
985
	}
-
 
Line 986... Line 984...
986
}
984
}
987
 
985
 
988
static void parse_ddi_ports(struct drm_i915_private *dev_priv,
986
static void parse_ddi_ports(struct drm_i915_private *dev_priv,
989
			    struct bdb_header *bdb)
987
			    struct bdb_header *bdb)
Line 1112... Line 1110...
1112
 
1110
 
1113
	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
1111
	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
1114
		struct ddi_vbt_port_info *info =
1112
		struct ddi_vbt_port_info *info =
Line 1115... Line -...
1115
			&dev_priv->vbt.ddi_port_info[port];
-
 
1116
 
1113
			&dev_priv->vbt.ddi_port_info[port];
Line 1117... Line 1114...
1117
		/* Recommended BSpec default: 800mV 0dB. */
1114
 
1118
		info->hdmi_level_shift = 6;
1115
		info->hdmi_level_shift = HDMI_LEVEL_SHIFT_UNKNOWN;
1119
 
1116
 
1120
		info->supports_dvi = (port != PORT_A && port != PORT_E);
1117
		info->supports_dvi = (port != PORT_A && port != PORT_E);