38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
--- a/drivers/gpu/drm/i915/intel_bios.c 2017-11-12 19:46:13.000000000 +0100
|
|
+++ b/drivers/gpu/drm/i915/intel_bios.c 2018-04-11 12:04:39.535658504 +0200
|
|
@@ -1155,7 +1155,6 @@
|
|
return;
|
|
|
|
aux_channel = child->common.aux_channel;
|
|
- ddc_pin = child->common.ddc_pin;
|
|
|
|
is_dvi = child->common.device_type & DEVICE_TYPE_TMDS_DVI_SIGNALING;
|
|
is_dp = child->common.device_type & DEVICE_TYPE_DISPLAYPORT_OUTPUT;
|
|
@@ -1195,18 +1194,15 @@
|
|
DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
|
|
|
|
if (is_dvi) {
|
|
- info->alternate_ddc_pin = ddc_pin;
|
|
-
|
|
- /*
|
|
- * All VBTs that we got so far for B Stepping has this
|
|
- * information wrong for Port D. So, let's just ignore for now.
|
|
- */
|
|
- if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
|
|
- port == PORT_D) {
|
|
- info->alternate_ddc_pin = 0;
|
|
+ ddc_pin = map_ddc_pin(dev_priv, child->ddc_pin);
|
|
+ if (intel_gmbus_is_valid_pin(dev_priv, ddc_pin)) {
|
|
+ info->alternate_ddc_pin = ddc_pin;
|
|
+ sanitize_ddc_pin(dev_priv, port);
|
|
+ } else {
|
|
+ DRM_DEBUG_KMS("Port %c has invalid DDC pin %d, "
|
|
+ "reverting to defaults\n",
|
|
+ port_name(port), ddc_pin);
|
|
}
|
|
-
|
|
- sanitize_ddc_pin(dev_priv, port);
|
|
}
|
|
|
|
if (is_dp) {
|