Lines Matching refs:ntfy
114 struct nouveau_abi16_ntfy *ntfy) in nouveau_abi16_ntfy_fini() argument
116 nvif_object_dtor(&ntfy->object); in nouveau_abi16_ntfy_fini()
117 nvkm_mm_free(&chan->heap, &ntfy->node); in nouveau_abi16_ntfy_fini()
118 list_del(&ntfy->head); in nouveau_abi16_ntfy_fini()
119 kfree(ntfy); in nouveau_abi16_ntfy_fini()
126 struct nouveau_abi16_ntfy *ntfy, *temp; in nouveau_abi16_chan_fini() local
133 list_for_each_entry_safe(ntfy, temp, &chan->notifiers, head) { in nouveau_abi16_chan_fini()
134 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_chan_fini()
137 if (chan->ntfy) { in nouveau_abi16_chan_fini()
139 nouveau_bo_unpin(chan->ntfy); in nouveau_abi16_chan_fini()
140 drm_gem_object_put(&chan->ntfy->bo.base); in nouveau_abi16_chan_fini()
353 0, 0, &chan->ntfy); in nouveau_abi16_ioctl_channel_alloc()
355 ret = nouveau_bo_pin(chan->ntfy, NOUVEAU_GEM_DOMAIN_GART, in nouveau_abi16_ioctl_channel_alloc()
361 ret = nouveau_vma_new(chan->ntfy, chan->chan->vmm, in nouveau_abi16_ioctl_channel_alloc()
367 ret = drm_gem_handle_create(file_priv, &chan->ntfy->bo.base, in nouveau_abi16_ioctl_channel_alloc()
453 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_grobj_alloc() local
523 ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL); in nouveau_abi16_ioctl_grobj_alloc()
524 if (!ntfy) in nouveau_abi16_ioctl_grobj_alloc()
527 list_add(&ntfy->head, &chan->notifiers); in nouveau_abi16_ioctl_grobj_alloc()
531 oclass, NULL, 0, &ntfy->object); in nouveau_abi16_ioctl_grobj_alloc()
535 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_grobj_alloc()
546 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_notifierobj_alloc() local
564 ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL); in nouveau_abi16_ioctl_notifierobj_alloc()
565 if (!ntfy) in nouveau_abi16_ioctl_notifierobj_alloc()
568 list_add(&ntfy->head, &chan->notifiers); in nouveau_abi16_ioctl_notifierobj_alloc()
571 &ntfy->node); in nouveau_abi16_ioctl_notifierobj_alloc()
575 args.start = ntfy->node->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
576 args.limit = ntfy->node->offset + ntfy->node->length - 1; in nouveau_abi16_ioctl_notifierobj_alloc()
586 args.start += drm->agp.base + chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
587 args.limit += drm->agp.base + chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
591 args.start += chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
592 args.limit += chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
598 &ntfy->object); in nouveau_abi16_ioctl_notifierobj_alloc()
603 info->offset = ntfy->node->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
606 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_notifierobj_alloc()
616 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_gpuobj_free() local
629 list_for_each_entry(ntfy, &chan->notifiers, head) { in nouveau_abi16_ioctl_gpuobj_free()
630 if (ntfy->object.handle == fini->handle) { in nouveau_abi16_ioctl_gpuobj_free()
631 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_gpuobj_free()