All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Kuoppala <mika.kuoppala@linux.intel.com>
To: Damien Lespiau <damien.lespiau@gmail.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Fix sprite offset on HSW
Date: Fri, 26 Oct 2012 10:33:00 +0300	[thread overview]
Message-ID: <873911hemr.fsf@gaia.fi.intel.com> (raw)
In-Reply-To: <1351181401-18088-1-git-send-email-damien.lespiau@gmail.com>

On Thu, 25 Oct 2012 17:10:01 +0100, Damien Lespiau <damien.lespiau@gmail.com> wrote:
> From: Damien Lespiau <damien.lespiau@intel.com>
> 
> HSW consolidates SPRTILEOFF and SPRLINOFF into a single SPROFFSET
> register.
> 
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_reg.h     |    3 +++
>  drivers/gpu/drm/i915/intel_sprite.c |   18 +++++++++++++-----
>  2 files changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index be22aeb..2a6c0b6 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -3187,6 +3187,7 @@
>  #define _SPRA_SURF		0x7029c
>  #define _SPRA_KEYMAX		0x702a0
>  #define _SPRA_TILEOFF		0x702a4
> +#define _SPRA_OFFSET		0x702a4
>  #define _SPRA_SCALE		0x70304
>  #define   SPRITE_SCALE_ENABLE	(1<<31)
>  #define   SPRITE_FILTER_MASK	(3<<29)
> @@ -3207,6 +3208,7 @@
>  #define _SPRB_SURF		0x7129c
>  #define _SPRB_KEYMAX		0x712a0
>  #define _SPRB_TILEOFF		0x712a4
> +#define _SPRB_OFFSET		0x712a4
>  #define _SPRB_SCALE		0x71304
>  #define _SPRB_GAMC		0x71400
>  
> @@ -3220,6 +3222,7 @@
>  #define SPRSURF(pipe) _PIPE(pipe, _SPRA_SURF, _SPRB_SURF)
>  #define SPRKEYMAX(pipe) _PIPE(pipe, _SPRA_KEYMAX, _SPRB_KEYMAX)
>  #define SPRTILEOFF(pipe) _PIPE(pipe, _SPRA_TILEOFF, _SPRB_TILEOFF)
> +#define SPROFFSET(pipe) _PIPE(pipe, _SPRA_OFFSET, _SPRB_OFFSET)
>  #define SPRSCALE(pipe) _PIPE(pipe, _SPRA_SCALE, _SPRB_SCALE)
>  #define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
>  
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 176c462..24b8231 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -127,13 +127,21 @@ ivb_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
>  
>  	I915_WRITE(SPRSTRIDE(pipe), fb->pitches[0]);
>  	I915_WRITE(SPRPOS(pipe), (crtc_y << 16) | crtc_x);
> -	if (obj->tiling_mode != I915_TILING_NONE) {
> -		I915_WRITE(SPRTILEOFF(pipe), (y << 16) | x);
> +
> +	if (IS_HASWELL(dev)) {
> +		/* HSW consolidates SPRTILEOFF and SPRLINOFF into a single
> +		 * SPROFFSET register */

I don't know if upper layers sanitize already but
x should be < 8192 and y < 4096 in here, and both <4096 for ivb.
Emit warning and clamp if they are not in range?

> +		I915_WRITE(SPROFFSET(pipe), (y << 16) | x);
>  	} else {
> -		unsigned long offset;
> +		if (obj->tiling_mode != I915_TILING_NONE) {
> +			I915_WRITE(SPRTILEOFF(pipe), (y << 16) | x);
> +		} else {
> +			unsigned long offset;
>  
> -		offset = y * fb->pitches[0] + x * (fb->bits_per_pixel / 8);
> -		I915_WRITE(SPRLINOFF(pipe), offset);
> +			offset = y * fb->pitches[0] +
> +				 x * (fb->bits_per_pixel / 8);
> +			I915_WRITE(SPRLINOFF(pipe), offset);
> +		}
>  	}
>  	I915_WRITE(SPRSIZE(pipe), (crtc_h << 16) | crtc_w);
>  	if (intel_plane->can_scale)
> -- 
> 1.7.7.5

Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>

  reply	other threads:[~2012-10-26  8:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-25 16:10 [PATCH] drm/i915: Fix sprite offset on HSW Damien Lespiau
2012-10-26  7:33 ` Mika Kuoppala [this message]
2012-10-26  9:48   ` Chris Wilson
2012-10-26  9:49   ` Daniel Vetter
2012-10-26 13:18 ` Paulo Zanoni

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=873911hemr.fsf@gaia.fi.intel.com \
    --to=mika.kuoppala@linux.intel.com \
    --cc=damien.lespiau@gmail.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.