diff mbox

[8/9] drm/ttm: remove io_ field from TTM V2

Message ID 1267117309-1266-9-git-send-email-jglisse@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jerome Glisse Feb. 25, 2010, 5:01 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 2a808fc..3bdd44d 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -79,8 +79,6 @@  static void ttm_mem_type_debug(struct ttm_bo_device *bdev, int mem_type)
 	printk(KERN_ERR TTM_PFX "    use_type: %d\n", man->use_type);
 	printk(KERN_ERR TTM_PFX "    flags: 0x%08X\n", man->flags);
 	printk(KERN_ERR TTM_PFX "    gpu_offset: 0x%08lX\n", man->gpu_offset);
-	printk(KERN_ERR TTM_PFX "    io_offset: 0x%08lX\n", man->io_offset);
-	printk(KERN_ERR TTM_PFX "    io_size: %ld\n", man->io_size);
 	printk(KERN_ERR TTM_PFX "    size: %llu\n", man->size);
 	printk(KERN_ERR TTM_PFX "    available_caching: 0x%08X\n",
 		man->available_caching);
@@ -1560,26 +1558,6 @@  bool ttm_mem_reg_is_pci(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
 	return true;
 }
 
-int ttm_bo_pci_offset(struct ttm_bo_device *bdev,
-		      struct ttm_mem_reg *mem,
-		      unsigned long *bus_base,
-		      unsigned long *bus_offset, unsigned long *bus_size)
-{
-	struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
-
-	*bus_size = 0;
-	if (!(man->flags & TTM_MEMTYPE_FLAG_MAPPABLE))
-		return -EINVAL;
-
-	if (ttm_mem_reg_is_pci(bdev, mem)) {
-		*bus_offset = mem->mm_node->start << PAGE_SHIFT;
-		*bus_size = mem->num_pages << PAGE_SHIFT;
-		*bus_base = man->io_offset;
-	}
-
-	return 0;
-}
-
 void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo)
 {
 	struct ttm_bo_device *bdev = bo->bdev;
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index efce42c..9d601c3 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -90,17 +90,9 @@  int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem,
 	void *addr;
 
 	*virtual = NULL;
-	if (bdev->driver->io_mem_reserve) {
-		ret = bdev->driver->io_mem_reserve(bdev, mem, &pl);
-		if (unlikely(ret != 0)) {
-			return ret;
-		}
-	} else {
-		ret = ttm_bo_pci_offset(bdev, mem, &pl.base, &pl.offset, &pl.size);
-		if (unlikely(ret != 0) || pl.size == 0) {
-			return ret;
-		}
-		pl.is_iomem = (pl.size != 0);
+	ret = bdev->driver->io_mem_reserve(bdev, mem, &pl);
+	if (unlikely(ret != 0)) {
+		return ret;
 	}
 
 	if (!(man->flags & TTM_MEMTYPE_FLAG_NEEDS_IOREMAP))
@@ -393,7 +385,7 @@  static int ttm_bo_ioremap(struct ttm_buffer_object *bo,
 
 	if (!(man->flags & TTM_MEMTYPE_FLAG_NEEDS_IOREMAP)) {
 		map->bo_kmap_type = ttm_bo_map_premapped;
-		map->virtual = (void *)(((u8 *) man->io_addr) + bus_offset);
+		map->virtual = (void *)(bus_base + bus_offset);
 	} else {
 		map->bo_kmap_type = ttm_bo_map_iomap;
 		if (mem->placement & TTM_PL_FLAG_WC)
@@ -468,17 +460,9 @@  int ttm_bo_kmap(struct ttm_buffer_object *bo,
 	if (num_pages > 1 && !DRM_SUSER(DRM_CURPROC))
 		return -EPERM;
 #endif
-	if (bo->bdev->driver->io_mem_reserve) {
-		ret = bo->bdev->driver->io_mem_reserve(bo->bdev, &bo->mem, &pl);
-		if (unlikely(ret != 0)) {
-			return ret;
-		}
-	} else {
-		ret = ttm_bo_pci_offset(bo->bdev, &bo->mem, &pl.base, &pl.offset, &pl.size);
-		if (unlikely(ret != 0)) {
-			return ret;
-		}
-		pl.is_iomem = (pl.size != 0);
+	ret = bo->bdev->driver->io_mem_reserve(bo->bdev, &bo->mem, &pl);
+	if (unlikely(ret != 0)) {
+		return ret;
 	}
 	if (!pl.is_iomem) {
 		return ttm_bo_kmap_ttm(bo, start_page, num_pages, map);
diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
index fe4ac95..7afe239 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -101,27 +101,18 @@  static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 	if (bdev->driver->fault_reserve_notify)
 		bdev->driver->fault_reserve_notify(bo);
 
-	if (bdev->driver->fault_reserve) {
-		ret = bdev->driver->fault_reserve(bo, &pl);
-		switch (ret) {
-		case 0:
-			break;
-		case -EBUSY:
-			set_need_resched();
-		case -ERESTARTSYS:
-			retval = VM_FAULT_NOPAGE;
-			goto out_unlock;
-		default:
-			retval = VM_FAULT_SIGBUS;
-			goto out_unlock;
-		}
-	} else {
-		ret = ttm_bo_pci_offset(bdev, &bo->mem, &pl.base, &pl.offset, &pl.size);
-		if (unlikely(ret != 0)) {
-			retval = VM_FAULT_SIGBUS;
-			goto out_unlock;
-		}
-		pl.is_iomem = (pl.size != 0);
+	ret = bdev->driver->fault_reserve(bo, &pl);
+	switch (ret) {
+	case 0:
+		break;
+	case -EBUSY:
+		set_need_resched();
+	case -ERESTARTSYS:
+		retval = VM_FAULT_NOPAGE;
+		goto out_unlock;
+	default:
+		retval = VM_FAULT_SIGBUS;
+		goto out_unlock;
 	}
 
 	/*
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index 1deb2dd..ad13108 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -190,13 +190,6 @@  struct ttm_tt {
  * managed by this memory type.
  * @gpu_offset: If used, the GPU offset of the first managed page of
  * fixed memory or the first managed location in an aperture.
- * @io_offset: The io_offset of the first managed page of IO memory or
- * the first managed location in an aperture. For TTM_MEMTYPE_FLAG_CMA
- * memory, this should be set to NULL.
- * @io_size: The size of a managed IO region (fixed memory or aperture).
- * @io_addr: Virtual kernel address if the io region is pre-mapped. For
- * TTM_MEMTYPE_FLAG_NEEDS_IOREMAP there is no pre-mapped io map and
- * @io_addr should be set to NULL.
  * @size: Size of the managed region.
  * @available_caching: A mask of available caching types, TTM_PL_FLAG_XX,
  * as defined in ttm_placement_common.h
@@ -222,9 +215,6 @@  struct ttm_mem_type_manager {
 	bool use_type;
 	uint32_t flags;
 	unsigned long gpu_offset;
-	unsigned long io_offset;
-	unsigned long io_size;
-	void *io_addr;
 	uint64_t size;
 	uint32_t available_caching;
 	uint32_t default_caching;