static void dg1_hpd_irq_setup(struct drm_i915_private *dev_priv)
 {
+       u32 val;
+
+       val = I915_READ(SOUTH_CHICKEN1);
+       val |= (INVERT_DDIA_HPD |
+               INVERT_DDIB_HPD |
+               INVERT_DDIC_HPD |
+               INVERT_DDID_HPD);
+       I915_WRITE(SOUTH_CHICKEN1, val);
+
        icp_hpd_irq_setup(dev_priv,
                          DG1_DDI_HPD_ENABLE_MASK, 0);
 }
 
 #define SOUTH_CHICKEN1         _MMIO(0xc2000)
 #define  FDIA_PHASE_SYNC_SHIFT_OVR     19
 #define  FDIA_PHASE_SYNC_SHIFT_EN      18
+#define  INVERT_DDID_HPD                       (1 << 18)
+#define  INVERT_DDIC_HPD                       (1 << 17)
+#define  INVERT_DDIB_HPD                       (1 << 16)
+#define  INVERT_DDIA_HPD                       (1 << 15)
 #define  FDI_PHASE_SYNC_OVR(pipe) (1 << (FDIA_PHASE_SYNC_SHIFT_OVR - ((pipe) * 2)))
 #define  FDI_PHASE_SYNC_EN(pipe) (1 << (FDIA_PHASE_SYNC_SHIFT_EN - ((pipe) * 2)))
 #define  FDI_BC_BIFURCATION_SELECT     (1 << 12)