summaryrefslogtreecommitdiff
path: root/shared-core/nv40_graph.c
diff options
context:
space:
mode:
authorBen Skeggs <darktama@iinet.net.au>2007-01-02 15:56:10 +1100
committerBen Skeggs <darktama@iinet.net.au>2007-01-02 15:56:10 +1100
commit861017e6d50f5724c179717f995322c498ee15db (patch)
tree3e8551d9d7e4efce8449ab4aa0f72d5f5c3f2782 /shared-core/nv40_graph.c
parent41da9fd2e59b2af295c8f345586030e5a70d7a83 (diff)
nouveau: Hookup nv40_graph_init.
Now I can get 3D + working grctx switching on my NV40 without the binary driver initialising the card first. However, this change also breaks 3D on my C51 even *with* the binary driver's help. So, it's likely that the weird voodoo is card-specific.
Diffstat (limited to 'shared-core/nv40_graph.c')
-rw-r--r--shared-core/nv40_graph.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/shared-core/nv40_graph.c b/shared-core/nv40_graph.c
index 14379fdd..6e3ef2c2 100644
--- a/shared-core/nv40_graph.c
+++ b/shared-core/nv40_graph.c
@@ -426,6 +426,7 @@ nv40_graph_init(drm_device_t *dev)
drm_nouveau_private_t *dev_priv =
(drm_nouveau_private_t *)dev->dev_private;
uint32_t *ctx_voodoo;
+ uint32_t pg0220_inst;
int i;
switch (dev_priv->card_type) {
@@ -452,6 +453,14 @@ nv40_graph_init(drm_device_t *dev)
/* No context present currently */
NV_WRITE(0x40032C, 0x00000000);
+ /* No idea what this is for.. */
+ dev_priv->fb_obj = nouveau_dma_object_create(dev,
+ 0, nouveau_mem_fb_amount(dev),
+ NV_DMA_ACCESS_RW, NV_DMA_TARGET_VIDMEM);
+ pg0220_inst = nouveau_chip_instance_get(dev,
+ dev_priv->fb_obj->instance);
+ NV_WRITE(NV_PGRAPH_NV40_UNK220, pg0220_inst);
+
return 0;
}