Lines Matching refs:ntfy
115 struct nouveau_abi16_ntfy *ntfy) in nouveau_abi16_ntfy_fini() argument
117 nvif_object_dtor(&ntfy->object); in nouveau_abi16_ntfy_fini()
118 nvkm_mm_free(&chan->heap, &ntfy->node); in nouveau_abi16_ntfy_fini()
119 list_del(&ntfy->head); in nouveau_abi16_ntfy_fini()
120 kfree(ntfy); in nouveau_abi16_ntfy_fini()
127 struct nouveau_abi16_ntfy *ntfy, *temp; in nouveau_abi16_chan_fini() local
131 if (chan->chan && chan->ntfy) in nouveau_abi16_chan_fini()
135 list_for_each_entry_safe(ntfy, temp, &chan->notifiers, head) { in nouveau_abi16_chan_fini()
136 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_chan_fini()
139 if (chan->ntfy) { in nouveau_abi16_chan_fini()
141 nouveau_bo_unpin(chan->ntfy); in nouveau_abi16_chan_fini()
142 drm_gem_object_put(&chan->ntfy->bo.base); in nouveau_abi16_chan_fini()
329 0, 0, &chan->ntfy); in nouveau_abi16_ioctl_channel_alloc()
331 ret = nouveau_bo_pin(chan->ntfy, NOUVEAU_GEM_DOMAIN_GART, in nouveau_abi16_ioctl_channel_alloc()
337 ret = nouveau_vma_new(chan->ntfy, chan->chan->vmm, in nouveau_abi16_ioctl_channel_alloc()
343 ret = drm_gem_handle_create(file_priv, &chan->ntfy->bo.base, in nouveau_abi16_ioctl_channel_alloc()
429 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_grobj_alloc() local
499 ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL); in nouveau_abi16_ioctl_grobj_alloc()
500 if (!ntfy) in nouveau_abi16_ioctl_grobj_alloc()
503 list_add(&ntfy->head, &chan->notifiers); in nouveau_abi16_ioctl_grobj_alloc()
507 oclass, NULL, 0, &ntfy->object); in nouveau_abi16_ioctl_grobj_alloc()
511 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_grobj_alloc()
522 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_notifierobj_alloc() local
540 ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL); in nouveau_abi16_ioctl_notifierobj_alloc()
541 if (!ntfy) in nouveau_abi16_ioctl_notifierobj_alloc()
544 list_add(&ntfy->head, &chan->notifiers); in nouveau_abi16_ioctl_notifierobj_alloc()
547 &ntfy->node); in nouveau_abi16_ioctl_notifierobj_alloc()
551 args.start = ntfy->node->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
552 args.limit = ntfy->node->offset + ntfy->node->length - 1; in nouveau_abi16_ioctl_notifierobj_alloc()
562 args.start += drm->agp.base + chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
563 args.limit += drm->agp.base + chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
567 args.start += chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
568 args.limit += chan->ntfy->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
575 &ntfy->object); in nouveau_abi16_ioctl_notifierobj_alloc()
581 info->offset = ntfy->node->offset; in nouveau_abi16_ioctl_notifierobj_alloc()
584 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_notifierobj_alloc()
594 struct nouveau_abi16_ntfy *ntfy; in nouveau_abi16_ioctl_gpuobj_free() local
607 list_for_each_entry(ntfy, &chan->notifiers, head) { in nouveau_abi16_ioctl_gpuobj_free()
608 if (ntfy->object.handle == fini->handle) { in nouveau_abi16_ioctl_gpuobj_free()
609 nouveau_abi16_ntfy_fini(chan, ntfy); in nouveau_abi16_ioctl_gpuobj_free()