diff mbox

[2/2] drm/i915: Fix VLV sprite register offsets

Message ID 1372158995-16945-2-git-send-email-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjälä June 25, 2013, 11:16 a.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

We forgot to add VLV_DISPLAY_BASE to the VLV sprite registers, which
caused the sprites to not work at all.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_reg.h | 50 ++++++++++++++++++++---------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

Comments

Jesse Barnes June 26, 2013, 2:50 p.m. UTC | #1
On Tue, 25 Jun 2013 14:16:35 +0300
ville.syrjala@linux.intel.com wrote:

> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We forgot to add VLV_DISPLAY_BASE to the VLV sprite registers, which
> caused the sprites to not work at all.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_reg.h | 50 ++++++++++++++++++++---------------------
>  1 file changed, 25 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 2c3bba5..10ac3d5 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -3492,7 +3492,7 @@
>  #define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
>  #define SPRSURFLIVE(pipe) _PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE)
>  
> -#define _SPACNTR		0x72180
> +#define _SPACNTR		(VLV_DISPLAY_BASE + 0x72180)
>  #define   SP_ENABLE			(1<<31)
>  #define   SP_GEAMMA_ENABLE		(1<<30)
>  #define   SP_PIXFORMAT_MASK		(0xf<<26)
> @@ -3511,30 +3511,30 @@
>  #define   SP_YUV_ORDER_YVYU		(2<<16)
>  #define   SP_YUV_ORDER_VYUY		(3<<16)
>  #define   SP_TILED			(1<<10)
> -#define _SPALINOFF		0x72184
> -#define _SPASTRIDE		0x72188
> -#define _SPAPOS			0x7218c
> -#define _SPASIZE		0x72190
> -#define _SPAKEYMINVAL		0x72194
> -#define _SPAKEYMSK		0x72198
> -#define _SPASURF		0x7219c
> -#define _SPAKEYMAXVAL		0x721a0
> -#define _SPATILEOFF		0x721a4
> -#define _SPACONSTALPHA		0x721a8
> -#define _SPAGAMC		0x721f4
> -
> -#define _SPBCNTR		0x72280
> -#define _SPBLINOFF		0x72284
> -#define _SPBSTRIDE		0x72288
> -#define _SPBPOS			0x7228c
> -#define _SPBSIZE		0x72290
> -#define _SPBKEYMINVAL		0x72294
> -#define _SPBKEYMSK		0x72298
> -#define _SPBSURF		0x7229c
> -#define _SPBKEYMAXVAL		0x722a0
> -#define _SPBTILEOFF		0x722a4
> -#define _SPBCONSTALPHA		0x722a8
> -#define _SPBGAMC		0x722f4
> +#define _SPALINOFF		(VLV_DISPLAY_BASE + 0x72184)
> +#define _SPASTRIDE		(VLV_DISPLAY_BASE + 0x72188)
> +#define _SPAPOS			(VLV_DISPLAY_BASE + 0x7218c)
> +#define _SPASIZE		(VLV_DISPLAY_BASE + 0x72190)
> +#define _SPAKEYMINVAL		(VLV_DISPLAY_BASE + 0x72194)
> +#define _SPAKEYMSK		(VLV_DISPLAY_BASE + 0x72198)
> +#define _SPASURF		(VLV_DISPLAY_BASE + 0x7219c)
> +#define _SPAKEYMAXVAL		(VLV_DISPLAY_BASE + 0x721a0)
> +#define _SPATILEOFF		(VLV_DISPLAY_BASE + 0x721a4)
> +#define _SPACONSTALPHA		(VLV_DISPLAY_BASE + 0x721a8)
> +#define _SPAGAMC		(VLV_DISPLAY_BASE + 0x721f4)
> +
> +#define _SPBCNTR		(VLV_DISPLAY_BASE + 0x72280)
> +#define _SPBLINOFF		(VLV_DISPLAY_BASE + 0x72284)
> +#define _SPBSTRIDE		(VLV_DISPLAY_BASE + 0x72288)
> +#define _SPBPOS			(VLV_DISPLAY_BASE + 0x7228c)
> +#define _SPBSIZE		(VLV_DISPLAY_BASE + 0x72290)
> +#define _SPBKEYMINVAL		(VLV_DISPLAY_BASE + 0x72294)
> +#define _SPBKEYMSK		(VLV_DISPLAY_BASE + 0x72298)
> +#define _SPBSURF		(VLV_DISPLAY_BASE + 0x7229c)
> +#define _SPBKEYMAXVAL		(VLV_DISPLAY_BASE + 0x722a0)
> +#define _SPBTILEOFF		(VLV_DISPLAY_BASE + 0x722a4)
> +#define _SPBCONSTALPHA		(VLV_DISPLAY_BASE + 0x722a8)
> +#define _SPBGAMC		(VLV_DISPLAY_BASE + 0x722f4)
>  
>  #define SPCNTR(pipe, plane) _PIPE(pipe * 2 + plane, _SPACNTR, _SPBCNTR)
>  #define SPLINOFF(pipe, plane) _PIPE(pipe * 2 + plane, _SPALINOFF, _SPBLINOFF)

QA needs to get their VLV system set up to catch stuff like this...

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Daniel Vetter June 26, 2013, 6:44 p.m. UTC | #2
On Tue, Jun 25, 2013 at 02:16:35PM +0300, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We forgot to add VLV_DISPLAY_BASE to the VLV sprite registers, which
> caused the sprites to not work at all.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_reg.h | 50 ++++++++++++++++++++---------------------
>  1 file changed, 25 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 2c3bba5..10ac3d5 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -3492,7 +3492,7 @@
>  #define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
>  #define SPRSURFLIVE(pipe) _PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE)
>  
> -#define _SPACNTR		0x72180
> +#define _SPACNTR		(VLV_DISPLAY_BASE + 0x72180)
>  #define   SP_ENABLE			(1<<31)
>  #define   SP_GEAMMA_ENABLE		(1<<30)
>  #define   SP_PIXFORMAT_MASK		(0xf<<26)
> @@ -3511,30 +3511,30 @@
>  #define   SP_YUV_ORDER_YVYU		(2<<16)
>  #define   SP_YUV_ORDER_VYUY		(3<<16)
>  #define   SP_TILED			(1<<10)
> -#define _SPALINOFF		0x72184
> -#define _SPASTRIDE		0x72188
> -#define _SPAPOS			0x7218c
> -#define _SPASIZE		0x72190
> -#define _SPAKEYMINVAL		0x72194
> -#define _SPAKEYMSK		0x72198
> -#define _SPASURF		0x7219c
> -#define _SPAKEYMAXVAL		0x721a0
> -#define _SPATILEOFF		0x721a4
> -#define _SPACONSTALPHA		0x721a8
> -#define _SPAGAMC		0x721f4
> -
> -#define _SPBCNTR		0x72280
> -#define _SPBLINOFF		0x72284
> -#define _SPBSTRIDE		0x72288
> -#define _SPBPOS			0x7228c
> -#define _SPBSIZE		0x72290
> -#define _SPBKEYMINVAL		0x72294
> -#define _SPBKEYMSK		0x72298
> -#define _SPBSURF		0x7229c
> -#define _SPBKEYMAXVAL		0x722a0
> -#define _SPBTILEOFF		0x722a4
> -#define _SPBCONSTALPHA		0x722a8
> -#define _SPBGAMC		0x722f4
> +#define _SPALINOFF		(VLV_DISPLAY_BASE + 0x72184)
> +#define _SPASTRIDE		(VLV_DISPLAY_BASE + 0x72188)
> +#define _SPAPOS			(VLV_DISPLAY_BASE + 0x7218c)
> +#define _SPASIZE		(VLV_DISPLAY_BASE + 0x72190)
> +#define _SPAKEYMINVAL		(VLV_DISPLAY_BASE + 0x72194)
> +#define _SPAKEYMSK		(VLV_DISPLAY_BASE + 0x72198)
> +#define _SPASURF		(VLV_DISPLAY_BASE + 0x7219c)
> +#define _SPAKEYMAXVAL		(VLV_DISPLAY_BASE + 0x721a0)
> +#define _SPATILEOFF		(VLV_DISPLAY_BASE + 0x721a4)
> +#define _SPACONSTALPHA		(VLV_DISPLAY_BASE + 0x721a8)
> +#define _SPAGAMC		(VLV_DISPLAY_BASE + 0x721f4)
> +
> +#define _SPBCNTR		(VLV_DISPLAY_BASE + 0x72280)
> +#define _SPBLINOFF		(VLV_DISPLAY_BASE + 0x72284)
> +#define _SPBSTRIDE		(VLV_DISPLAY_BASE + 0x72288)
> +#define _SPBPOS			(VLV_DISPLAY_BASE + 0x7228c)
> +#define _SPBSIZE		(VLV_DISPLAY_BASE + 0x72290)
> +#define _SPBKEYMINVAL		(VLV_DISPLAY_BASE + 0x72294)
> +#define _SPBKEYMSK		(VLV_DISPLAY_BASE + 0x72298)
> +#define _SPBSURF		(VLV_DISPLAY_BASE + 0x7229c)
> +#define _SPBKEYMAXVAL		(VLV_DISPLAY_BASE + 0x722a0)
> +#define _SPBTILEOFF		(VLV_DISPLAY_BASE + 0x722a4)
> +#define _SPBCONSTALPHA		(VLV_DISPLAY_BASE + 0x722a8)
> +#define _SPBGAMC		(VLV_DISPLAY_BASE + 0x722f4)

Do we anticipate any unification of these registers anytime soon? I wonder
whether we should switch to a per-sprite mmio offset just in case.

Anyway since this doesn't make it messier I've merged this patch for now.
-Daniel

>  
>  #define SPCNTR(pipe, plane) _PIPE(pipe * 2 + plane, _SPACNTR, _SPBCNTR)
>  #define SPLINOFF(pipe, plane) _PIPE(pipe * 2 + plane, _SPALINOFF, _SPBLINOFF)
> -- 
> 1.8.1.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Ville Syrjälä June 26, 2013, 7:05 p.m. UTC | #3
On Wed, Jun 26, 2013 at 08:44:54PM +0200, Daniel Vetter wrote:
> On Tue, Jun 25, 2013 at 02:16:35PM +0300, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > We forgot to add VLV_DISPLAY_BASE to the VLV sprite registers, which
> > caused the sprites to not work at all.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_reg.h | 50 ++++++++++++++++++++---------------------
> >  1 file changed, 25 insertions(+), 25 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 2c3bba5..10ac3d5 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -3492,7 +3492,7 @@
> >  #define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
> >  #define SPRSURFLIVE(pipe) _PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE)
> >  
> > -#define _SPACNTR		0x72180
> > +#define _SPACNTR		(VLV_DISPLAY_BASE + 0x72180)
> >  #define   SP_ENABLE			(1<<31)
> >  #define   SP_GEAMMA_ENABLE		(1<<30)
> >  #define   SP_PIXFORMAT_MASK		(0xf<<26)
> > @@ -3511,30 +3511,30 @@
> >  #define   SP_YUV_ORDER_YVYU		(2<<16)
> >  #define   SP_YUV_ORDER_VYUY		(3<<16)
> >  #define   SP_TILED			(1<<10)
> > -#define _SPALINOFF		0x72184
> > -#define _SPASTRIDE		0x72188
> > -#define _SPAPOS			0x7218c
> > -#define _SPASIZE		0x72190
> > -#define _SPAKEYMINVAL		0x72194
> > -#define _SPAKEYMSK		0x72198
> > -#define _SPASURF		0x7219c
> > -#define _SPAKEYMAXVAL		0x721a0
> > -#define _SPATILEOFF		0x721a4
> > -#define _SPACONSTALPHA		0x721a8
> > -#define _SPAGAMC		0x721f4
> > -
> > -#define _SPBCNTR		0x72280
> > -#define _SPBLINOFF		0x72284
> > -#define _SPBSTRIDE		0x72288
> > -#define _SPBPOS			0x7228c
> > -#define _SPBSIZE		0x72290
> > -#define _SPBKEYMINVAL		0x72294
> > -#define _SPBKEYMSK		0x72298
> > -#define _SPBSURF		0x7229c
> > -#define _SPBKEYMAXVAL		0x722a0
> > -#define _SPBTILEOFF		0x722a4
> > -#define _SPBCONSTALPHA		0x722a8
> > -#define _SPBGAMC		0x722f4
> > +#define _SPALINOFF		(VLV_DISPLAY_BASE + 0x72184)
> > +#define _SPASTRIDE		(VLV_DISPLAY_BASE + 0x72188)
> > +#define _SPAPOS			(VLV_DISPLAY_BASE + 0x7218c)
> > +#define _SPASIZE		(VLV_DISPLAY_BASE + 0x72190)
> > +#define _SPAKEYMINVAL		(VLV_DISPLAY_BASE + 0x72194)
> > +#define _SPAKEYMSK		(VLV_DISPLAY_BASE + 0x72198)
> > +#define _SPASURF		(VLV_DISPLAY_BASE + 0x7219c)
> > +#define _SPAKEYMAXVAL		(VLV_DISPLAY_BASE + 0x721a0)
> > +#define _SPATILEOFF		(VLV_DISPLAY_BASE + 0x721a4)
> > +#define _SPACONSTALPHA		(VLV_DISPLAY_BASE + 0x721a8)
> > +#define _SPAGAMC		(VLV_DISPLAY_BASE + 0x721f4)
> > +
> > +#define _SPBCNTR		(VLV_DISPLAY_BASE + 0x72280)
> > +#define _SPBLINOFF		(VLV_DISPLAY_BASE + 0x72284)
> > +#define _SPBSTRIDE		(VLV_DISPLAY_BASE + 0x72288)
> > +#define _SPBPOS			(VLV_DISPLAY_BASE + 0x7228c)
> > +#define _SPBSIZE		(VLV_DISPLAY_BASE + 0x72290)
> > +#define _SPBKEYMINVAL		(VLV_DISPLAY_BASE + 0x72294)
> > +#define _SPBKEYMSK		(VLV_DISPLAY_BASE + 0x72298)
> > +#define _SPBSURF		(VLV_DISPLAY_BASE + 0x7229c)
> > +#define _SPBKEYMAXVAL		(VLV_DISPLAY_BASE + 0x722a0)
> > +#define _SPBTILEOFF		(VLV_DISPLAY_BASE + 0x722a4)
> > +#define _SPBCONSTALPHA		(VLV_DISPLAY_BASE + 0x722a8)
> > +#define _SPBGAMC		(VLV_DISPLAY_BASE + 0x722f4)
> 
> Do we anticipate any unification of these registers anytime soon? I wonder
> whether we should switch to a per-sprite mmio offset just in case.

That's been on my TODO list since the dawn of time, but never got around
to coding a solution I was happy with.

> Anyway since this doesn't make it messier I've merged this patch for now.

For now I'm happy to just get the damn sprites on the screen :)

> -Daniel
> 
> >  
> >  #define SPCNTR(pipe, plane) _PIPE(pipe * 2 + plane, _SPACNTR, _SPBCNTR)
> >  #define SPLINOFF(pipe, plane) _PIPE(pipe * 2 + plane, _SPALINOFF, _SPBLINOFF)
> > -- 
> > 1.8.1.5
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 2c3bba5..10ac3d5 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -3492,7 +3492,7 @@ 
 #define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC)
 #define SPRSURFLIVE(pipe) _PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE)
 
-#define _SPACNTR		0x72180
+#define _SPACNTR		(VLV_DISPLAY_BASE + 0x72180)
 #define   SP_ENABLE			(1<<31)
 #define   SP_GEAMMA_ENABLE		(1<<30)
 #define   SP_PIXFORMAT_MASK		(0xf<<26)
@@ -3511,30 +3511,30 @@ 
 #define   SP_YUV_ORDER_YVYU		(2<<16)
 #define   SP_YUV_ORDER_VYUY		(3<<16)
 #define   SP_TILED			(1<<10)
-#define _SPALINOFF		0x72184
-#define _SPASTRIDE		0x72188
-#define _SPAPOS			0x7218c
-#define _SPASIZE		0x72190
-#define _SPAKEYMINVAL		0x72194
-#define _SPAKEYMSK		0x72198
-#define _SPASURF		0x7219c
-#define _SPAKEYMAXVAL		0x721a0
-#define _SPATILEOFF		0x721a4
-#define _SPACONSTALPHA		0x721a8
-#define _SPAGAMC		0x721f4
-
-#define _SPBCNTR		0x72280
-#define _SPBLINOFF		0x72284
-#define _SPBSTRIDE		0x72288
-#define _SPBPOS			0x7228c
-#define _SPBSIZE		0x72290
-#define _SPBKEYMINVAL		0x72294
-#define _SPBKEYMSK		0x72298
-#define _SPBSURF		0x7229c
-#define _SPBKEYMAXVAL		0x722a0
-#define _SPBTILEOFF		0x722a4
-#define _SPBCONSTALPHA		0x722a8
-#define _SPBGAMC		0x722f4
+#define _SPALINOFF		(VLV_DISPLAY_BASE + 0x72184)
+#define _SPASTRIDE		(VLV_DISPLAY_BASE + 0x72188)
+#define _SPAPOS			(VLV_DISPLAY_BASE + 0x7218c)
+#define _SPASIZE		(VLV_DISPLAY_BASE + 0x72190)
+#define _SPAKEYMINVAL		(VLV_DISPLAY_BASE + 0x72194)
+#define _SPAKEYMSK		(VLV_DISPLAY_BASE + 0x72198)
+#define _SPASURF		(VLV_DISPLAY_BASE + 0x7219c)
+#define _SPAKEYMAXVAL		(VLV_DISPLAY_BASE + 0x721a0)
+#define _SPATILEOFF		(VLV_DISPLAY_BASE + 0x721a4)
+#define _SPACONSTALPHA		(VLV_DISPLAY_BASE + 0x721a8)
+#define _SPAGAMC		(VLV_DISPLAY_BASE + 0x721f4)
+
+#define _SPBCNTR		(VLV_DISPLAY_BASE + 0x72280)
+#define _SPBLINOFF		(VLV_DISPLAY_BASE + 0x72284)
+#define _SPBSTRIDE		(VLV_DISPLAY_BASE + 0x72288)
+#define _SPBPOS			(VLV_DISPLAY_BASE + 0x7228c)
+#define _SPBSIZE		(VLV_DISPLAY_BASE + 0x72290)
+#define _SPBKEYMINVAL		(VLV_DISPLAY_BASE + 0x72294)
+#define _SPBKEYMSK		(VLV_DISPLAY_BASE + 0x72298)
+#define _SPBSURF		(VLV_DISPLAY_BASE + 0x7229c)
+#define _SPBKEYMAXVAL		(VLV_DISPLAY_BASE + 0x722a0)
+#define _SPBTILEOFF		(VLV_DISPLAY_BASE + 0x722a4)
+#define _SPBCONSTALPHA		(VLV_DISPLAY_BASE + 0x722a8)
+#define _SPBGAMC		(VLV_DISPLAY_BASE + 0x722f4)
 
 #define SPCNTR(pipe, plane) _PIPE(pipe * 2 + plane, _SPACNTR, _SPBCNTR)
 #define SPLINOFF(pipe, plane) _PIPE(pipe * 2 + plane, _SPALINOFF, _SPBLINOFF)