drm/radeon/kms: Convert radeon to new ttm_bo_init
authorJerome Glisse <jglisse@redhat.com>
Thu, 10 Dec 2009 16:16:28 +0000 (17:16 +0100)
committerDave Airlie <airlied@redhat.com>
Fri, 11 Dec 2009 04:09:27 +0000 (14:09 +1000)
Now bo init use placement structure like bo validation does.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_object.c

index 2040937..544e18f 100644 (file)
@@ -56,25 +56,6 @@ static void radeon_ttm_bo_destroy(struct ttm_buffer_object *tbo)
        kfree(bo);
 }
 
-static inline u32 radeon_ttm_flags_from_domain(u32 domain)
-{
-       u32 flags = 0;
-
-       if (domain & RADEON_GEM_DOMAIN_VRAM) {
-               flags |= TTM_PL_FLAG_VRAM | TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
-       }
-       if (domain & RADEON_GEM_DOMAIN_GTT) {
-               flags |= TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING;
-       }
-       if (domain & RADEON_GEM_DOMAIN_CPU) {
-               flags |= TTM_PL_FLAG_SYSTEM | TTM_PL_MASK_CACHING;
-       }
-       if (!flags) {
-               flags |= TTM_PL_FLAG_SYSTEM | TTM_PL_MASK_CACHING;
-       }
-       return flags;
-}
-
 void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain)
 {
        u32 c = 0;
@@ -100,7 +81,6 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
 {
        struct radeon_bo *bo;
        enum ttm_bo_type type;
-       u32 flags;
        int r;
 
        if (unlikely(rdev->mman.bdev.dev_mapping == NULL)) {
@@ -120,16 +100,16 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
        bo->surface_reg = -1;
        INIT_LIST_HEAD(&bo->list);
 
-       flags = radeon_ttm_flags_from_domain(domain);
+       radeon_ttm_placement_from_domain(bo, domain);
        /* Kernel allocation are uninterruptible */
-       r = ttm_buffer_object_init(&rdev->mman.bdev, &bo->tbo, size, type,
-                                       flags, 0, 0, !kernel, NULL, size,
-                                       &radeon_ttm_bo_destroy);
+       r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
+                       &bo->placement, 0, 0, !kernel, NULL, size,
+                       &radeon_ttm_bo_destroy);
        if (unlikely(r != 0)) {
                if (r != -ERESTARTSYS)
                        dev_err(rdev->dev,
-                               "object_init failed for (%ld, 0x%08X)\n",
-                               size, flags);
+                               "object_init failed for (%lu, 0x%08X)\n",
+                               size, domain);
                return r;
        }
        *bo_ptr = bo;
@@ -199,7 +179,7 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
        radeon_ttm_placement_from_domain(bo, domain);
        for (i = 0; i < bo->placement.num_placement; i++)
                bo->placements[i] |= TTM_PL_FLAG_NO_EVICT;
-       r = ttm_buffer_object_validate(&bo->tbo, &bo->placement, false, false);
+       r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false);
        if (likely(r == 0)) {
                bo->pin_count = 1;
                if (gpu_addr != NULL)
@@ -223,7 +203,7 @@ int radeon_bo_unpin(struct radeon_bo *bo)
                return 0;
        for (i = 0; i < bo->placement.num_placement; i++)
                bo->placements[i] &= ~TTM_PL_FLAG_NO_EVICT;
-       r = ttm_buffer_object_validate(&bo->tbo, &bo->placement, false, false);
+       r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false);
        if (unlikely(r != 0))
                dev_err(bo->rdev->dev, "%p validate failed for unpin\n", bo);
        return r;
@@ -336,8 +316,7 @@ int radeon_bo_list_validate(struct list_head *head, void *fence)
                                radeon_ttm_placement_from_domain(bo,
                                                                lobj->rdomain);
                        }
-                       r = ttm_buffer_object_validate(&bo->tbo,
-                                               &bo->placement,
+                       r = ttm_bo_validate(&bo->tbo, &bo->placement,
                                                true, false);
                        if (unlikely(r))
                                return r;