Message ID | 20240708083247.2611258-1-mitulkumar.ajitkumar.golani@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v5] drm/i915/display: WA for Re-initialize dispcnlunitt1 xosc clock | expand |
> -----Original Message----- > From: Golani, Mitulkumar Ajitkumar > <mitulkumar.ajitkumar.golani@intel.com> > Sent: Monday, July 8, 2024 2:03 PM > Cc: intel-gfx@lists.freedesktop.org; Kandpal, Suraj > <suraj.kandpal@intel.com>; Garg, Nemesa <nemesa.garg@intel.com>; > Nikula, Jani <jani.nikula@intel.com> > Subject: [PATCH v5] drm/i915/display: WA for Re-initialize dispcnlunitt1 xosc > clock > > The dispcnlunit1_cp_xosc_clk should be de-asserted in display off and only > asserted in display on. As part of this workaround, Display driver shall > execute set-reset sequence at the end of the initialize sequence to ensure clk > does not remain active in display OFF. > > HSD: 15013987218 > > --v2: > - Rebase. > --v3: > - Correct HSD number in commit message. > --v4: > - Reformat commit message. > - Use intel_de_rmw instead of intel_de_write > --v5: > - Build Fixes. > Move the HSD no here other than that LGTM Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> > Reviewed-by: Nemesa Garg <nemesa.garg@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display_power.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > b/drivers/gpu/drm/i915/display/intel_display_power.c > index e288a1b21d7e..0af1e34ef2a7 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > @@ -1704,6 +1704,14 @@ static void icl_display_core_init(struct > drm_i915_private *dev_priv, > /* Wa_14011503030:xelpd */ > if (DISPLAY_VER(dev_priv) == 13) > intel_de_write(dev_priv, XELPD_DISPLAY_ERR_FATAL_MASK, > ~0); > + > + /* Wa_15013987218 */ > + if (DISPLAY_VER(dev_priv) == 20) { > + intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D, > + 0, PCH_GMBUSUNIT_CLOCK_GATE_DISABLE); > + intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D, > + PCH_GMBUSUNIT_CLOCK_GATE_DISABLE, 0); > + } > } > > static void icl_display_core_uninit(struct drm_i915_private *dev_priv) > -- > 2.45.2
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c index e288a1b21d7e..0af1e34ef2a7 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power.c +++ b/drivers/gpu/drm/i915/display/intel_display_power.c @@ -1704,6 +1704,14 @@ static void icl_display_core_init(struct drm_i915_private *dev_priv, /* Wa_14011503030:xelpd */ if (DISPLAY_VER(dev_priv) == 13) intel_de_write(dev_priv, XELPD_DISPLAY_ERR_FATAL_MASK, ~0); + + /* Wa_15013987218 */ + if (DISPLAY_VER(dev_priv) == 20) { + intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D, + 0, PCH_GMBUSUNIT_CLOCK_GATE_DISABLE); + intel_de_rmw(dev_priv, SOUTH_DSPCLK_GATE_D, + PCH_GMBUSUNIT_CLOCK_GATE_DISABLE, 0); + } } static void icl_display_core_uninit(struct drm_i915_private *dev_priv)