intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 09/21] drm/i915: Embed rotation_info under intel_framebuffer
Date: Tue, 1 Mar 2016 13:00:17 +0200	[thread overview]
Message-ID: <20160301110017.GG15993@intel.com> (raw)
In-Reply-To: <1455569699-27905-10-git-send-email-ville.syrjala@linux.intel.com>

On Mon, Feb 15, 2016 at 10:54:47PM +0200, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Instead of repopulatin the rotation_info struct for the fb every time
> we try to use the fb, we can just populate it once when creating the fb,
> and later we can just copy the pre-populate struct into the gtt_view.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Merged up to here. Thanks for the reviews.

> ---
>  drivers/gpu/drm/i915/intel_display.c | 27 ++++++++++++++++-----------
>  drivers/gpu/drm/i915/intel_drv.h     |  1 +
>  2 files changed, 17 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 74252433b1ec..fddfc5875752 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2309,18 +2309,20 @@ intel_fill_fb_ggtt_view(struct i915_ggtt_view *view,
>  			const struct drm_framebuffer *fb,
>  			unsigned int rotation)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(fb->dev);
> -	struct intel_rotation_info *info = &view->params.rotated;
> -	unsigned int tile_size, tile_width, tile_height, cpp;
> -
> -	*view = i915_ggtt_view_normal;
> -
> -	if (!intel_rotation_90_or_270(rotation))
> -		return;
> -
> -	*view = i915_ggtt_view_rotated;
> +	if (intel_rotation_90_or_270(rotation)) {
> +		*view = i915_ggtt_view_rotated;
> +		view->params.rotated = to_intel_framebuffer(fb)->rot_info;
> +	} else {
> +		*view = i915_ggtt_view_normal;
> +	}
> +}
>  
> -	info->uv_offset = fb->offsets[1];
> +static void
> +intel_fill_fb_info(struct drm_i915_private *dev_priv,
> +		   struct drm_framebuffer *fb)
> +{
> +	struct intel_rotation_info *info = &to_intel_framebuffer(fb)->rot_info;
> +	unsigned int tile_size, tile_width, tile_height, cpp;
>  
>  	tile_size = intel_tile_size(dev_priv);
>  
> @@ -2336,6 +2338,7 @@ intel_fill_fb_ggtt_view(struct i915_ggtt_view *view,
>  		intel_tile_dims(dev_priv, &tile_width, &tile_height,
>  				fb->modifier[1], cpp);
>  
> +		info->uv_offset = fb->offsets[1];
>  		info->plane[1].width = DIV_ROUND_UP(fb->pitches[1], tile_width * cpp);
>  		info->plane[1].height = DIV_ROUND_UP(fb->height / 2, tile_height);
>  	}
> @@ -14891,6 +14894,8 @@ static int intel_framebuffer_init(struct drm_device *dev,
>  	drm_helper_mode_fill_fb_struct(&intel_fb->base, mode_cmd);
>  	intel_fb->obj = obj;
>  
> +	intel_fill_fb_info(dev_priv, &intel_fb->base);
> +
>  	ret = drm_framebuffer_init(dev, &intel_fb->base, &intel_fb_funcs);
>  	if (ret) {
>  		DRM_ERROR("framebuffer init failed %d\n", ret);
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 59bed59388ad..674afa1f9f97 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -118,6 +118,7 @@ enum intel_output_type {
>  struct intel_framebuffer {
>  	struct drm_framebuffer base;
>  	struct drm_i915_gem_object *obj;
> +	struct intel_rotation_info rot_info;
>  };
>  
>  struct intel_fbdev {
> -- 
> 2.4.10

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-03-01 11:00 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-15 20:54 [PATCH v3 00/21] drm/i915: Handle fb->offsets[] and rewrite fb rotation handling to be more generic (v3) ville.syrjala
2016-02-15 20:54 ` [PATCH 01/21] drm/i915: Account for the size of the chroma plane for the rotated gtt view ville.syrjala
2016-02-16 11:40   ` Tvrtko Ursulin
2016-02-16 11:49     ` Ville Syrjälä
2016-02-17 12:51   ` Joonas Lahtinen
2016-02-15 20:54 ` [PATCH 02/21] drm/i915: s/tile_width/tile_width_bytes/ ville.syrjala
2016-02-16 16:21   ` Daniel Vetter
2016-02-15 20:54 ` [PATCH v4 03/21] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() ville.syrjala
2016-02-16 16:23   ` Daniel Vetter
2016-02-15 20:54 ` [PATCH v3 04/21] drm/i915: Support for extra alignment for tiled surfaces ville.syrjala
2016-02-16 16:26   ` Daniel Vetter
2016-02-15 20:54 ` [PATCH v2 05/21] drm/i915: Don't pass plane+plane_state to intel_pin_and_fence_fb_obj() ville.syrjala
2016-02-15 20:54 ` [PATCH 06/21] drm/i915: Pass drm_frambuffer to intel_compute_page_offset() ville.syrjala
2016-02-15 20:54 ` [PATCH v2 07/21] drm/i915: Reorganize intel_rotation_info ville.syrjala
2016-02-15 20:54 ` [PATCH 08/21] drm/i915: Move the NULL sg handling out from rotate_pages() ville.syrjala
2016-02-15 20:54 ` [PATCH 09/21] drm/i915: Embed rotation_info under intel_framebuffer ville.syrjala
2016-03-01 11:00   ` Ville Syrjälä [this message]
2016-02-15 20:54 ` [PATCH v4 10/21] drm/i915: Rewrite fb rotation GTT handling ville.syrjala
     [not found]   ` <DBEE2697754A7A4EAA940D4FF7143C6250E38A75@BGSMSX102.gar.corp.intel.com>
2016-05-02 17:31     ` FW: " Thulasimani, Sivakumar
2016-05-02 18:40       ` Ville Syrjälä
2016-05-02 18:48         ` Chris Wilson
2016-02-15 20:54 ` [PATCH v3 11/21] drm/i915: Don't pass pitch to intel_compute_page_offset() ville.syrjala
2016-02-15 20:54 ` [PATCH 12/21] drm/i915: Move SKL hw stride calculation into a helper ville.syrjala
2016-02-15 20:54 ` [PATCH 13/21] drm/i915: Pass around plane_state instead of fb+rotation ville.syrjala
2016-02-15 20:54 ` [PATCH 14/21] drm/i915: Use fb modifiers for display tiling decisions ville.syrjala
2016-03-17  8:15   ` Matthew Auld
2016-02-15 20:54 ` [PATCH 15/21] drm/i915: Adjust obj tiling vs. fb modifier rules ville.syrjala
2016-03-17  8:08   ` Matthew Auld
2016-02-15 20:54 ` [PATCH 16/21] drm/i915: Limit fb x offset due to fences ville.syrjala
2016-02-15 20:54 ` [PATCH 17/21] drm/i915: Allow calling intel_adjust_tile_offset() multiple times ville.syrjala
2016-02-15 20:54 ` [PATCH 18/21] drm/i915: Make intel_adjust_tile_offset() work for linear buffers ville.syrjala
2016-02-15 20:54 ` [PATCH 19/21] drm/i915: Compute display surface offset in the plane check hook for SKL+ ville.syrjala
2016-02-15 20:54 ` [PATCH 20/21] drm/i915: Deal with NV12 CbCr plane AUX surface on SKL+ ville.syrjala
2016-02-15 20:54 ` [PATCH v2 21/21] drm/i915: Make sure fb offset is (macro)pixel aligned ville.syrjala
2016-02-16 11:28 ` ✗ Fi.CI.BAT: failure for drm/i915: Handle fb->offsets[] and rewrite fb rotation handling to be more generic (v3) Patchwork
2016-02-25 17:46   ` Ville Syrjälä

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=20160301110017.GG15993@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).