All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Surendrakumar Upadhyay, TejaskumarX" <tejaskumarx.surendrakumar.upadhyay@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"Souza, Jose" <jose.souza@intel.com>
Subject: Re: [Intel-gfx] [PATCH V4] drm/i915/gen11: Disable cursor clock gating in HDR mode
Date: Thu, 2 Sep 2021 13:04:18 +0000	[thread overview]
Message-ID: <SN6PR11MB3421DB31729DE8DA0458D175DFCE9@SN6PR11MB3421.namprd11.prod.outlook.com> (raw)
In-Reply-To: <YTDKrJTd6VnV+08K@intel.com>



> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: 02 September 2021 18:29
> To: Surendrakumar Upadhyay, TejaskumarX
> <tejaskumarx.surendrakumar.upadhyay@intel.com>
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH V4] drm/i915/gen11: Disable cursor clock
> gating in HDR mode
> 
> On Thu, Sep 02, 2021 at 11:07:06AM +0000, Surendrakumar Upadhyay,
> TejaskumarX wrote:
> >
> >
> > > -----Original Message-----
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Sent: 01 September 2021 19:19
> > > To: Surendrakumar Upadhyay, TejaskumarX
> > > <tejaskumarx.surendrakumar.upadhyay@intel.com>
> > > Cc: intel-gfx@lists.freedesktop.org
> > > Subject: Re: [Intel-gfx] [PATCH V4] drm/i915/gen11: Disable cursor
> > > clock gating in HDR mode
> > >
> > > On Tue, Jun 22, 2021 at 03:04:24PM +0530, Tejas Upadhyay wrote:
> > > > Display underrun in HDR mode when cursor is enabled.
> > > > RTL fix will be implemented CLKGATE_DIS_PSL_A bit 28-46520h.
> > > > As per W/A 1604331009, Disable cursor clock gating in HDR mode.
> > > >
> > > > Bspec : 33451
> > > >
> > > > Changes since V3:
> > > > 	- Disable WA when not in HDR mode or cursor plane not active - Ville
> > > > 	- Extract required args from crtc_state - Ville
> > > > 	- Create HDR mode API using bdw_set_pipemisc ref - Ville
> > > > 	- Tested with HDR video as well full setmode, WA applies and
> > > disables
> > > > Changes since V2:
> > > >         - Made it general gen11 WA
> > > >         - Removed WA needed check
> > > >         - Added cursor plane active check
> > > >         - Once WA enable, software will not disable Changes since V1:
> > > >         - Modified way CLKGATE_DIS_PSL bit 28 was modified
> > > >
> > > > Cc: Souza Jose <jose.souza@intel.com>
> > > > Signed-off-by: Tejas Upadhyay
> > > > <tejaskumarx.surendrakumar.upadhyay@intel.com>
> > > > ---
> > > >  drivers/gpu/drm/i915/display/intel_display.c | 27
> ++++++++++++++++++++
> > > >  drivers/gpu/drm/i915/i915_reg.h              |  5 ++++
> > > >  2 files changed, 32 insertions(+)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > > index 6be1b31af07b..e1ea03b918df 100644
> > > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > > @@ -358,6 +358,13 @@ static void intel_update_czclk(struct
> > > drm_i915_private *dev_priv)
> > > >  		dev_priv->czclk_freq);
> > > >  }
> > > >
> > > > +static bool
> > > > +is_hdr_mode(const struct intel_crtc_state *crtc_state) {
> > > > +	return (crtc_state->active_planes & ~(icl_hdr_plane_mask() |
> > > > +		BIT(PLANE_CURSOR))) == 0;
> > > > +}
> > >
> > > Please use this in bdw_set_pipemisc() as well. This could be a
> > > separate prep patch actually.
> > >
> > > > +
> > > >  /* WA Display #0827: Gen9:all */
> > > >  static void
> > > >  skl_wa_827(struct drm_i915_private *dev_priv, enum pipe pipe,
> > > > bool
> > > > enable) @@ -383,6 +390,23 @@ icl_wa_scalerclkgating(struct
> > > drm_i915_private *dev_priv, enum pipe pipe,
> > > >  		               intel_de_read(dev_priv, CLKGATE_DIS_PSL(pipe)) &
> > > > ~DPFR_GATING_DIS);  }
> > > >
> > > > +/* Wa_1604331009:icl,jsl,ehl */
> > > > +	static void
> > > > +icl_wa_cursorclkgating(const struct intel_crtc_state *crtc_state) {
> > > > +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > > > +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> > > > +
> > > > +	if (is_hdr_mode(crtc_state) &&
> > > > +	    crtc_state->active_planes & BIT(PLANE_CURSOR) &&
> > > > +	    IS_GEN(dev_priv, 11))
> > > > +		intel_de_rmw(dev_priv, CLKGATE_DIS_PSL(crtc->pipe),
> > > > +			     CURSOR_GATING_DIS, CURSOR_GATING_DIS);
> > > > +	else
> > > > +		intel_de_rmw(dev_priv, CLKGATE_DIS_PSL(crtc->pipe),
> > > > +			     CURSOR_GATING_DIS, 0);
> > > > +}
> > > > +
> > > >  static bool
> > > >  is_trans_port_sync_slave(const struct intel_crtc_state
> > > > *crtc_state) { @@ -2939,6 +2963,9 @@ static void
> > > > intel_pre_plane_update(struct intel_atomic_state *state,
> > > >  	    needs_scalerclk_wa(new_crtc_state))
> > > >  		icl_wa_scalerclkgating(dev_priv, pipe, true);
> > > >
> > > > +	/* Wa_1604331009:icl,jsl,ehl */
> > > > +	icl_wa_cursorclkgating(new_crtc_state);
> > >
> > > This looks a bit wrong. We shouldn't turn the clock gating back on
> > > until after HDR mode has been disabled.
> > >
> > > So please model this after skl_wa_827() and icl_wa_scalerclkgating()
> > > so that
> > > a) the ordering is correct, and b) the code between all three w/as
> > > looks consistent.
> >
> > I did not get what you are suggesting here. Can you please put psudo?
> > Currently as far as I see icl_wa_cursorclkgating is already modelled  after
> skl_wa_827() and icl_wa_scalerclkgating(). Are referring same Or something
> else?
> 
> It should look something like:
> 
> intel_pre_plane_update()
> {
> 	if (!needs_cursorclk_wa(old_crtc_state) &&
> 	    needs_cursorclk_wa(new_crtc_state))
> 		icl_wa_cursorclkgating(..., true);
> }
> 
> intel_post_plane_update()
> {
> 	if (needs_cursorclk_wa(old_crtc_state) &&
> 	    !needs_cursorclk_wa(new_crtc_state))
> 		icl_wa_cursorclkgating(..., false);
> }
> 

Tejas : In the previous version it was done this way only. But after review comments from Jose I had to change it. See "Changes since V2" section. Also you can check in previous versions of patch.

> 
> --
> Ville Syrjälä
> Intel

  reply	other threads:[~2021-09-02 13:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-22  9:34 [Intel-gfx] [PATCH V4] drm/i915/gen11: Disable cursor clock gating in HDR mode Tejas Upadhyay
2021-06-22 12:44 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gen11: Disable cursor clock gating in HDR mode (rev2) Patchwork
2021-06-25  7:03 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gen11: Disable cursor clock gating in HDR mode (rev3) Patchwork
2021-09-01 13:48 ` [Intel-gfx] [PATCH V4] drm/i915/gen11: Disable cursor clock gating in HDR mode Ville Syrjälä
2021-09-02 11:07   ` Surendrakumar Upadhyay, TejaskumarX
2021-09-02 12:59     ` Ville Syrjälä
2021-09-02 13:04       ` Surendrakumar Upadhyay, TejaskumarX [this message]
2021-09-02 13:07         ` Surendrakumar Upadhyay, TejaskumarX
2021-09-06  6:11           ` Surendrakumar Upadhyay, TejaskumarX
2021-09-07 16:11             ` Surendrakumar Upadhyay, TejaskumarX
2021-09-22 10:49               ` Surendrakumar Upadhyay, TejaskumarX

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SN6PR11MB3421DB31729DE8DA0458D175DFCE9@SN6PR11MB3421.namprd11.prod.outlook.com \
    --to=tejaskumarx.surendrakumar.upadhyay@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jose.souza@intel.com \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.