Lines Matching refs:chan
36 nv84_fence_emit32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
38 struct nvif_push *push = chan->chan.push;
41 PUSH_MTHD(push, NV826F, SET_CONTEXT_DMA_SEMAPHORE, chan->vram.handle);
59 nv84_fence_sync32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
61 struct nvif_push *push = chan->chan.push;
64 PUSH_MTHD(push, NV826F, SET_CONTEXT_DMA_SEMAPHORE, chan->vram.handle);
82 struct nouveau_channel *chan = fence->channel;
83 struct nv84_fence_chan *fctx = chan->fence;
84 u64 addr = fctx->vma->addr + chan->chid * 16;
86 return fctx->base.emit32(chan, addr, fence->base.seqno);
91 struct nouveau_channel *prev, struct nouveau_channel *chan)
93 struct nv84_fence_chan *fctx = chan->fence;
96 return fctx->base.sync32(chan, addr, fence->base.seqno);
100 nv84_fence_read(struct nouveau_channel *chan)
102 struct nv84_fence_priv *priv = chan->drm->fence;
103 return nouveau_bo_rd32(priv->bo, chan->chid * 16/4);
107 nv84_fence_context_del(struct nouveau_channel *chan)
109 struct nv84_fence_priv *priv = chan->drm->fence;
110 struct nv84_fence_chan *fctx = chan->fence;
112 nouveau_bo_wr32(priv->bo, chan->chid * 16 / 4, fctx->base.sequence);
117 chan->fence = NULL;
122 nv84_fence_context_new(struct nouveau_channel *chan)
124 struct nv84_fence_priv *priv = chan->drm->fence;
128 fctx = chan->fence = kzalloc(sizeof(*fctx), GFP_KERNEL);
132 nouveau_fence_context_new(chan, &fctx->base);
138 fctx->base.sequence = nv84_fence_read(chan);
141 ret = nouveau_vma_new(priv->bo, chan->vmm, &fctx->vma);
145 nv84_fence_context_del(chan);
155 priv->suspend = vmalloc(array_size(sizeof(u32), drm->chan.nr));
157 for (i = 0; i < drm->chan.nr; i++)
171 for (i = 0; i < drm->chan.nr; i++)
219 ret = nouveau_bo_new(&drm->client, 16 * drm->chan.nr, 0,