nouveau/nv50: hack up initial channel context from current state
authorBen Skeggs <skeggsb@gmail.com>
Wed, 8 Aug 2007 03:01:29 +0000 (13:01 +1000)
committerBen Skeggs <skeggsb@gmail.com>
Wed, 8 Aug 2007 03:01:29 +0000 (13:01 +1000)
We really should be providing static values like the nv40 PGRAPH code does,
however, this will do for now to keep X at least working.

shared-core/nv50_graph.c

index f98fe60..e5bbf65 100644 (file)
@@ -202,6 +202,7 @@ nv50_graph_create_context(struct nouveau_channel *chan)
 {
        struct drm_device *dev = chan->dev;
        struct drm_nouveau_private *dev_priv = dev->dev_private;
+       struct nouveau_engine *engine = &dev_priv->Engine;
        struct nouveau_gpuobj *ramin = chan->ramin->gpuobj;
        int grctx_size = 0x60000, hdr;
        int ret;
@@ -224,6 +225,11 @@ nv50_graph_create_context(struct nouveau_channel *chan)
        INSTANCE_WR(ramin, (hdr + 0x10)/4, 0);
        INSTANCE_WR(ramin, (hdr + 0x14)/4, 0x00010000);
 
+       if ((ret = engine->graph.load_context(chan))) {
+               DRM_ERROR("Error hacking up initial context: %d\n", ret);
+               return ret;
+       }
+
        return 0;
 }