@@ -1448,6 +1448,9 @@
# define I965_FT_CLOCK_GATE_DISABLE (1 << 1)
# define I965_DM_CLOCK_GATE_DISABLE (1 << 0)
+#define DPPSR_CGDIS_VLV (dev_priv->info->display_mmio_offset + 0x6204)
+# define DPIOUNIT_PSR_CLOCK_GATING_DISABLE (1 << 6)
+
#define RENCLK_GATE_D2 0x6208
#define VF_UNIT_CLOCK_GATE_DISABLE (1 << 9)
#define GS_UNIT_CLOCK_GATE_DISABLE (1 << 7)
@@ -5424,6 +5424,11 @@ static void valleyview_init_clock_gating(struct drm_device *dev)
I915_WRITE(DSPCLK_GATE_D, VRHUNIT_CLOCK_GATE_DISABLE);
+ /* Wa to make VGA hotplug and manual detection work. */
+ val = I915_READ(DPPSR_CGDIS_VLV);
+ val |= DPIOUNIT_PSR_CLOCK_GATING_DISABLE;
+ I915_WRITE(DPIOUNIT_PSR_CLOCK_GATING_DISABLE, val);
+
/* WaDisableEarlyCull:vlv */
I915_WRITE(_3D_CHICKEN3,
_MASKED_BIT_ENABLE(_3D_CHICKEN_SF_DISABLE_OBJEND_CULL));