summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Huillet <arthur.huillet@free.fr>2007-07-27 15:48:04 +0200
committerArthur Huillet <arthur.huillet@free.fr>2007-07-27 15:48:04 +0200
commitf01026eae69e81ae16a69a014ba3bcfb286fc7a4 (patch)
tree4866182df7dcf3355cd096ea69c419063602c6b7
parent4175dd818110bd10d6d09190d30c271e89202b18 (diff)
nouveau: creating notifier in PCI memory for PCIGART
-rw-r--r--shared-core/nouveau_notifier.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/shared-core/nouveau_notifier.c b/shared-core/nouveau_notifier.c
index 24a306e8..7a982ba4 100644
--- a/shared-core/nouveau_notifier.c
+++ b/shared-core/nouveau_notifier.c
@@ -41,10 +41,13 @@ nouveau_notifier_init_channel(struct drm_device *dev, int channel,
if (dev_priv->agp_heap &&
dev_priv->gart_info.type != NOUVEAU_GART_SGDMA)
flags = NOUVEAU_MEM_AGP | NOUVEAU_MEM_FB_ACCEPTABLE;
+ else if ( dev_priv->pci_heap )
+ flags = NOUVEAU_MEM_PCI;
else
flags = NOUVEAU_MEM_FB;
flags |= NOUVEAU_MEM_MAPPED;
+DRM_DEBUG("Allocating notifier block in %d\n", flags);
chan->notifier_block = nouveau_mem_alloc(dev, 0, PAGE_SIZE, flags,
file_priv);
if (!chan->notifier_block)
@@ -102,6 +105,8 @@ nouveau_notifier_alloc(struct drm_device *dev, int channel, uint32_t handle,
target = NV_DMA_TARGET_VIDMEM;
} else if (chan->notifier_block->flags & NOUVEAU_MEM_AGP) {
target = NV_DMA_TARGET_AGP;
+ } else if (chan->notifier_block->flags & NOUVEAU_MEM_PCI) {
+ target = NV_DMA_TARGET_PCI_NONLINEAR;
} else {
DRM_ERROR("Bad DMA target, flags 0x%08x!\n",
chan->notifier_block->flags);