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>
next prev parent 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.