drm/nouveau: store bo's page size in nouveau_bo
[pandora-kernel.git] / drivers / gpu / drm / nouveau / nouveau_mem.c
index 2960f58..f55b51b 100644 (file)
@@ -397,7 +397,7 @@ nouveau_mem_vram_init(struct drm_device *dev)
                if (pci_dma_supported(dev->pdev, DMA_BIT_MASK(40)))
                        dma_bits = 40;
        } else
-       if (drm_pci_device_is_pcie(dev) &&
+       if (0 && drm_pci_device_is_pcie(dev) &&
            dev_priv->chipset  > 0x40 &&
            dev_priv->chipset != 0x45) {
                if (pci_dma_supported(dev->pdev, DMA_BIT_MASK(39)))
@@ -794,7 +794,7 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
        int ret;
 
        if (nvbo->tile_flags & NOUVEAU_GEM_TILE_NONCONTIG)
-               size_nc = 1 << nvbo->vma.node->type;
+               size_nc = 1 << nvbo->page_shift;
 
        ret = vram->get(dev, mem->num_pages << PAGE_SHIFT,
                        mem->page_alignment << PAGE_SHIFT, size_nc,
@@ -804,9 +804,7 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
                return (ret == -ENOSPC) ? 0 : ret;
        }
 
-       node->page_shift = 12;
-       if (nvbo->vma.node)
-               node->page_shift = nvbo->vma.node->type;
+       node->page_shift = nvbo->page_shift;
 
        mem->mm_node = node;
        mem->start   = node->offset >> PAGE_SHIFT;
@@ -868,7 +866,9 @@ nouveau_gart_manager_del(struct ttm_mem_type_manager *man,
                nouveau_vm_unmap(&node->tmp_vma);
                nouveau_vm_put(&node->tmp_vma);
        }
+
        mem->mm_node = NULL;
+       kfree(node);
 }
 
 static int