Commit dded35ac authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Fix SKL DDI A digital port .connected()

SKL doesn't have any north DE hotplug stuff. Currently we're
trying to read DDI A live state from the BDW north DE bit,
instead of the approproate south DE bit. Fix it.

And for good measure clear the pointer to the north hpd
pin array, so that we'll actually notice if some other
place is also using the wrong thing.
Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230302161013.29213-3-ville.syrjala@linux.intel.com
parent a98ffd6e
...@@ -4510,13 +4510,16 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) ...@@ -4510,13 +4510,16 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
dig_port->connected = intel_tc_port_connected; dig_port->connected = intel_tc_port_connected;
else else
dig_port->connected = lpt_digital_port_connected; dig_port->connected = lpt_digital_port_connected;
} else if (DISPLAY_VER(dev_priv) >= 8) { } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
if (port == PORT_A || IS_GEMINILAKE(dev_priv) || dig_port->connected = bdw_digital_port_connected;
IS_BROXTON(dev_priv)) } else if (DISPLAY_VER(dev_priv) == 9) {
dig_port->connected = lpt_digital_port_connected;
} else if (IS_BROADWELL(dev_priv)) {
if (port == PORT_A)
dig_port->connected = bdw_digital_port_connected; dig_port->connected = bdw_digital_port_connected;
else else
dig_port->connected = lpt_digital_port_connected; dig_port->connected = lpt_digital_port_connected;
} else { } else if (IS_HASWELL(dev_priv)) {
if (port == PORT_A) if (port == PORT_A)
dig_port->connected = hsw_digital_port_connected; dig_port->connected = hsw_digital_port_connected;
else else
......
...@@ -197,6 +197,8 @@ static void intel_hpd_init_pins(struct drm_i915_private *dev_priv) ...@@ -197,6 +197,8 @@ static void intel_hpd_init_pins(struct drm_i915_private *dev_priv)
hpd->hpd = hpd_gen11; hpd->hpd = hpd_gen11;
else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv))
hpd->hpd = hpd_bxt; hpd->hpd = hpd_bxt;
else if (DISPLAY_VER(dev_priv) == 9)
hpd->hpd = NULL; /* no north HPD on SKL */
else if (DISPLAY_VER(dev_priv) >= 8) else if (DISPLAY_VER(dev_priv) >= 8)
hpd->hpd = hpd_bdw; hpd->hpd = hpd_bdw;
else if (DISPLAY_VER(dev_priv) >= 7) else if (DISPLAY_VER(dev_priv) >= 7)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment