OSDN Git Service

drm/i915: Handle SDEISR according to PCH rather than platform
authorMatt Roper <matthew.d.roper@intel.com>
Wed, 27 Nov 2019 22:13:12 +0000 (14:13 -0800)
committerMatt Roper <matthew.d.roper@intel.com>
Mon, 2 Dec 2019 16:18:46 +0000 (08:18 -0800)
The South Display is part of the PCH so we should technically be basing
our port detection logic off the PCH in use rather than the platform
generation.

Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191127221314.575575-1-matthew.d.roper@intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index 511c6ae..dde1b25 100644 (file)
@@ -5498,7 +5498,7 @@ static bool icl_combo_port_connected(struct drm_i915_private *dev_priv,
        return I915_READ(SDEISR) & SDE_DDI_HOTPLUG_ICP(port);
 }
 
-static bool icl_digital_port_connected(struct intel_encoder *encoder)
+static bool icp_digital_port_connected(struct intel_encoder *encoder)
 {
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
@@ -5536,9 +5536,9 @@ static bool __intel_digital_port_connected(struct intel_encoder *encoder)
                        return g4x_digital_port_connected(encoder);
        }
 
-       if (INTEL_GEN(dev_priv) >= 11)
-               return icl_digital_port_connected(encoder);
-       else if (IS_GEN(dev_priv, 10) || IS_GEN9_BC(dev_priv))
+       if (INTEL_PCH_TYPE(dev_priv) >= PCH_ICP)
+               return icp_digital_port_connected(encoder);
+       else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
                return spt_digital_port_connected(encoder);
        else if (IS_GEN9_LP(dev_priv))
                return bxt_digital_port_connected(encoder);