diff options
-rw-r--r-- | linux-core/nouveau_sgdma.c | 8 | ||||
-rw-r--r-- | shared-core/nouveau_object.c | 5 |
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; } } |