Pierre Moreau
2014-Jun-13 00:34 UTC
[Nouveau] [PATCH 1/2] drm/nouveau: Fix overlap while zeroing zcull regions
The specified stride was not correct, resulting in erases overlapping and part of the zcull regions being not erased at all. Signed-off-by: Pierre Moreau <pierre.morrow at free.fr> --- drivers/gpu/drm/nouveau/core/engine/graph/nv50.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c b/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c index 2c7809e..a36adcd 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c +++ b/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c @@ -991,10 +991,10 @@ nv50_graph_init(struct nouveau_object *object) /* zero out zcull regions */ for (i = 0; i < 8; i++) { - nv_wr32(priv, 0x402c20 + (i * 8), 0x00000000); - nv_wr32(priv, 0x402c24 + (i * 8), 0x00000000); - nv_wr32(priv, 0x402c28 + (i * 8), 0x00000000); - nv_wr32(priv, 0x402c2c + (i * 8), 0x00000000); + nv_wr32(priv, 0x402c20 + (i * 0x10), 0x00000000); + nv_wr32(priv, 0x402c24 + (i * 0x10), 0x00000000); + nv_wr32(priv, 0x402c28 + (i * 0x10), 0x00000000); + nv_wr32(priv, 0x402c2c + (i * 0x10), 0x00000000); } return 0; } -- 2.0.0
Pierre Moreau
2014-Jun-13 00:34 UTC
[Nouveau] [PATCH 2/2] drm/nouveau: Remove an unneeded write while initialising PGRAPH
The blob does not seem to write at that place for my NVAC, though it does for my NV96, agreeing with what is done in the if/else structure below. I guess someone forgot to remove the line when the if/else was put in place. Signed-off-by: Pierre Moreau <pierre.morrow at free.fr> --- drivers/gpu/drm/nouveau/core/engine/graph/nv50.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c b/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c index a36adcd..ca1b886 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c +++ b/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c @@ -976,7 +976,6 @@ nv50_graph_init(struct nouveau_object *object) break; case 0xa0: default: - nv_wr32(priv, 0x402cc0, 0x00000000); if (nv_device(priv)->chipset == 0xa0 || nv_device(priv)->chipset == 0xaa || nv_device(priv)->chipset == 0xac) { -- 2.0.0
Ben Skeggs
2014-Jun-13 02:08 UTC
[Nouveau] [PATCH 1/2] drm/nouveau: Fix overlap while zeroing zcull regions
On Fri, Jun 13, 2014 at 10:34 AM, Pierre Moreau <pierre.morrow at free.fr> wrote:> The specified stride was not correct, resulting in erases overlapping and part > of the zcull regions being not erased at all.Hey Pierre, Thanks, I've merged both patches.> > Signed-off-by: Pierre Moreau <pierre.morrow at free.fr> > --- > drivers/gpu/drm/nouveau/core/engine/graph/nv50.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c b/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c > index 2c7809e..a36adcd 100644 > --- a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c > +++ b/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c > @@ -991,10 +991,10 @@ nv50_graph_init(struct nouveau_object *object) > > /* zero out zcull regions */ > for (i = 0; i < 8; i++) { > - nv_wr32(priv, 0x402c20 + (i * 8), 0x00000000); > - nv_wr32(priv, 0x402c24 + (i * 8), 0x00000000); > - nv_wr32(priv, 0x402c28 + (i * 8), 0x00000000); > - nv_wr32(priv, 0x402c2c + (i * 8), 0x00000000); > + nv_wr32(priv, 0x402c20 + (i * 0x10), 0x00000000); > + nv_wr32(priv, 0x402c24 + (i * 0x10), 0x00000000); > + nv_wr32(priv, 0x402c28 + (i * 0x10), 0x00000000); > + nv_wr32(priv, 0x402c2c + (i * 0x10), 0x00000000); > } > return 0; > } > -- > 2.0.0 > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/nouveau