diff options
| author | Ben Skeggs <darktama@iinet.net.au> | 2006-12-12 00:11:42 +1100 | 
|---|---|---|
| committer | Ben Skeggs <darktama@iinet.net.au> | 2006-12-12 00:11:42 +1100 | 
| commit | 1a40f3318c2660b83f64f7ed189d0f1692644ee4 (patch) | |
| tree | 9dd238581f10208d9d2eb7495d81af51ffeeb7a2 | |
| parent | 30acb90a6077798b1e0c4927273067500905d6d1 (diff) | |
Port remaining NV4 RAMIN access from the ddx into the drm.
Should fix lockups seen on NV4 cards.
| -rw-r--r-- | shared-core/nouveau_fifo.c | 13 | 
1 files changed, 12 insertions, 1 deletions
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");  | 
