aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-12-31 21:26:23 -0500
committerBen Skeggs <bskeggs@redhat.com>2010-12-31 21:26:23 -0500
commit47a44d27ca246b815de2b4223daf86070315fb8d (patch)
treec7c8f1edb652081d1ab809f5cfe2a477ee0c75e7 /drivers/gpu/drm
parent680a48720f55d2f21cbf45c1f7ca38d6b73471dc (diff)
drm/nvc0/pgraph: fix 0x406028/0x405870 init
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/nouveau/nvc0_grctx.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nvc0_grctx.c b/drivers/gpu/drm/nouveau/nvc0_grctx.c
index a45cdc49450..b9e68b2d30a 100644
--- a/drivers/gpu/drm/nouveau/nvc0_grctx.c
+++ b/drivers/gpu/drm/nouveau/nvc0_grctx.c
@@ -1801,7 +1801,7 @@ nvc0_grctx_generate(struct nouveau_channel *chan)
1801 struct nvc0_graph_chan *grch = chan->pgraph_ctx; 1801 struct nvc0_graph_chan *grch = chan->pgraph_ctx;
1802 struct drm_device *dev = chan->dev; 1802 struct drm_device *dev = chan->dev;
1803 int i, gpc, tp, id; 1803 int i, gpc, tp, id;
1804 u32 r000260; 1804 u32 r000260, tmp;
1805 1805
1806 r000260 = nv_rd32(dev, 0x000260); 1806 r000260 = nv_rd32(dev, 0x000260);
1807 nv_wr32(dev, 0x000260, r000260 & ~1); 1807 nv_wr32(dev, 0x000260, r000260 & ~1);
@@ -1843,8 +1843,12 @@ nvc0_grctx_generate(struct nouveau_channel *chan)
1843 } 1843 }
1844 } 1844 }
1845 1845
1846 nv_wr32(dev, 0x406028, 0x00000443); 1846 tmp = 0;
1847 nv_wr32(dev, 0x405870, 0x00000443); 1847 for (i = 0; i < priv->gpc_nr; i++)
1848 tmp |= priv->tp_nr[i] << (i * 4);
1849 nv_wr32(dev, 0x406028, tmp);
1850 nv_wr32(dev, 0x405870, tmp);
1851
1848 nv_wr32(dev, 0x40602c, 0x00000000); 1852 nv_wr32(dev, 0x40602c, 0x00000000);
1849 nv_wr32(dev, 0x405874, 0x00000000); 1853 nv_wr32(dev, 0x405874, 0x00000000);
1850 nv_wr32(dev, 0x406030, 0x00000000); 1854 nv_wr32(dev, 0x406030, 0x00000000);