Merge drm/drm-next into drm-intel-next-queued
[linux-block.git] / drivers / gpu / drm / i915 / display / intel_hotplug.c
index 664f883541018c7bf76ca22a695b296bc946dfe0..2e94c1413c02ab7114ffe89abcd7698977fff212 100644 (file)
@@ -89,6 +89,15 @@ enum hpd_pin intel_hpd_pin_default(struct drm_i915_private *dev_priv,
 {
        enum phy phy = intel_port_to_phy(dev_priv, port);
 
+       /*
+        * RKL + TGP PCH is a special case; we effectively choose the hpd_pin
+        * based on the DDI rather than the PHY (i.e., the last two outputs
+        * shold be HPD_PORT_{D,E} rather than {C,D}.  Note that this differs
+        * from the behavior of both TGL+TGP and RKL+CMP.
+        */
+       if (IS_ROCKETLAKE(dev_priv) && HAS_PCH_TGP(dev_priv))
+               return HPD_PORT_A + port - PORT_A;
+
        switch (phy) {
        case PHY_F:
                return IS_CNL_WITH_PORT_F(dev_priv) ? HPD_PORT_E : HPD_PORT_F;