summaryrefslogtreecommitdiff
path: root/shared-core/nv40_graph.c
diff options
context:
space:
mode:
authorBen Skeggs <darktama@iinet.net.au>2007-01-06 17:50:00 +1100
committerBen Skeggs <darktama@iinet.net.au>2007-01-06 17:50:00 +1100
commitdbb0d979cc6c4e1f444cdbbf6dc3571c3818ea39 (patch)
tree44abbee871e2613ab13d0ef992c076a830f6457b /shared-core/nv40_graph.c
parent528ab8ce4038397c043b05a46f95c666a985f7a3 (diff)
nouveau: Use PMC_BOOT_0 to determine which ctx_voodoo to load.
Diffstat (limited to 'shared-core/nv40_graph.c')
-rw-r--r--shared-core/nv40_graph.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/shared-core/nv40_graph.c b/shared-core/nv40_graph.c
index 6e3ef2c2..6a4f138e 100644
--- a/shared-core/nv40_graph.c
+++ b/shared-core/nv40_graph.c
@@ -427,13 +427,16 @@ nv40_graph_init(drm_device_t *dev)
(drm_nouveau_private_t *)dev->dev_private;
uint32_t *ctx_voodoo;
uint32_t pg0220_inst;
- int i;
+ int i, chipset;
- switch (dev_priv->card_type) {
- case NV_40:
+ chipset = (NV_READ(NV_PMC_BOOT_0) & 0x0ff00000) >> 20;
+ DRM_DEBUG("chipset (from PMC_BOOT_0): NV0x%02X\n", chipset);
+ switch (chipset) {
+ case 0x40:
ctx_voodoo = nv40_ctx_voodoo;
break;
default:
+ DRM_ERROR("Unknown ctx_voodoo for chipset 0x%02x\n", chipset);
ctx_voodoo = NULL;
break;
}