From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 11/12] drm/i915: Use bigjoiner_pipes more
Date: Wed, 16 Feb 2022 14:35:49 +0200 [thread overview]
Message-ID: <YgzvpeD9/YU/74wj@intel.com> (raw)
In-Reply-To: <20220215183208.6143-12-ville.syrjala@linux.intel.com>
On Tue, Feb 15, 2022 at 08:32:07PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the hardcoded 2 pipe assumptions when we're massaging
> pipe_mode and the pipe_src rect to be suitable for bigjoiner.
> Instead we can just count the number of pipes in the bitmask.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 23 +++++++++++---------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 192474163edb..0690470eab97 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2727,16 +2727,18 @@ static void intel_crtc_compute_pixel_rate(struct intel_crtc_state *crtc_state)
> static void intel_bigjoiner_adjust_timings(const struct intel_crtc_state *crtc_state,
> struct drm_display_mode *mode)
> {
> - if (!crtc_state->bigjoiner_pipes)
> + int num_pipes = hweight8(crtc_state->bigjoiner_pipes);
Also just occurred to me that we might want to abstract that a bit
more since it gets repeated in several places. Could be a followup
too I suppose.
> +
> + if (num_pipes < 2)
> return;
>
> - mode->crtc_clock /= 2;
> - mode->crtc_hdisplay /= 2;
> - mode->crtc_hblank_start /= 2;
> - mode->crtc_hblank_end /= 2;
> - mode->crtc_hsync_start /= 2;
> - mode->crtc_hsync_end /= 2;
> - mode->crtc_htotal /= 2;
> + mode->crtc_clock /= num_pipes;
> + mode->crtc_hdisplay /= num_pipes;
> + mode->crtc_hblank_start /= num_pipes;
> + mode->crtc_hblank_end /= num_pipes;
> + mode->crtc_hsync_start /= num_pipes;
> + mode->crtc_hsync_end /= num_pipes;
> + mode->crtc_htotal /= num_pipes;
> }
>
> static void intel_splitter_adjust_timings(const struct intel_crtc_state *crtc_state,
> @@ -2809,16 +2811,17 @@ static void intel_encoder_get_config(struct intel_encoder *encoder,
>
> static void intel_bigjoiner_compute_pipe_src(struct intel_crtc_state *crtc_state)
> {
> + int num_pipes = hweight8(crtc_state->bigjoiner_pipes);
> int width, height;
>
> - if (!crtc_state->bigjoiner_pipes)
> + if (num_pipes < 2)
> return;
>
> width = drm_rect_width(&crtc_state->pipe_src);
> height = drm_rect_height(&crtc_state->pipe_src);
>
> drm_rect_init(&crtc_state->pipe_src, 0, 0,
> - width / 2, height);
> + width / num_pipes, height);
> }
>
> static int intel_crtc_compute_pipe_src(struct intel_crtc_state *crtc_state)
> --
> 2.34.1
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2022-02-16 12:35 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-15 18:31 [Intel-gfx] [PATCH 00/12] drm/i915: Move bigjoiner refactoring Ville Syrjala
2022-02-15 18:31 ` [Intel-gfx] [PATCH 01/12] drm/i915: Fix cursor coordinates on bigjoiner slave Ville Syrjala
2022-02-16 3:25 ` Navare, Manasi
2022-02-16 8:39 ` Ville Syrjälä
2022-02-16 19:23 ` Navare, Manasi
2022-02-15 18:31 ` [Intel-gfx] [PATCH 02/12] drm/i915: Remove nop bigjoiner state copy Ville Syrjala
2022-02-16 12:52 ` Nautiyal, Ankit K
2022-02-15 18:31 ` [Intel-gfx] [PATCH 03/12] drm/i915: Rename variables in intel_crtc_compute_config() Ville Syrjala
2022-02-16 19:26 ` Navare, Manasi
2022-02-15 18:32 ` [Intel-gfx] [PATCH 04/12] drm/i915: Extract intel_splitter_adjust_timings() Ville Syrjala
2022-02-17 8:26 ` Jani Nikula
2022-02-15 18:32 ` [Intel-gfx] [PATCH 05/12] drm/i915: Extract intel_bigjoiner_adjust_timings() Ville Syrjala
2022-02-16 19:32 ` Navare, Manasi
2022-02-15 18:32 ` [Intel-gfx] [PATCH 06/12] drm/i915: Extract intel_crtc_compute_pipe_src() Ville Syrjala
2022-02-16 19:35 ` Navare, Manasi
2022-02-16 19:44 ` Ville Syrjälä
2022-02-15 18:32 ` [Intel-gfx] [PATCH 07/12] drm/i915: Extract intel_crtc_compute_pipe_mode() Ville Syrjala
2022-02-16 19:37 ` Navare, Manasi
2022-02-15 18:32 ` [Intel-gfx] [PATCH 08/12] drm/i915: Fix MSO vs. bigjoiner timings confusion Ville Syrjala
2022-02-16 19:50 ` Navare, Manasi
2022-02-15 18:32 ` [Intel-gfx] [PATCH 09/12] drm/i915: Start tracking PIPESRC as a drm_rect Ville Syrjala
2022-02-16 11:38 ` Ville Syrjälä
2022-02-15 18:32 ` [Intel-gfx] [PATCH 10/12] drm/i915: Eliminate bigjoiner boolean Ville Syrjala
2022-02-16 10:57 ` Nautiyal, Ankit K
2022-02-16 11:04 ` Ville Syrjälä
2022-02-16 11:23 ` Nautiyal, Ankit K
2022-02-16 21:25 ` Navare, Manasi
2022-02-15 18:32 ` [Intel-gfx] [PATCH 11/12] drm/i915: Use bigjoiner_pipes more Ville Syrjala
2022-02-16 12:27 ` Nautiyal, Ankit K
2022-02-16 12:35 ` Ville Syrjälä [this message]
2022-02-16 21:26 ` Navare, Manasi
2022-02-15 18:32 ` [Intel-gfx] [PATCH 12/12] drm/i915: Make the PIPESC rect relative to the entire bigjoiner area Ville Syrjala
2022-02-17 1:06 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Move bigjoiner refactoring Patchwork
2022-02-17 10:29 ` Ville Syrjälä
2022-02-17 10:17 ` [Intel-gfx] [PATCH 00/12] " Nautiyal, Ankit K
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=YgzvpeD9/YU/74wj@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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.