aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-05-24 00:57:53 -0400
committerBen Skeggs <bskeggs@redhat.com>2011-06-23 01:57:16 -0400
commite1b89b1ca59f558d4f7ec18e0b6a8eb34437c8d9 (patch)
treeb9425112ddf6acbbf3fd4d6b79e45900580ae22a
parent6f376460e42220dfd44711cff3ef8d0309e277d4 (diff)
drm/nvc0/gr: some initial state modifications
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nvc0_graph.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvc0_grctx.c16
2 files changed, 5 insertions, 13 deletions
diff --git a/drivers/gpu/drm/nouveau/nvc0_graph.c b/drivers/gpu/drm/nouveau/nvc0_graph.c
index a57fba3da941..c99b3caa568c 100644
--- a/drivers/gpu/drm/nouveau/nvc0_graph.c
+++ b/drivers/gpu/drm/nouveau/nvc0_graph.c
@@ -159,7 +159,7 @@ nvc0_graph_create_context_mmio_list(struct nouveau_channel *chan)
159 nv_wo32(grch->mmio, i++ * 4, 0x00405830); 159 nv_wo32(grch->mmio, i++ * 4, 0x00405830);
160 nv_wo32(grch->mmio, i++ * 4, magic); 160 nv_wo32(grch->mmio, i++ * 4, magic);
161 for (gpc = 0; gpc < priv->gpc_nr; gpc++) { 161 for (gpc = 0; gpc < priv->gpc_nr; gpc++) {
162 for (tp = 0; tp < priv->tp_nr[gpc]; tp++, magic += 0x02fc) { 162 for (tp = 0; tp < priv->tp_nr[gpc]; tp++, magic += 0x0324) {
163 u32 reg = 0x504520 + (gpc * 0x8000) + (tp * 0x0800); 163 u32 reg = 0x504520 + (gpc * 0x8000) + (tp * 0x0800);
164 nv_wo32(grch->mmio, i++ * 4, reg); 164 nv_wo32(grch->mmio, i++ * 4, reg);
165 nv_wo32(grch->mmio, i++ * 4, magic); 165 nv_wo32(grch->mmio, i++ * 4, magic);
diff --git a/drivers/gpu/drm/nouveau/nvc0_grctx.c b/drivers/gpu/drm/nouveau/nvc0_grctx.c
index b74f84cc0c53..3ac376235d29 100644
--- a/drivers/gpu/drm/nouveau/nvc0_grctx.c
+++ b/drivers/gpu/drm/nouveau/nvc0_grctx.c
@@ -1531,21 +1531,11 @@ nvc0_grctx_generate_ccache(struct drm_device *dev)
1531static void 1531static void
1532nvc0_grctx_generate_rop(struct drm_device *dev) 1532nvc0_grctx_generate_rop(struct drm_device *dev)
1533{ 1533{
1534 struct drm_nouveau_private *dev_priv = dev->dev_private;
1535
1536 /* ROPC_BROADCAST */ 1534 /* ROPC_BROADCAST */
1537 nv_wr32(dev, 0x408800, 0x02802a3c); 1535 nv_wr32(dev, 0x408800, 0x02802a3c);
1538 nv_wr32(dev, 0x408804, 0x00000040); 1536 nv_wr32(dev, 0x408804, 0x00000040);
1539 nv_wr32(dev, 0x408808, 0x0003e00d); 1537 nv_wr32(dev, 0x408808, 0x0003e00d);
1540 switch (dev_priv->chipset) { 1538 nv_wr32(dev, 0x408900, 0x3080b801);
1541 case 0xc0:
1542 nv_wr32(dev, 0x408900, 0x0080b801);
1543 break;
1544 case 0xc3:
1545 case 0xc4:
1546 nv_wr32(dev, 0x408900, 0x3080b801);
1547 break;
1548 }
1549 nv_wr32(dev, 0x408904, 0x02000001); 1539 nv_wr32(dev, 0x408904, 0x02000001);
1550 nv_wr32(dev, 0x408908, 0x00c80929); 1540 nv_wr32(dev, 0x408908, 0x00c80929);
1551 nv_wr32(dev, 0x40890c, 0x00000000); 1541 nv_wr32(dev, 0x40890c, 0x00000000);
@@ -1639,6 +1629,8 @@ nvc0_grctx_generate_tp(struct drm_device *dev)
1639 struct drm_nouveau_private *dev_priv = dev->dev_private; 1629 struct drm_nouveau_private *dev_priv = dev->dev_private;
1640 1630
1641 /* GPC_BROADCAST.TP_BROADCAST */ 1631 /* GPC_BROADCAST.TP_BROADCAST */
1632 nv_wr32(dev, 0x419818, 0x00000000);
1633 nv_wr32(dev, 0x41983c, 0x00038bc7);
1642 nv_wr32(dev, 0x419848, 0x00000000); 1634 nv_wr32(dev, 0x419848, 0x00000000);
1643 nv_wr32(dev, 0x419864, 0x0000012a); 1635 nv_wr32(dev, 0x419864, 0x0000012a);
1644 nv_wr32(dev, 0x419888, 0x00000000); 1636 nv_wr32(dev, 0x419888, 0x00000000);
@@ -1665,7 +1657,7 @@ nvc0_grctx_generate_tp(struct drm_device *dev)
1665 nv_wr32(dev, 0x419c04, 0x00000006); 1657 nv_wr32(dev, 0x419c04, 0x00000006);
1666 nv_wr32(dev, 0x419c08, 0x00000002); 1658 nv_wr32(dev, 0x419c08, 0x00000002);
1667 nv_wr32(dev, 0x419c20, 0x00000000); 1659 nv_wr32(dev, 0x419c20, 0x00000000);
1668 nv_wr32(dev, 0x419cbc, 0x28137606); 1660 nv_wr32(dev, 0x419cb0, 0x00060048);
1669 nv_wr32(dev, 0x419ce8, 0x00000000); 1661 nv_wr32(dev, 0x419ce8, 0x00000000);
1670 nv_wr32(dev, 0x419cf4, 0x00000183); 1662 nv_wr32(dev, 0x419cf4, 0x00000183);
1671 nv_wr32(dev, 0x419d20, 0x02180000); 1663 nv_wr32(dev, 0x419d20, 0x02180000);