Lines Matching defs:chan
82 if (fence->context < drm->chan.context_base ||
83 fence->context >= drm->chan.context_base + drm->chan.nr)
134 nouveau_fence_update(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
138 u32 seq = fctx->read(chan);
163 struct nouveau_channel *chan;
166 chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock));
167 if (nouveau_fence_update(chan, fctx))
176 nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
178 struct nouveau_fence_priv *priv = (void*)chan->drm->fence;
179 struct nouveau_cli *cli = (void *)chan->user.client;
185 fctx->context = chan->drm->chan.context_base + chan->chid;
187 if (chan == chan->drm->cechan)
189 else if (chan == chan->drm->channel)
198 ret = nvif_notify_ctor(&chan->user, "fenceNonStallIntr",
210 nouveau_fence_emit(struct nouveau_fence *fence, struct nouveau_channel *chan)
212 struct nouveau_fence_chan *fctx = chan->fence;
213 struct nouveau_fence_priv *priv = (void*)chan->drm->fence;
216 fence->channel = chan;
233 if (nouveau_fence_update(chan, fctx))
249 struct nouveau_channel *chan;
256 chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock));
257 if (chan && nouveau_fence_update(chan, fctx))
342 nouveau_fence_sync(struct nouveau_bo *nvbo, struct nouveau_channel *chan, bool exclusive, bool intr)
344 struct nouveau_fence_chan *fctx = chan->fence;
365 f = nouveau_local_fence(fence, chan->drm);
369 if (prev && (prev == chan || fctx->sync(f, prev, chan) == 0))
390 f = nouveau_local_fence(fence, chan->drm);
394 if (prev && (prev == chan || fctx->sync(f, prev, chan) == 0))
415 nouveau_fence_new(struct nouveau_channel *chan, bool sysmem,
421 if (unlikely(!chan->fence))
428 ret = nouveau_fence_emit(fence, chan);
459 struct nouveau_channel *chan;
463 chan = rcu_dereference(fence->channel);
464 if (chan)
465 ret = (int)(fctx->read(chan) - fence->base.seqno) >= 0;