From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 11/12] drm/i915: Relocate some other plane fb related stuff into intel_fb.c
Date: Thu, 13 Feb 2025 21:22:43 +0200 [thread overview]
Message-ID: <87o6z5wsxo.fsf@intel.com> (raw)
In-Reply-To: <20250213150220.13580-12-ville.syrjala@linux.intel.com>
On Thu, 13 Feb 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Move intel_fb_xy_to_linear() and intel_add_fb_offsets()
> These are technially sitting somewhere between plane vs. fb code,
> but we do have a bunch of code like that in intel_fb.c anyway.
> Might need to think about splitting intel_fb.c into pure fb vs.
> plane->fb related stuff somehow, but dunno if that's even feasible.
Again, better than intel_display.c.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 31 --------------------
> drivers/gpu/drm/i915/display/intel_display.h | 5 ----
> drivers/gpu/drm/i915/display/intel_fb.c | 30 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_fb.h | 6 ++++
> 4 files changed, 36 insertions(+), 36 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index c38c37afc154..c58b245ce935 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -601,37 +601,6 @@ void intel_disable_transcoder(const struct intel_crtc_state *old_crtc_state)
> intel_wait_for_pipe_off(old_crtc_state);
> }
>
> -/*
> - * Convert the x/y offsets into a linear offset.
> - * Only valid with 0/180 degree rotation, which is fine since linear
> - * offset is only used with linear buffers on pre-hsw and tiled buffers
> - * with gen2/3, and 90/270 degree rotations isn't supported on any of them.
> - */
> -u32 intel_fb_xy_to_linear(int x, int y,
> - const struct intel_plane_state *state,
> - int color_plane)
> -{
> - const struct drm_framebuffer *fb = state->hw.fb;
> - unsigned int cpp = fb->format->cpp[color_plane];
> - unsigned int pitch = state->view.color_plane[color_plane].mapping_stride;
> -
> - return y * pitch + x * cpp;
> -}
> -
> -/*
> - * Add the x/y offsets derived from fb->offsets[] to the user
> - * specified plane src x/y offsets. The resulting x/y offsets
> - * specify the start of scanout from the beginning of the gtt mapping.
> - */
> -void intel_add_fb_offsets(int *x, int *y,
> - const struct intel_plane_state *state,
> - int color_plane)
> -
> -{
> - *x += state->view.color_plane[color_plane].x;
> - *y += state->view.color_plane[color_plane].y;
> -}
> -
> u32 intel_plane_fb_max_stride(struct drm_device *drm,
> u32 pixel_format, u64 modifier)
> {
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> index a7bd82662adf..ffbec2c4aabc 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -460,11 +460,6 @@ int vlv_get_cck_clock(struct drm_i915_private *dev_priv,
> int vlv_get_cck_clock_hpll(struct drm_i915_private *dev_priv,
> const char *name, u32 reg);
> void intel_init_display_hooks(struct drm_i915_private *dev_priv);
> -unsigned int intel_fb_xy_to_linear(int x, int y,
> - const struct intel_plane_state *state,
> - int plane);
> -void intel_add_fb_offsets(int *x, int *y,
> - const struct intel_plane_state *state, int plane);
> bool intel_has_pending_fb_unpin(struct drm_i915_private *dev_priv);
> void intel_encoder_destroy(struct drm_encoder *encoder);
> struct drm_display_mode *
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index c1923b4c13d6..399babb57030 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -1937,6 +1937,36 @@ void intel_fb_fill_view(const struct intel_framebuffer *fb, unsigned int rotatio
> else
> *view = fb->normal_view;
> }
> +/*
> + * Convert the x/y offsets into a linear offset.
> + * Only valid with 0/180 degree rotation, which is fine since linear
> + * offset is only used with linear buffers on pre-hsw and tiled buffers
> + * with gen2/3, and 90/270 degree rotations isn't supported on any of them.
> + */
> +u32 intel_fb_xy_to_linear(int x, int y,
> + const struct intel_plane_state *state,
> + int color_plane)
> +{
> + const struct drm_framebuffer *fb = state->hw.fb;
> + unsigned int cpp = fb->format->cpp[color_plane];
> + unsigned int pitch = state->view.color_plane[color_plane].mapping_stride;
> +
> + return y * pitch + x * cpp;
> +}
> +
> +/*
> + * Add the x/y offsets derived from fb->offsets[] to the user
> + * specified plane src x/y offsets. The resulting x/y offsets
> + * specify the start of scanout from the beginning of the gtt mapping.
> + */
> +void intel_add_fb_offsets(int *x, int *y,
> + const struct intel_plane_state *state,
> + int color_plane)
> +
> +{
> + *x += state->view.color_plane[color_plane].x;
> + *y += state->view.color_plane[color_plane].y;
> +}
>
> static
> u32 intel_fb_max_stride(struct intel_display *display,
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> index d04d9274bb71..46286a40e10e 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> @@ -93,6 +93,12 @@ unsigned int intel_fb_view_vtd_guard(const struct drm_framebuffer *fb,
> unsigned int rotation);
> int intel_plane_compute_gtt(struct intel_plane_state *plane_state);
>
> +unsigned int intel_fb_xy_to_linear(int x, int y,
> + const struct intel_plane_state *state,
> + int plane);
> +void intel_add_fb_offsets(int *x, int *y,
> + const struct intel_plane_state *state, int plane);
> +
> int intel_framebuffer_init(struct intel_framebuffer *ifb,
> struct drm_gem_object *obj,
> struct drm_mode_fb_cmd2 *mode_cmd);
--
Jani Nikula, Intel
next prev parent reply other threads:[~2025-02-13 19:22 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-13 15:02 [PATCH 00/12] drm/i915: Hoist some stuff out from intel_display.c Ville Syrjala
2025-02-13 15:02 ` [PATCH 01/12] drm/i915: Move modeset_retry stuff into intel_connector.c Ville Syrjala
2025-02-13 19:11 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 02/12] drm/i915: Always initialize connector->modeset_retry_work Ville Syrjala
2025-02-13 19:11 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 03/12] drm/i915: Extract intel_connector_cancel_modeset_retry_work() Ville Syrjala
2025-02-13 19:12 ` Jani Nikula
2025-02-13 19:13 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 04/12] drm/i915: Extract intel_hdcp_cancel_works() Ville Syrjala
2025-02-13 19:14 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 05/12] drm/i915: Move intel_hpd_poll_fini() into intel_hotplug.c Ville Syrjala
2025-02-13 19:15 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 06/12] drm/i915: Move intel_plane_destroy() into intel_atomic_plane.c Ville Syrjala
2025-02-13 19:17 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 07/12] drm/i915: Relocate vlv_wait_port_ready() Ville Syrjala
2025-02-13 19:18 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 08/12] drm/i915: Simplify vlv_wait_port_ready() arguments Ville Syrjala
2025-02-13 19:19 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 09/12] drm/i915: Relocate intel_plane_uses_fence() Ville Syrjala
2025-02-13 19:20 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 10/12] drm/i915: Relocate intel_{rotation, remapped}_info_size() Ville Syrjala
2025-02-13 19:21 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 11/12] drm/i915: Relocate some other plane fb related stuff into intel_fb.c Ville Syrjala
2025-02-13 19:22 ` Jani Nikula [this message]
2025-02-13 15:02 ` [PATCH 12/12] drm/i915: s/state/plane_state/ Ville Syrjala
2025-02-13 19:23 ` Jani Nikula
2025-02-13 15:25 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hoist some stuff out from intel_display.c Patchwork
2025-02-13 15:25 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-13 15:44 ` ✗ i915.CI.BAT: failure " Patchwork
2025-02-14 18:22 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hoist some stuff out from intel_display.c (rev2) Patchwork
2025-02-14 18:22 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-14 18:39 ` ✗ i915.CI.BAT: failure " Patchwork
2025-02-15 3:02 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hoist some stuff out from intel_display.c (rev3) Patchwork
2025-02-15 3:02 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-15 3:18 ` ✓ i915.CI.BAT: success " Patchwork
2025-02-15 6:56 ` ✗ i915.CI.Full: failure " 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=87o6z5wsxo.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.