diff options
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c')
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c index 3ce68a2e312d..5fae06ad7e25 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | |||
| @@ -60,13 +60,13 @@ int vmw_dmabuf_to_placement(struct vmw_private *dev_priv, | |||
| 60 | if (unlikely(ret != 0)) | 60 | if (unlikely(ret != 0)) |
| 61 | return ret; | 61 | return ret; |
| 62 | 62 | ||
| 63 | vmw_execbuf_release_pinned_bo(dev_priv, false, 0); | 63 | vmw_execbuf_release_pinned_bo(dev_priv); |
| 64 | 64 | ||
| 65 | ret = ttm_bo_reserve(bo, interruptible, false, false, 0); | 65 | ret = ttm_bo_reserve(bo, interruptible, false, false, 0); |
| 66 | if (unlikely(ret != 0)) | 66 | if (unlikely(ret != 0)) |
| 67 | goto err; | 67 | goto err; |
| 68 | 68 | ||
| 69 | ret = ttm_bo_validate(bo, placement, interruptible, false, false); | 69 | ret = ttm_bo_validate(bo, placement, interruptible, false); |
| 70 | 70 | ||
| 71 | ttm_bo_unreserve(bo); | 71 | ttm_bo_unreserve(bo); |
| 72 | 72 | ||
| @@ -105,7 +105,7 @@ int vmw_dmabuf_to_vram_or_gmr(struct vmw_private *dev_priv, | |||
| 105 | return ret; | 105 | return ret; |
| 106 | 106 | ||
| 107 | if (pin) | 107 | if (pin) |
| 108 | vmw_execbuf_release_pinned_bo(dev_priv, false, 0); | 108 | vmw_execbuf_release_pinned_bo(dev_priv); |
| 109 | 109 | ||
| 110 | ret = ttm_bo_reserve(bo, interruptible, false, false, 0); | 110 | ret = ttm_bo_reserve(bo, interruptible, false, false, 0); |
| 111 | if (unlikely(ret != 0)) | 111 | if (unlikely(ret != 0)) |
| @@ -123,7 +123,7 @@ int vmw_dmabuf_to_vram_or_gmr(struct vmw_private *dev_priv, | |||
| 123 | else | 123 | else |
| 124 | placement = &vmw_vram_gmr_placement; | 124 | placement = &vmw_vram_gmr_placement; |
| 125 | 125 | ||
| 126 | ret = ttm_bo_validate(bo, placement, interruptible, false, false); | 126 | ret = ttm_bo_validate(bo, placement, interruptible, false); |
| 127 | if (likely(ret == 0) || ret == -ERESTARTSYS) | 127 | if (likely(ret == 0) || ret == -ERESTARTSYS) |
| 128 | goto err_unreserve; | 128 | goto err_unreserve; |
| 129 | 129 | ||
| @@ -138,7 +138,7 @@ int vmw_dmabuf_to_vram_or_gmr(struct vmw_private *dev_priv, | |||
| 138 | else | 138 | else |
| 139 | placement = &vmw_vram_placement; | 139 | placement = &vmw_vram_placement; |
| 140 | 140 | ||
| 141 | ret = ttm_bo_validate(bo, placement, interruptible, false, false); | 141 | ret = ttm_bo_validate(bo, placement, interruptible, false); |
| 142 | 142 | ||
| 143 | err_unreserve: | 143 | err_unreserve: |
| 144 | ttm_bo_unreserve(bo); | 144 | ttm_bo_unreserve(bo); |
| @@ -214,8 +214,7 @@ int vmw_dmabuf_to_start_of_vram(struct vmw_private *dev_priv, | |||
| 214 | return ret; | 214 | return ret; |
| 215 | 215 | ||
| 216 | if (pin) | 216 | if (pin) |
| 217 | vmw_execbuf_release_pinned_bo(dev_priv, false, 0); | 217 | vmw_execbuf_release_pinned_bo(dev_priv); |
| 218 | |||
| 219 | ret = ttm_bo_reserve(bo, interruptible, false, false, 0); | 218 | ret = ttm_bo_reserve(bo, interruptible, false, false, 0); |
| 220 | if (unlikely(ret != 0)) | 219 | if (unlikely(ret != 0)) |
| 221 | goto err_unlock; | 220 | goto err_unlock; |
| @@ -224,10 +223,9 @@ int vmw_dmabuf_to_start_of_vram(struct vmw_private *dev_priv, | |||
| 224 | if (bo->mem.mem_type == TTM_PL_VRAM && | 223 | if (bo->mem.mem_type == TTM_PL_VRAM && |
| 225 | bo->mem.start < bo->num_pages && | 224 | bo->mem.start < bo->num_pages && |
| 226 | bo->mem.start > 0) | 225 | bo->mem.start > 0) |
| 227 | (void) ttm_bo_validate(bo, &vmw_sys_placement, false, | 226 | (void) ttm_bo_validate(bo, &vmw_sys_placement, false, false); |
| 228 | false, false); | ||
| 229 | 227 | ||
| 230 | ret = ttm_bo_validate(bo, &placement, interruptible, false, false); | 228 | ret = ttm_bo_validate(bo, &placement, interruptible, false); |
| 231 | 229 | ||
| 232 | /* For some reason we didn't up at the start of vram */ | 230 | /* For some reason we didn't up at the start of vram */ |
| 233 | WARN_ON(ret == 0 && bo->offset != 0); | 231 | WARN_ON(ret == 0 && bo->offset != 0); |
| @@ -304,9 +302,9 @@ void vmw_bo_pin(struct ttm_buffer_object *bo, bool pin) | |||
| 304 | uint32_t old_mem_type = bo->mem.mem_type; | 302 | uint32_t old_mem_type = bo->mem.mem_type; |
| 305 | int ret; | 303 | int ret; |
| 306 | 304 | ||
| 307 | BUG_ON(!atomic_read(&bo->reserved)); | 305 | BUG_ON(!ttm_bo_is_reserved(bo)); |
| 308 | BUG_ON(old_mem_type != TTM_PL_VRAM && | 306 | BUG_ON(old_mem_type != TTM_PL_VRAM && |
| 309 | old_mem_type != VMW_PL_FLAG_GMR); | 307 | old_mem_type != VMW_PL_GMR); |
| 310 | 308 | ||
| 311 | pl_flags = TTM_PL_FLAG_VRAM | VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED; | 309 | pl_flags = TTM_PL_FLAG_VRAM | VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED; |
| 312 | if (pin) | 310 | if (pin) |
| @@ -316,7 +314,7 @@ void vmw_bo_pin(struct ttm_buffer_object *bo, bool pin) | |||
| 316 | placement.num_placement = 1; | 314 | placement.num_placement = 1; |
| 317 | placement.placement = &pl_flags; | 315 | placement.placement = &pl_flags; |
| 318 | 316 | ||
| 319 | ret = ttm_bo_validate(bo, &placement, false, true, true); | 317 | ret = ttm_bo_validate(bo, &placement, false, true); |
| 320 | 318 | ||
| 321 | BUG_ON(ret != 0 || bo->mem.mem_type != old_mem_type); | 319 | BUG_ON(ret != 0 || bo->mem.mem_type != old_mem_type); |
| 322 | } | 320 | } |
