All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 07/11] drm/i915/dsb: Convert the DSB code to use intel_display rather than i915
Date: Tue, 18 Jun 2024 14:08:57 +0300	[thread overview]
Message-ID: <8734pah5iu.fsf@intel.com> (raw)
In-Reply-To: <20240611133344.30673-8-ville.syrjala@linux.intel.com>

On Tue, 11 Jun 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The future direction will be to mainly use intel_display
> rather than i915 in the display code. Start on that path
> for the DSB code.

Yay! \o/


>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dsb.c | 52 ++++++++++++------------
>  1 file changed, 26 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
> index 8ae7bcfa8403..bee48ac419ce 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsb.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsb.c
> @@ -85,10 +85,10 @@ struct intel_dsb {
>  static bool assert_dsb_has_room(struct intel_dsb *dsb)
>  {
>  	struct intel_crtc *crtc = dsb->crtc;
> -	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	struct intel_display *display = to_intel_display(crtc->base.dev);
>  
>  	/* each instruction is 2 dwords */
> -	return !drm_WARN(&i915->drm, dsb->free_pos > dsb->size - 2,
> +	return !drm_WARN(display->drm, dsb->free_pos > dsb->size - 2,
>  			 "[CRTC:%d:%s] DSB %d buffer overflow\n",
>  			 crtc->base.base.id, crtc->base.name, dsb->id);
>  }
> @@ -96,25 +96,25 @@ static bool assert_dsb_has_room(struct intel_dsb *dsb)
>  static void intel_dsb_dump(struct intel_dsb *dsb)
>  {
>  	struct intel_crtc *crtc = dsb->crtc;
> -	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	struct intel_display *display = to_intel_display(crtc->base.dev);
>  	int i;
>  
> -	drm_dbg_kms(&i915->drm, "[CRTC:%d:%s] DSB %d commands {\n",
> +	drm_dbg_kms(display->drm, "[CRTC:%d:%s] DSB %d commands {\n",
>  		    crtc->base.base.id, crtc->base.name, dsb->id);
>  	for (i = 0; i < ALIGN(dsb->free_pos, 64 / 4); i += 4)
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    " 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n", i * 4,
>  			    intel_dsb_buffer_read(&dsb->dsb_buf, i),
>  			    intel_dsb_buffer_read(&dsb->dsb_buf, i + 1),
>  			    intel_dsb_buffer_read(&dsb->dsb_buf, i + 2),
>  			    intel_dsb_buffer_read(&dsb->dsb_buf, i + 3));
> -	drm_dbg_kms(&i915->drm, "}\n");
> +	drm_dbg_kms(display->drm, "}\n");
>  }
>  
> -static bool is_dsb_busy(struct drm_i915_private *i915, enum pipe pipe,
> +static bool is_dsb_busy(struct intel_display *display, enum pipe pipe,
>  			enum intel_dsb_id dsb_id)
>  {
> -	return intel_de_read_fw(i915, DSB_CTRL(pipe, dsb_id)) & DSB_STATUS_BUSY;
> +	return intel_de_read_fw(display, DSB_CTRL(pipe, dsb_id)) & DSB_STATUS_BUSY;
>  }
>  
>  static void intel_dsb_emit(struct intel_dsb *dsb, u32 ldw, u32 udw)
> @@ -343,27 +343,27 @@ static void _intel_dsb_commit(struct intel_dsb *dsb, u32 ctrl,
>  			      int dewake_scanline)
>  {
>  	struct intel_crtc *crtc = dsb->crtc;
> -	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct intel_display *display = to_intel_display(crtc->base.dev);
>  	enum pipe pipe = crtc->pipe;
>  	u32 tail;
>  
>  	tail = dsb->free_pos * 4;
> -	if (drm_WARN_ON(&dev_priv->drm, !IS_ALIGNED(tail, CACHELINE_BYTES)))
> +	if (drm_WARN_ON(display->drm, !IS_ALIGNED(tail, CACHELINE_BYTES)))
>  		return;
>  
> -	if (is_dsb_busy(dev_priv, pipe, dsb->id)) {
> -		drm_err(&dev_priv->drm, "[CRTC:%d:%s] DSB %d is busy\n",
> +	if (is_dsb_busy(display, pipe, dsb->id)) {
> +		drm_err(display->drm, "[CRTC:%d:%s] DSB %d is busy\n",
>  			crtc->base.base.id, crtc->base.name, dsb->id);
>  		return;
>  	}
>  
> -	intel_de_write_fw(dev_priv, DSB_CTRL(pipe, dsb->id),
> +	intel_de_write_fw(display, DSB_CTRL(pipe, dsb->id),
>  			  ctrl | DSB_ENABLE);
>  
> -	intel_de_write_fw(dev_priv, DSB_CHICKEN(pipe, dsb->id),
> +	intel_de_write_fw(display, DSB_CHICKEN(pipe, dsb->id),
>  			  dsb_chicken(crtc));
>  
> -	intel_de_write_fw(dev_priv, DSB_HEAD(pipe, dsb->id),
> +	intel_de_write_fw(display, DSB_HEAD(pipe, dsb->id),
>  			  intel_dsb_buffer_ggtt_offset(&dsb->dsb_buf));
>  
>  	if (dewake_scanline >= 0) {
> @@ -371,7 +371,7 @@ static void _intel_dsb_commit(struct intel_dsb *dsb, u32 ctrl,
>  
>  		hw_dewake_scanline = intel_crtc_scanline_to_hw(crtc, dewake_scanline);
>  
> -		intel_de_write_fw(dev_priv, DSB_PMCTRL(pipe, dsb->id),
> +		intel_de_write_fw(display, DSB_PMCTRL(pipe, dsb->id),
>  				  DSB_ENABLE_DEWAKE |
>  				  DSB_SCANLINE_FOR_DEWAKE(hw_dewake_scanline));
>  
> @@ -380,12 +380,12 @@ static void _intel_dsb_commit(struct intel_dsb *dsb, u32 ctrl,
>  		 * or close to racing past the target scanline.
>  		 */
>  		diff = dewake_scanline - intel_get_crtc_scanline(crtc);
> -		intel_de_write_fw(dev_priv, DSB_PMCTRL_2(pipe, dsb->id),
> +		intel_de_write_fw(display, DSB_PMCTRL_2(pipe, dsb->id),
>  				  (diff >= 0 && diff < 5 ? DSB_FORCE_DEWAKE : 0) |
>  				  DSB_BLOCK_DEWAKE_EXTENSION);
>  	}
>  
> -	intel_de_write_fw(dev_priv, DSB_TAIL(pipe, dsb->id),
> +	intel_de_write_fw(display, DSB_TAIL(pipe, dsb->id),
>  			  intel_dsb_buffer_ggtt_offset(&dsb->dsb_buf) + tail);
>  }
>  
> @@ -407,21 +407,21 @@ void intel_dsb_commit(struct intel_dsb *dsb,
>  void intel_dsb_wait(struct intel_dsb *dsb)
>  {
>  	struct intel_crtc *crtc = dsb->crtc;
> -	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct intel_display *display = to_intel_display(crtc->base.dev);
>  	enum pipe pipe = crtc->pipe;
>  
> -	if (wait_for(!is_dsb_busy(dev_priv, pipe, dsb->id), 1)) {
> +	if (wait_for(!is_dsb_busy(display, pipe, dsb->id), 1)) {
>  		u32 offset = intel_dsb_buffer_ggtt_offset(&dsb->dsb_buf);
>  
> -		intel_de_write_fw(dev_priv, DSB_CTRL(pipe, dsb->id),
> +		intel_de_write_fw(display, DSB_CTRL(pipe, dsb->id),
>  				  DSB_ENABLE | DSB_HALT);
>  
> -		drm_err(&dev_priv->drm,
> +		drm_err(display->drm,
>  			"[CRTC:%d:%s] DSB %d timed out waiting for idle (current head=0x%x, head=0x%x, tail=0x%x)\n",
>  			crtc->base.base.id, crtc->base.name, dsb->id,
> -			intel_de_read_fw(dev_priv, DSB_CURRENT_HEAD(pipe, dsb->id)) - offset,
> -			intel_de_read_fw(dev_priv, DSB_HEAD(pipe, dsb->id)) - offset,
> -			intel_de_read_fw(dev_priv, DSB_TAIL(pipe, dsb->id)) - offset);
> +			intel_de_read_fw(display, DSB_CURRENT_HEAD(pipe, dsb->id)) - offset,
> +			intel_de_read_fw(display, DSB_HEAD(pipe, dsb->id)) - offset,
> +			intel_de_read_fw(display, DSB_TAIL(pipe, dsb->id)) - offset);
>  
>  		intel_dsb_dump(dsb);
>  	}
> @@ -429,7 +429,7 @@ void intel_dsb_wait(struct intel_dsb *dsb)
>  	/* Attempt to reset it */
>  	dsb->free_pos = 0;
>  	dsb->ins_start_offset = 0;
> -	intel_de_write_fw(dev_priv, DSB_CTRL(pipe, dsb->id), 0);
> +	intel_de_write_fw(display, DSB_CTRL(pipe, dsb->id), 0);
>  }
>  
>  /**

-- 
Jani Nikula, Intel

  reply	other threads:[~2024-06-18 11:09 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-11 13:33 [PATCH 00/11] drm/i915/dsb: DSB prep stuff Ville Syrjala
2024-06-11 13:33 ` [PATCH 01/11] drm/i915: Extract intel_crtc_arm_vblank_event() Ville Syrjala
2024-06-11 13:33 ` [PATCH 02/11] drm/i915: Add async flip tracepoint Ville Syrjala
2024-06-11 13:33 ` [PATCH 03/11] drm/i915: Add flip done tracepoint Ville Syrjala
2024-06-11 13:33 ` [PATCH 04/11] drm/i915: Introduce intel_mode_vdisplay() Ville Syrjala
2024-06-11 13:33 ` [PATCH 05/11] drm/i915: Pass the whole atomic state to intel_color_prepare_commit() Ville Syrjala
2024-06-11 13:33 ` [PATCH 06/11] drm/i915/dsb: Plumb the whole atomic state into intel_dsb_prepare() Ville Syrjala
2024-06-11 13:33 ` [PATCH 07/11] drm/i915/dsb: Convert the DSB code to use intel_display rather than i915 Ville Syrjala
2024-06-18 11:08   ` Jani Nikula [this message]
2024-06-11 13:33 ` [PATCH 08/11] drm/i915/dsb: Add i915.enable_dsb module parameter Ville Syrjala
2024-06-18 11:07   ` Jani Nikula
2024-06-19 11:29     ` Ville Syrjälä
2024-06-19 13:11       ` Jani Nikula
2024-06-19 13:24         ` Ville Syrjälä
2024-06-19 14:44           ` Ville Syrjälä
2024-06-19 14:55             ` Ville Syrjälä
2024-06-19 17:24               ` Jani Nikula
2024-06-11 13:33 ` [PATCH 09/11] drm/i915: Drop useless intel_dsb.h include Ville Syrjala
2024-06-11 13:33 ` [PATCH 10/11] drm/i915/dsb: Document that the ATS fault bits are for mtl+ Ville Syrjala
2024-06-11 13:33 ` [PATCH 11/11] drm/i915/dsb: Try to document that DSB_STATUS bit 16 is level triggered Ville Syrjala
2024-06-11 14:21 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dsb: DSB prep stuff Patchwork
2024-06-11 14:21 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-06-11 14:42 ` ✓ Fi.CI.BAT: success " Patchwork
2024-06-12  5:32 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-06-18 11:09 ` [PATCH 00/11] " Jani Nikula

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=8734pah5iu.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --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.