summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Huillet <arthur.huillet@free.fr>2007-07-11 14:56:27 +0200
committerArthur Huillet <arthur.huillet@free.fr>2007-07-11 14:56:27 +0200
commitd26ae22c2b17e0f193334cefec7d141befcfa1ee (patch)
tree5dfe58b9dddbf18414276203335d5efdef78bbb5
parent5ccadac9e3b1beb8ac0177c7a39862094fe3b6de (diff)
fixed bug that prevented PCIE cards from actually using PCIGART - NV50 will probably still have a problem
-rw-r--r--shared-core/nouveau_fifo.c2
-rw-r--r--shared-core/nouveau_mem.c5
-rw-r--r--shared-core/nouveau_state.c4
3 files changed, 5 insertions, 6 deletions
diff --git a/shared-core/nouveau_fifo.c b/shared-core/nouveau_fifo.c
index fcdc14c8..88f66d70 100644
--- a/shared-core/nouveau_fifo.c
+++ b/shared-core/nouveau_fifo.c
@@ -217,7 +217,7 @@ nouveau_fifo_cmdbuf_alloc(struct drm_device *dev, int channel)
cb->size,
NV_DMA_ACCESS_RO, NV_DMA_TARGET_AGP, &pushbuf);
} else if ( cb->flags & NOUVEAU_MEM_PCI) {
- DRM_DEBUG("Creating CB in PCI memory starting at virt 0x%08llx size %d\n", cb->start, cb->size);
+ DRM_DEBUG("Creating CB in PCI memory\n", cb->start, cb->size);
ret = nouveau_gpuobj_dma_new(dev, channel,
NV_CLASS_DMA_IN_MEMORY,
cb->start,
diff --git a/shared-core/nouveau_mem.c b/shared-core/nouveau_mem.c
index 79f94fd4..c545acf2 100644
--- a/shared-core/nouveau_mem.c
+++ b/shared-core/nouveau_mem.c
@@ -345,9 +345,9 @@ int nouveau_mem_init(struct drm_device *dev)
dev_priv->agp_phys = info.aperture_base;
dev_priv->agp_available_size = info.aperture_size;
+ goto have_agp;
}
-goto have_agp;
no_agp:
dev_priv->pci_heap = NULL;
DRM_DEBUG("Allocating sg memory for PCI DMA\n");
@@ -357,8 +357,7 @@ no_agp:
goto no_pci;
}
- DRM_DEBUG("Got %d KiB\n", (dev->sg->pages * PAGE_SIZE) >> 10);
- if ( nouveau_mem_init_heap(&dev_priv->pci_heap, dev->sg->virtual, dev->sg->pages * PAGE_SIZE))
+ if ( nouveau_mem_init_heap(&dev_priv->pci_heap, (uint64_t) dev->sg->virtual, dev->sg->pages * PAGE_SIZE))
{
DRM_ERROR("Unable to initialize pci_heap!");
goto no_pci;
diff --git a/shared-core/nouveau_state.c b/shared-core/nouveau_state.c
index 14b33a4a..fe3db168 100644
--- a/shared-core/nouveau_state.c
+++ b/shared-core/nouveau_state.c
@@ -445,11 +445,11 @@ int nouveau_ioctl_getparam(DRM_IOCTL_ARGS)
break;
case NOUVEAU_GETPARAM_PCI_PHYSICAL:
if ( dev -> sg )
- getparam.value=dev->sg->virtual;
+ getparam.value=(uint64_t) dev->sg->virtual;
else
{
DRM_ERROR("Requested PCIGART address, while no PCIGART was created\n");
- DRM_ERR(EINVAL);
+ return DRM_ERR(EINVAL);
}
break;
case NOUVEAU_GETPARAM_FB_SIZE: