aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nouveau_gem.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-12-03 13:59:36 +1000
committerDave Airlie <airlied@redhat.com>2010-12-03 13:59:36 +1000
commita9979d6077e4482dbe64cedc4bb181d5576d13f7 (patch)
tree24e383df4e984b907651f79d3fb0642aa0691426 /drivers/gpu/drm/nouveau/nouveau_gem.c
parent27641c3f003e7f3b6585c01d8a788883603eb262 (diff)
parent147666fb3b93b8c484f562da33a37f886ddff768 (diff)
Merge branch 'drm-ttm-next' into drm-core-next
* drm-ttm-next: drm/radeon: Use the ttm execbuf utilities drm/ttm: Fix up io_mem_reserve / io_mem_free calling drm/ttm/vmwgfx: Have TTM manage the validation sequence. drm/ttm: Improved fencing of buffer object lists drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock drm/ttm: Don't deadlock on recursive multi-bo reservations drm/ttm: Optimize ttm_eu_backoff_reservation drm/ttm: Use kref_sub instead of repeatedly calling kref_put kref: Add a kref_sub function drm/ttm: Add a bo list reserve fastpath (v2)
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_gem.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_gem.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 9a1fdcf400c..1f2301d26c0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -234,10 +234,10 @@ validate_fini_list(struct list_head *list, struct nouveau_fence *fence)
if (likely(fence)) {
struct nouveau_fence *prev_fence;
- spin_lock(&nvbo->bo.lock);
+ spin_lock(&nvbo->bo.bdev->fence_lock);
prev_fence = nvbo->bo.sync_obj;
nvbo->bo.sync_obj = nouveau_fence_ref(fence);
- spin_unlock(&nvbo->bo.lock);
+ spin_unlock(&nvbo->bo.bdev->fence_lock);
nouveau_fence_unref((void *)&prev_fence);
}
@@ -557,9 +557,9 @@ nouveau_gem_pushbuf_reloc_apply(struct drm_device *dev,
data |= r->vor;
}
- spin_lock(&nvbo->bo.lock);
+ spin_lock(&nvbo->bo.bdev->fence_lock);
ret = ttm_bo_wait(&nvbo->bo, false, false, false);
- spin_unlock(&nvbo->bo.lock);
+ spin_unlock(&nvbo->bo.bdev->fence_lock);
if (ret) {
NV_ERROR(dev, "reloc wait_idle failed: %d\n", ret);
break;
@@ -791,9 +791,9 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data,
}
if (req->flags & NOUVEAU_GEM_CPU_PREP_NOBLOCK) {
- spin_lock(&nvbo->bo.lock);
+ spin_lock(&nvbo->bo.bdev->fence_lock);
ret = ttm_bo_wait(&nvbo->bo, false, false, no_wait);
- spin_unlock(&nvbo->bo.lock);
+ spin_unlock(&nvbo->bo.bdev->fence_lock);
} else {
ret = ttm_bo_synccpu_write_grab(&nvbo->bo, no_wait);
if (ret == 0)