drm/i915: Fix icl+ combo phy static lane power down setup
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 6 Oct 2021 20:49:37 +0000 (23:49 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 28 Oct 2021 18:20:00 +0000 (21:20 +0300)
Our lane power down defines already include the necessary shift,
don't shift them a second time.

Fortunately we masked off the correct bits, so we accidentally
left all lanes powered up all the time.

Bits 8-11 where we end up writing our misdirected lane mask are
documented as MBZ, but looks like you can actually write there
so they're not read only bits. No idea what side effect the
bogus register write might have.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4151
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211006204937.30774-17-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
drivers/gpu/drm/i915/display/intel_combo_phy.c

index 634e8d4..f628e05 100644 (file)
@@ -301,7 +301,7 @@ void intel_combo_phy_power_up_lanes(struct drm_i915_private *dev_priv,
 
        val = intel_de_read(dev_priv, ICL_PORT_CL_DW10(phy));
        val &= ~PWR_DOWN_LN_MASK;
-       val |= lane_mask << PWR_DOWN_LN_SHIFT;
+       val |= lane_mask;
        intel_de_write(dev_priv, ICL_PORT_CL_DW10(phy), val);
 }