drm/i915: reset intel_encoder->type when DP or HDMI is detected
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 26 Oct 2012 21:05:49 +0000 (19:05 -0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 11 Nov 2012 22:51:07 +0000 (23:51 +0100)
When intel_hdmi_detect detects a monitor, set intel_encoder->type with
INTEL_OUTPUT_HDMI. Same for DP.

This should not break the current code because these variables never
change. This will be used after we create the DDI encoder because it
will have both DP and HDMI connectors.

We won't support eDP+HDMI on the same port, so if an encoder is eDP we
should expect it to always remain eDP and never change.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_hdmi.c

index 3511d643ee35a49025facdfc111b3daecafcdc76..4b5bf5795dacb39963682a5dfbf14f2d629471fd 100644 (file)
@@ -2293,6 +2293,8 @@ static enum drm_connector_status
 intel_dp_detect(struct drm_connector *connector, bool force)
 {
        struct intel_dp *intel_dp = intel_attached_dp(connector);
+       struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
+       struct intel_encoder *intel_encoder = &intel_dig_port->base;
        struct drm_device *dev = connector->dev;
        enum drm_connector_status status;
        struct edid *edid = NULL;
@@ -2324,6 +2326,8 @@ intel_dp_detect(struct drm_connector *connector, bool force)
                }
        }
 
+       if (intel_encoder->type != INTEL_OUTPUT_EDP)
+               intel_encoder->type = INTEL_OUTPUT_DISPLAYPORT;
        return connector_status_connected;
 }
 
index be949f15522d4eb172a0f2bd780d3607b95fdea4..c0aadc1436cef7e02b38d1d5e8d10d0ecafe5dac 100644 (file)
@@ -792,6 +792,9 @@ static enum drm_connector_status
 intel_hdmi_detect(struct drm_connector *connector, bool force)
 {
        struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
+       struct intel_digital_port *intel_dig_port =
+               hdmi_to_dig_port(intel_hdmi);
+       struct intel_encoder *intel_encoder = &intel_dig_port->base;
        struct drm_i915_private *dev_priv = connector->dev->dev_private;
        struct edid *edid;
        enum drm_connector_status status = connector_status_disconnected;
@@ -820,6 +823,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
                if (intel_hdmi->force_audio != HDMI_AUDIO_AUTO)
                        intel_hdmi->has_audio =
                                (intel_hdmi->force_audio == HDMI_AUDIO_ON);
+               intel_encoder->type = INTEL_OUTPUT_HDMI;
        }
 
        return status;