Those are driven by DDIs on Haswell architecture, so we need to keep track
of which DDI is being used on each output.

Signed-off-by: Eugeni Dodonov <eugeni.dodo...@intel.com>
---
 drivers/gpu/drm/i915/intel_hdmi.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index de54c01..6921756 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -41,6 +41,7 @@ struct intel_hdmi {
        struct intel_encoder base;
        u32 sdvox_reg;
        int ddc_bus;
+       int ddi_port;
        uint32_t color_range;
        bool has_hdmi_sink;
        bool has_audio;
@@ -542,6 +543,24 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg)
                intel_encoder->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT);
                intel_hdmi->ddc_bus = GMBUS_PORT_DPD;
                dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS;
+       } else if (sdvox_reg == DDI_BUF_CTL(PORT_B)) {
+               DRM_DEBUG_DRIVER("LPT: detected output on DDI B\n");
+               intel_encoder->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT);
+               intel_hdmi->ddc_bus = GMBUS_PORT_DPB;
+               intel_hdmi->ddi_port = PORT_B;
+               dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
+       } else if (sdvox_reg == DDI_BUF_CTL(PORT_C)) {
+               DRM_DEBUG_DRIVER("LPT: detected output on DDI C\n");
+               intel_encoder->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT);
+               intel_hdmi->ddc_bus = GMBUS_PORT_DPC;
+               intel_hdmi->ddi_port = PORT_C;
+               dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
+       } else if (sdvox_reg == DDI_BUF_CTL(PORT_D)) {
+               DRM_DEBUG_DRIVER("LPT: detected output on DDI A\n");
+               intel_encoder->clone_mask = (1 << INTEL_HDMID_CLONE_BIT);
+               intel_hdmi->ddc_bus = GMBUS_PORT_DPD;
+               intel_hdmi->ddi_port = PORT_D;
+               dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS;
        } else {
                DRM_DEBUG_DRIVER("Unknown sdvox register %x\n", sdvox_reg);
        }
-- 
1.7.9.5

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to