All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Animesh Manna <animesh.manna@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	uma.shankar@intel.com, dibin.moolakadan.subrahmanian@intel.com,
	jani.nikula@intel.com
Subject: Re: [PATCH v8 04/20] drm/i915/display: Pass target transcoder to intel_set_transcoder_timings()
Date: Thu, 11 Jun 2026 11:09:41 +0300	[thread overview]
Message-ID: <aiptRZnAtlMivRUl@intel.com> (raw)
In-Reply-To: <20260603195416.91639-5-animesh.manna@intel.com>

On Thu, Jun 04, 2026 at 01:24:00AM +0530, Animesh Manna wrote:
> Let intel_set_transcoder_timings() take the target transcoder as an
> explicit argument instead of always using crtc_state->cpu_transcoder.
> This makes the helper reusable for callers that need to program timings
> for a transcoder other than the CRTC's CPU transcoder.
> 
> Update all existing callers to pass crtc_state->cpu_transcoder so there
> is no functional change.
> 
> Signed-off-by: Animesh Manna <animesh.manna@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 35 ++++++++++----------
>  1 file changed, 18 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 8e269b71f18e..9031264a34fc 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -132,7 +132,8 @@
>  #include "vlv_dsi_pll.h"
>  #include "vlv_dsi_regs.h"
>  
> -static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_state);
> +static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_state,
> +					 enum transcoder transcoder);
>  static void intel_set_pipe_src_size(const struct intel_crtc_state *crtc_state);
>  static void hsw_set_transconf(const struct intel_crtc_state *crtc_state);
>  static void bdw_set_pipe_misc(struct intel_dsb *dsb,
> @@ -1504,7 +1505,7 @@ static void ilk_configure_cpu_transcoder(const struct intel_crtc_state *crtc_sta
>  					       &crtc_state->dp_m2_n2);
>  	}
>  
> -	intel_set_transcoder_timings(crtc_state);
> +	intel_set_transcoder_timings(crtc_state, crtc_state->cpu_transcoder);
>  
>  	ilk_set_pipeconf(crtc_state);
>  }
> @@ -1635,7 +1636,7 @@ static void hsw_configure_cpu_transcoder(const struct intel_crtc_state *crtc_sta
>  					       &crtc_state->dp_m2_n2);
>  	}
>  
> -	intel_set_transcoder_timings(crtc_state);
> +	intel_set_transcoder_timings(crtc_state, crtc_state->cpu_transcoder);
>  
>  	if (cpu_transcoder != TRANSCODER_EDP)
>  		intel_de_write(display, TRANS_MULT(display, cpu_transcoder),
> @@ -2048,7 +2049,7 @@ static void i9xx_configure_cpu_transcoder(const struct intel_crtc_state *crtc_st
>  					       &crtc_state->dp_m2_n2);
>  	}
>  
> -	intel_set_transcoder_timings(crtc_state);
> +	intel_set_transcoder_timings(crtc_state, crtc_state->cpu_transcoder);
>  
>  	i9xx_set_pipeconf(crtc_state);
>  }
> @@ -2664,17 +2665,17 @@ transcoder_has_vrr(const struct intel_crtc_state *crtc_state)
>  	return HAS_VRR(display) && !transcoder_is_dsi(cpu_transcoder);
>  }
>  
> -static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_state)
> +static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_state,
> +					 enum transcoder transcoder)
>  {
>  	struct intel_display *display = to_intel_display(crtc_state);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	enum pipe pipe = crtc->pipe;
> -	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>  	const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
>  	u32 crtc_vdisplay, crtc_vtotal, crtc_vblank_start, crtc_vblank_end;
>  	int vsyncshift = 0;
>  
> -	drm_WARN_ON(display->drm, transcoder_is_dsi(cpu_transcoder));
> +	drm_WARN_ON(display->drm, transcoder_is_dsi(transcoder));

If you want to rename the variable, then do so in a separate patch.
Mixing the rename with other changes is destroying the signal to
noise ratio of the patch.

>  
>  	/* We need to be careful not to changed the adjusted mode, for otherwise
>  	 * the hw state checker will get angry at the mismatch. */
> @@ -2703,7 +2704,7 @@ static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_sta
>  	 */
>  	if (DISPLAY_VER(display) >= 13) {
>  		intel_de_write(display,
> -			       TRANS_SET_CONTEXT_LATENCY(display, cpu_transcoder),
> +			       TRANS_SET_CONTEXT_LATENCY(display, transcoder),
>  			       crtc_state->set_context_latency);
>  
>  		/*
> @@ -2718,16 +2719,16 @@ static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_sta
>  
>  	if (DISPLAY_VER(display) >= 4 && DISPLAY_VER(display) < 35)
>  		intel_de_write(display,
> -			       TRANS_VSYNCSHIFT(display, cpu_transcoder),
> +			       TRANS_VSYNCSHIFT(display, transcoder),
>  			       vsyncshift);
>  
> -	intel_de_write(display, TRANS_HTOTAL(display, cpu_transcoder),
> +	intel_de_write(display, TRANS_HTOTAL(display, transcoder),
>  		       HACTIVE(adjusted_mode->crtc_hdisplay - 1) |
>  		       HTOTAL(adjusted_mode->crtc_htotal - 1));
> -	intel_de_write(display, TRANS_HBLANK(display, cpu_transcoder),
> +	intel_de_write(display, TRANS_HBLANK(display, transcoder),
>  		       HBLANK_START(adjusted_mode->crtc_hblank_start - 1) |
>  		       HBLANK_END(adjusted_mode->crtc_hblank_end - 1));
> -	intel_de_write(display, TRANS_HSYNC(display, cpu_transcoder),
> +	intel_de_write(display, TRANS_HSYNC(display, transcoder),
>  		       HSYNC_START(adjusted_mode->crtc_hsync_start - 1) |
>  		       HSYNC_END(adjusted_mode->crtc_hsync_end - 1));
>  
> @@ -2740,13 +2741,13 @@ static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_sta
>  	if (intel_vrr_always_use_vrr_tg(display))
>  		crtc_vtotal = 1;
>  
> -	intel_de_write(display, TRANS_VTOTAL(display, cpu_transcoder),
> +	intel_de_write(display, TRANS_VTOTAL(display, transcoder),
>  		       VACTIVE(crtc_vdisplay - 1) |
>  		       VTOTAL(crtc_vtotal - 1));
> -	intel_de_write(display, TRANS_VBLANK(display, cpu_transcoder),
> +	intel_de_write(display, TRANS_VBLANK(display, transcoder),
>  		       VBLANK_START(crtc_vblank_start - 1) |
>  		       VBLANK_END(crtc_vblank_end - 1));
> -	intel_de_write(display, TRANS_VSYNC(display, cpu_transcoder),
> +	intel_de_write(display, TRANS_VSYNC(display, transcoder),
>  		       VSYNC_START(adjusted_mode->crtc_vsync_start - 1) |
>  		       VSYNC_END(adjusted_mode->crtc_vsync_end - 1));
>  
> @@ -2754,7 +2755,7 @@ static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_sta
>  	 * programmed with the VTOTAL_EDP value. Same for VTOTAL_C. This is
>  	 * documented on the DDI_FUNC_CTL register description, EDP Input Select
>  	 * bits. */
> -	if (display->platform.haswell && cpu_transcoder == TRANSCODER_EDP &&
> +	if (display->platform.haswell && transcoder == TRANSCODER_EDP &&
>  	    (pipe == PIPE_B || pipe == PIPE_C))
>  		intel_de_write(display, TRANS_VTOTAL(display, pipe),
>  			       VACTIVE(crtc_vdisplay - 1) |
> @@ -2769,7 +2770,7 @@ static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_sta
>  		 * followed by BE which DPRX devices are unable to handle.
>  		 * https://groups.vesa.org/wg/DP/document/20494
>  		 */
> -		intel_de_write(display, DP_MIN_HBLANK_CTL(cpu_transcoder),
> +		intel_de_write(display, DP_MIN_HBLANK_CTL(transcoder),
>  			       crtc_state->min_hblank);
>  	}
>  }
> -- 
> 2.29.0

-- 
Ville Syrjälä
Intel

  parent reply	other threads:[~2026-06-11  8:09 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-03 19:53 [PATCH v8 00/20] CMTG enablement Animesh Manna
2026-06-03 19:53 ` [PATCH v8 01/20] drm/i915/cmtg: Add intel_cmtg_is_allowed() for CMTG Animesh Manna
2026-06-10  5:17   ` Shankar, Uma
2026-06-10  5:26     ` Shankar, Uma
2026-06-03 19:53 ` [PATCH v8 02/20] drm/i915/cmtg: Set CMTG clock select Animesh Manna
2026-06-10  5:18   ` Shankar, Uma
2026-06-03 19:53 ` [PATCH v8 03/20] drm/i915/cmtg: Add CMTG transcoder offset in struct _device_info Animesh Manna
2026-06-10  5:20   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 04/20] drm/i915/display: Pass target transcoder to intel_set_transcoder_timings() Animesh Manna
2026-06-11  5:45   ` Shankar, Uma
2026-06-11  8:09   ` Ville Syrjälä [this message]
2026-06-03 19:54 ` [PATCH v8 05/20] drm/i915/display: Skip DP_MIN_HBLANK_CTL programming for CMTG transcoders Animesh Manna
2026-06-11  6:02   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 06/20] drm/i915/display: Pass transcoder to intel_set_transcoder_timings_lrr() Animesh Manna
2026-06-11  6:08   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 07/20] drm/i915/cmtg: Set timings for CMTG by using transcoder timing helpers Animesh Manna
2026-06-11 16:39   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 08/20] drm/i915/vrr: Pass transcoder to intel_vrr_set_fixed_rr_timings() Animesh Manna
2026-06-10 11:32   ` Jani Nikula
2026-06-11 16:42   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 09/20] drm/i915/cmtg: Program VRR fixed-rate timings for CMTG transcoder Animesh Manna
2026-06-11 17:36   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 10/20] drm/i915/cmtg: Program VRR control register " Animesh Manna
2026-06-11 17:40   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 11/20] drm/i915/cmtg: Set link M/N " Animesh Manna
2026-06-03 19:54 ` [PATCH v8 12/20] drm/i915/cmtg: Add hook to enable CMTG with sync to port Animesh Manna
2026-06-03 19:54 ` [PATCH v8 13/20] drm/i915/cmtg: Add a hook to make eDP transcoder secondary Animesh Manna
2026-06-03 19:54 ` [PATCH v8 14/20] drm/i915/cmtg: Modify existing hook to disable CMTG Animesh Manna
2026-06-11 17:56   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 15/20] drm/i915/cmtg: Add CMTG interrupt handling Animesh Manna
2026-06-10 11:35   ` Jani Nikula
2026-06-11 18:08   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 16/20] drm/i915/cmtg: Add CMTG HWGB programming Animesh Manna
2026-06-11 18:18   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 17/20] drm/i915/cmtg: Add CMTG scan line programming Animesh Manna
2026-06-11 18:20   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 18/20] drm/i915/cmtg: Add trigger to enable/disable cmtg Animesh Manna
2026-06-11 18:27   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 19/20] drm/i915/cmtg: Restore CMTG after DC6 exit Animesh Manna
2026-06-11 18:37   ` Shankar, Uma
2026-06-03 19:54 ` [PATCH v8 20/20] Debug patch Animesh Manna
2026-06-03 21:25 ` ✓ CI.KUnit: success for CMTG enablement (rev9) Patchwork
2026-06-03 22:24 ` ✓ Xe.CI.BAT: " Patchwork
2026-06-03 22:30 ` ✓ i915.CI.BAT: success for CMTG enablement (rev8) Patchwork
2026-06-04 12:54 ` ✓ Xe.CI.FULL: success for CMTG enablement (rev9) Patchwork
2026-06-04 21:11 ` ✗ i915.CI.Full: failure for CMTG enablement (rev8) Patchwork

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=aiptRZnAtlMivRUl@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=animesh.manna@intel.com \
    --cc=dibin.moolakadan.subrahmanian@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=uma.shankar@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.