summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/nouveau_sgdma.c8
-rw-r--r--shared-core/nouveau_object.c5
2 files changed, 13 insertions, 0 deletions
diff --git a/linux-core/nouveau_sgdma.c b/linux-core/nouveau_sgdma.c
index cc4d5a92..739e0252 100644
--- a/linux-core/nouveau_sgdma.c
+++ b/linux-core/nouveau_sgdma.c
@@ -48,7 +48,11 @@ nouveau_sgdma_populate(struct drm_ttm_backend *be, unsigned long num_pages,
page, o,
NV_CTXDMA_PAGE_SIZE,
PCI_DMA_BIDIRECTIONAL);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27))
+ if (pci_dma_mapping_error(nvbe->dev->pdev, nvbe->pagelist[d])) {
+#else
if (pci_dma_mapping_error(nvbe->pagelist[d])) {
+#endif
be->func->clear(be);
DRM_ERROR("pci_map_page failed\n");
return -EINVAL;
@@ -223,7 +227,11 @@ nouveau_sgdma_init(struct drm_device *dev)
dev_priv->gart_info.sg_dummy_page =
alloc_page(GFP_KERNEL|__GFP_DMA32);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27))
+ set_page_locked(dev_priv->gart_info.sg_dummy_page);
+#else
SetPageLocked(dev_priv->gart_info.sg_dummy_page);
+#endif
dev_priv->gart_info.sg_dummy_bus =
pci_map_page(dev->pdev, dev_priv->gart_info.sg_dummy_page, 0,
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
diff --git a/shared-core/nouveau_object.c b/shared-core/nouveau_object.c
index 894e7336..07b5a397 100644
--- a/shared-core/nouveau_object.c
+++ b/shared-core/nouveau_object.c
@@ -739,7 +739,12 @@ nouveau_gpuobj_dma_new(struct nouveau_channel *chan, int class,
PAGE_SIZE,
DMA_BIDIRECTIONAL);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27))
+ /* Not a 100% sure this is the right kdev in all cases. */
+ if (dma_mapping_error(&dev->primary->kdev, dev->sg->busaddr[idx])) {
+#else
if (dma_mapping_error(dev->sg->busaddr[idx])) {
+#endif
return -ENOMEM;
}
}