diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 3250c1b8dcca..36f1425652c1 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -2114,16 +2114,22 @@ static bool child_dev_is_dp_dual_mode(const struct child_device_config *child, [PORT_F] = { DVO_PORT_DPF, DVO_PORT_HDMIF, }, }; + DRM_DEBUG_KMS("%s: port=%d\n", __func__, port); if (port == PORT_A || port >= ARRAY_SIZE(port_mapping)) return false; + DRM_DEBUG_KMS("%s: 0x%x & 0x%x, 0x%x & 0x%x\n", + __func__, child->device_type, DEVICE_TYPE_DP_DUAL_MODE_BITS, DEVICE_TYPE_DP_DUAL_MODE, DEVICE_TYPE_DP_DUAL_MODE_BITS); if ((child->device_type & DEVICE_TYPE_DP_DUAL_MODE_BITS) != (DEVICE_TYPE_DP_DUAL_MODE & DEVICE_TYPE_DP_DUAL_MODE_BITS)) return false; + DRM_DEBUG_KMS("%s: child->dvo_port=%u, port_mapping[port].dp=%u\n", __func__, child->dvo_port, port_mapping[port].dp); if (child->dvo_port == port_mapping[port].dp) return true; + DRM_DEBUG_KMS("%s: child->dvo_port=%u, port_mapping[port].hdmi=%u, child->aux_channel=%u\n", + __func__, child->dvo_port, port_mapping[port].hdmi, child->aux_channel); /* Only accept a HDMI dvo_port as DP++ if it has an AUX channel */ if (child->dvo_port == port_mapping[port].hdmi && child->aux_channel != 0) @@ -2141,6 +2147,7 @@ bool intel_bios_is_port_dp_dual_mode(struct drm_i915_private *dev_priv, for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { child = dev_priv->vbt.child_dev + i; + DRM_DEBUG_KMS("%s: checking %d/%d\n", __func__, i, dev_priv->vbt.child_dev_num); if (child_dev_is_dp_dual_mode(child, port)) return true; } diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index e02f0faecf02..013ad3b68cc8 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -2471,10 +2471,14 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid) * confusing log messages about DP dual mode adaptors when * there's nothing connected to the port. */ + DRM_DEBUG_KMS("%s: original type %d\n", __func__, type); if (type == DRM_DP_DUAL_MODE_UNKNOWN) { /* An overridden EDID imply that we want this port for testing. * Make sure not to set limits for that port. */ + DRM_DEBUG_KMS("%s: has_edid=%s, !connector->override_edid=%s, intel_bios_is_port_dp_dual_mode returns %s\n", + __func__, has_edid ? "true":"false", !connector->override_edid ? "true":"false", + intel_bios_is_port_dp_dual_mode(dev_priv, port) ? "true":"false"); if (has_edid && !connector->override_edid && intel_bios_is_port_dp_dual_mode(dev_priv, port)) { DRM_DEBUG_KMS("Assuming DP dual mode adaptor presence based on VBT\n"); @@ -2484,6 +2488,7 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid) } } + DRM_DEBUG_KMS("%s: final type %d\n", __func__, type); if (type == DRM_DP_DUAL_MODE_NONE) return;