|
@@ -68,12 +68,7 @@ nv84_fence_emit(struct nouveau_fence *fence)
|
|
|
{
|
|
|
struct nouveau_channel *chan = fence->channel;
|
|
|
struct nv84_fence_chan *fctx = chan->fence;
|
|
|
- u64 addr = chan->chid * 16;
|
|
|
-
|
|
|
- if (fence->sysmem)
|
|
|
- addr += fctx->vma_gart.offset;
|
|
|
- else
|
|
|
- addr += fctx->vma.offset;
|
|
|
+ u64 addr = fctx->vma.offset + chan->chid * 16;
|
|
|
|
|
|
return fctx->base.emit32(chan, addr, fence->base.seqno);
|
|
|
}
|
|
@@ -83,12 +78,7 @@ nv84_fence_sync(struct nouveau_fence *fence,
|
|
|
struct nouveau_channel *prev, struct nouveau_channel *chan)
|
|
|
{
|
|
|
struct nv84_fence_chan *fctx = chan->fence;
|
|
|
- u64 addr = prev->chid * 16;
|
|
|
-
|
|
|
- if (fence->sysmem)
|
|
|
- addr += fctx->vma_gart.offset;
|
|
|
- else
|
|
|
- addr += fctx->vma.offset;
|
|
|
+ u64 addr = fctx->vma.offset + prev->chid * 16;
|
|
|
|
|
|
return fctx->base.sync32(chan, addr, fence->base.seqno);
|
|
|
}
|
|
@@ -108,7 +98,6 @@ nv84_fence_context_del(struct nouveau_channel *chan)
|
|
|
|
|
|
nouveau_bo_wr32(priv->bo, chan->chid * 16 / 4, fctx->base.sequence);
|
|
|
mutex_lock(&priv->mutex);
|
|
|
- nouveau_bo_vma_del(priv->bo, &fctx->vma_gart);
|
|
|
nouveau_bo_vma_del(priv->bo, &fctx->vma);
|
|
|
mutex_unlock(&priv->mutex);
|
|
|
nouveau_fence_context_del(&fctx->base);
|
|
@@ -138,10 +127,6 @@ nv84_fence_context_new(struct nouveau_channel *chan)
|
|
|
|
|
|
mutex_lock(&priv->mutex);
|
|
|
ret = nouveau_bo_vma_add(priv->bo, cli->vm, &fctx->vma);
|
|
|
- if (ret == 0) {
|
|
|
- ret = nouveau_bo_vma_add(priv->bo_gart, cli->vm,
|
|
|
- &fctx->vma_gart);
|
|
|
- }
|
|
|
mutex_unlock(&priv->mutex);
|
|
|
|
|
|
if (ret)
|
|
@@ -182,10 +167,6 @@ static void
|
|
|
nv84_fence_destroy(struct nouveau_drm *drm)
|
|
|
{
|
|
|
struct nv84_fence_priv *priv = drm->fence;
|
|
|
- nouveau_bo_unmap(priv->bo_gart);
|
|
|
- if (priv->bo_gart)
|
|
|
- nouveau_bo_unpin(priv->bo_gart);
|
|
|
- nouveau_bo_ref(NULL, &priv->bo_gart);
|
|
|
nouveau_bo_unmap(priv->bo);
|
|
|
if (priv->bo)
|
|
|
nouveau_bo_unpin(priv->bo);
|
|
@@ -238,21 +219,6 @@ nv84_fence_create(struct nouveau_drm *drm)
|
|
|
nouveau_bo_ref(NULL, &priv->bo);
|
|
|
}
|
|
|
|
|
|
- if (ret == 0)
|
|
|
- ret = nouveau_bo_new(&drm->client, 16 * priv->base.contexts, 0,
|
|
|
- TTM_PL_FLAG_TT | TTM_PL_FLAG_UNCACHED, 0,
|
|
|
- 0, NULL, NULL, &priv->bo_gart);
|
|
|
- if (ret == 0) {
|
|
|
- ret = nouveau_bo_pin(priv->bo_gart, TTM_PL_FLAG_TT, false);
|
|
|
- if (ret == 0) {
|
|
|
- ret = nouveau_bo_map(priv->bo_gart);
|
|
|
- if (ret)
|
|
|
- nouveau_bo_unpin(priv->bo_gart);
|
|
|
- }
|
|
|
- if (ret)
|
|
|
- nouveau_bo_ref(NULL, &priv->bo_gart);
|
|
|
- }
|
|
|
-
|
|
|
if (ret)
|
|
|
nv84_fence_destroy(drm);
|
|
|
return ret;
|