Lines Matching refs:ntfy
101 struct nouveau_abi16_ntfy *ntfy) in nouveau_abi16_ntfy_fini() argument
103 nvkm_mm_free(&chan->heap, &ntfy->node); in nouveau_abi16_ntfy_fini()
104 list_del(&ntfy->head); in nouveau_abi16_ntfy_fini()
105 kfree(ntfy); in nouveau_abi16_ntfy_fini()
112 struct nouveau_abi16_ntfy *ntfy, *temp; in nouveau_abi16_chan_fini() local
116 if (chan->chan && chan->ntfy) in nouveau_abi16_chan_fini()
120 list_for_each_entry_safe(ntfy, temp, &chan->notifiers, head) { in nouveau_abi16_chan_fini()
121 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_chan_fini()
124 if (chan->ntfy) { in nouveau_abi16_chan_fini()
125 nouveau_bo_vma_del(chan->ntfy, &chan->ntfy_vma); in nouveau_abi16_chan_fini()
126 nouveau_bo_unpin(chan->ntfy); in nouveau_abi16_chan_fini()
127 drm_gem_object_unreference_unlocked(&chan->ntfy->gem); in nouveau_abi16_chan_fini()
309 0, 0, &chan->ntfy); in nouveau_abi16_ioctl_channel_alloc()
311 ret = nouveau_bo_pin(chan->ntfy, TTM_PL_FLAG_TT, false); in nouveau_abi16_ioctl_channel_alloc()
316 ret = nouveau_bo_vma_add(chan->ntfy, cli->vm, in nouveau_abi16_ioctl_channel_alloc()
322 ret = drm_gem_handle_create(file_priv, &chan->ntfy->gem, in nouveau_abi16_ioctl_channel_alloc()
427 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_notifierobj_alloc() local
444 ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL); in nouveau_abi16_ioctl_notifierobj_alloc()
445 if (!ntfy) in nouveau_abi16_ioctl_notifierobj_alloc()
448 list_add(&ntfy->head, &chan->notifiers); in nouveau_abi16_ioctl_notifierobj_alloc()
449 ntfy->handle = info->handle; in nouveau_abi16_ioctl_notifierobj_alloc()
452 &ntfy->node); in nouveau_abi16_ioctl_notifierobj_alloc()
456 args.ctxdma.start = ntfy->node->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
457 args.ctxdma.limit = ntfy->node->offset + ntfy->node->length - 1; in nouveau_abi16_ioctl_notifierobj_alloc()
467 args.ctxdma.start += drm->agp.base + chan->ntfy->bo.offset; in nouveau_abi16_ioctl_notifierobj_alloc()
468 args.ctxdma.limit += drm->agp.base + chan->ntfy->bo.offset; in nouveau_abi16_ioctl_notifierobj_alloc()
473 args.ctxdma.start += chan->ntfy->bo.offset; in nouveau_abi16_ioctl_notifierobj_alloc()
474 args.ctxdma.limit += chan->ntfy->bo.offset; in nouveau_abi16_ioctl_notifierobj_alloc()
482 info->offset = ntfy->node->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
486 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_notifierobj_alloc()
508 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_gpuobj_free() local
528 list_for_each_entry(ntfy, &chan->notifiers, head) { in nouveau_abi16_ioctl_gpuobj_free()
529 if (ntfy->handle == fini->handle) { in nouveau_abi16_ioctl_gpuobj_free()
530 nvkm_mm_free(&chan->heap, &ntfy->node); in nouveau_abi16_ioctl_gpuobj_free()
531 list_del(&ntfy->head); in nouveau_abi16_ioctl_gpuobj_free()