drm/i915/icl: do not save DDI A/E sharing bit for ICL
authorJani Nikula <jani.nikula@intel.com>
Tue, 6 Mar 2018 10:41:55 +0000 (12:41 +0200)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Fri, 16 Mar 2018 12:35:26 +0000 (14:35 +0200)
We don't want to preserve the DDI A 4 lane bit on ICL.

Fixes: 3d2011cfa41f ("drm/i915/icl: remove port A/E lane sharing limitation.")
Cc: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180306104155.3526-1-jani.nikula@intel.com
(cherry picked from commit 1e6aa7e55c28ecd842b8b4599e4273c2429ee061)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/intel_ddi.c

index ac8fc2a..dbcf1a0 100644 (file)
@@ -3080,9 +3080,12 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
        intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
        intel_encoder->cloneable = 0;
 
-       intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
-                                         (DDI_BUF_PORT_REVERSAL |
-                                          DDI_A_4_LANES);
+       if (INTEL_GEN(dev_priv) >= 11)
+               intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
+                       DDI_BUF_PORT_REVERSAL;
+       else
+               intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
+                       (DDI_BUF_PORT_REVERSAL | DDI_A_4_LANES);
        intel_dig_port->dp.output_reg = INVALID_MMIO_REG;
        intel_dig_port->max_lanes = intel_ddi_max_lanes(intel_dig_port);