drm/i915: SDVO hotplug have different interrupt status bits for i915/i965/g4x
[pandora-kernel.git] / drivers / gpu / drm / i915 / i915_irq.c
index 578ddfc..c8b5bc1 100644 (file)
@@ -2006,10 +2006,22 @@ static int i915_driver_irq_postinstall(struct drm_device *dev)
                        hotplug_en |= HDMIC_HOTPLUG_INT_EN;
                if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS)
                        hotplug_en |= HDMID_HOTPLUG_INT_EN;
-               if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS)
-                       hotplug_en |= SDVOC_HOTPLUG_INT_EN;
-               if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS)
-                       hotplug_en |= SDVOB_HOTPLUG_INT_EN;
+               if (IS_G4X(dev)) {
+                       if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_G4X)
+                               hotplug_en |= SDVOC_HOTPLUG_INT_EN;
+                       if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_G4X)
+                               hotplug_en |= SDVOB_HOTPLUG_INT_EN;
+               } else if (IS_GEN4(dev)) {
+                       if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_I965)
+                               hotplug_en |= SDVOC_HOTPLUG_INT_EN;
+                       if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_I965)
+                               hotplug_en |= SDVOB_HOTPLUG_INT_EN;
+               } else {
+                       if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_I915)
+                               hotplug_en |= SDVOC_HOTPLUG_INT_EN;
+                       if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_I915)
+                               hotplug_en |= SDVOB_HOTPLUG_INT_EN;
+               }
                if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS) {
                        hotplug_en |= CRT_HOTPLUG_INT_EN;