From 1a40f3318c2660b83f64f7ed189d0f1692644ee4 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Tue, 12 Dec 2006 00:11:42 +1100 Subject: Port remaining NV4 RAMIN access from the ddx into the drm. Should fix lockups seen on NV4 cards. --- shared-core/nouveau_fifo.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/shared-core/nouveau_fifo.c b/shared-core/nouveau_fifo.c index 67c790b4..a611e438 100644 --- a/shared-core/nouveau_fifo.c +++ b/shared-core/nouveau_fifo.c @@ -434,13 +434,24 @@ static int nouveau_fifo_alloc(drm_device_t* dev,drm_nouveau_fifo_alloc_t* init, dev_priv->cmdbuf_alloc->size, NV_DMA_ACCESS_RO, NV_DMA_TARGET_AGP); - } else { + + } else if (dev_priv->card_type != NV_04) { cb_obj = nouveau_dma_object_create(dev, dev_priv->cmdbuf_alloc->start - drm_get_resource_start(dev, 1), dev_priv->cmdbuf_alloc->size, NV_DMA_ACCESS_RO, NV_DMA_TARGET_VIDMEM); + } else { + /* NV04 cmdbuf hack, from original ddx.. not sure of it's + * exact reason for existing :) PCI access to cmdbuf in + * VRAM. + */ + cb_obj = nouveau_dma_object_create(dev, + dev_priv->cmdbuf_alloc->start, + dev_priv->cmdbuf_alloc->size, + NV_DMA_ACCESS_RO, + NV_DMA_TARGET_PCI); } if (!cb_obj) { DRM_ERROR("unable to alloc object for command buffer\n"); -- cgit v1.2.3