diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-02-13 22:43:21 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-02-20 01:00:53 -0500 |
commit | 264ce192b3e7f45d0adb37bfbab2b01a3fbe6c30 (patch) | |
tree | 68ba7f61bc07f54378e562ce385f60dc814b4fad /drivers/gpu/drm/nouveau/nouveau_fence.c | |
parent | 827520ce06568f699dad275dcca61647cce08757 (diff) |
drm/nv84-/fence: prepare for emit/sync support of sysram sequences
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_fence.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_fence.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index 6a7a5b576273..6c946837a0aa 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c | |||
@@ -41,8 +41,6 @@ nouveau_fence_context_del(struct nouveau_fence_chan *fctx) | |||
41 | struct nouveau_fence *fence, *fnext; | 41 | struct nouveau_fence *fence, *fnext; |
42 | spin_lock(&fctx->lock); | 42 | spin_lock(&fctx->lock); |
43 | list_for_each_entry_safe(fence, fnext, &fctx->pending, head) { | 43 | list_for_each_entry_safe(fence, fnext, &fctx->pending, head) { |
44 | if (fence->work) | ||
45 | fence->work(fence->priv, false); | ||
46 | fence->channel = NULL; | 44 | fence->channel = NULL; |
47 | list_del(&fence->head); | 45 | list_del(&fence->head); |
48 | nouveau_fence_unref(&fence); | 46 | nouveau_fence_unref(&fence); |
@@ -69,8 +67,6 @@ nouveau_fence_update(struct nouveau_channel *chan) | |||
69 | if (fctx->read(chan) < fence->sequence) | 67 | if (fctx->read(chan) < fence->sequence) |
70 | break; | 68 | break; |
71 | 69 | ||
72 | if (fence->work) | ||
73 | fence->work(fence->priv, true); | ||
74 | fence->channel = NULL; | 70 | fence->channel = NULL; |
75 | list_del(&fence->head); | 71 | list_del(&fence->head); |
76 | nouveau_fence_unref(&fence); | 72 | nouveau_fence_unref(&fence); |
@@ -256,7 +252,8 @@ nouveau_fence_ref(struct nouveau_fence *fence) | |||
256 | } | 252 | } |
257 | 253 | ||
258 | int | 254 | int |
259 | nouveau_fence_new(struct nouveau_channel *chan, struct nouveau_fence **pfence) | 255 | nouveau_fence_new(struct nouveau_channel *chan, bool sysmem, |
256 | struct nouveau_fence **pfence) | ||
260 | { | 257 | { |
261 | struct nouveau_fence *fence; | 258 | struct nouveau_fence *fence; |
262 | int ret = 0; | 259 | int ret = 0; |
@@ -267,6 +264,8 @@ nouveau_fence_new(struct nouveau_channel *chan, struct nouveau_fence **pfence) | |||
267 | fence = kzalloc(sizeof(*fence), GFP_KERNEL); | 264 | fence = kzalloc(sizeof(*fence), GFP_KERNEL); |
268 | if (!fence) | 265 | if (!fence) |
269 | return -ENOMEM; | 266 | return -ENOMEM; |
267 | |||
268 | fence->sysmem = sysmem; | ||
270 | kref_init(&fence->kref); | 269 | kref_init(&fence->kref); |
271 | 270 | ||
272 | ret = nouveau_fence_emit(fence, chan); | 271 | ret = nouveau_fence_emit(fence, chan); |