Lines Matching refs:abi16
44 if (!cli->abi16) { in nouveau_abi16()
45 struct nouveau_abi16 *abi16; in nouveau_abi16() local
46 cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL); in nouveau_abi16()
47 if (cli->abi16) { in nouveau_abi16()
52 INIT_LIST_HEAD(&abi16->channels); in nouveau_abi16()
60 &abi16->device) == 0) in nouveau_abi16()
61 return cli->abi16; in nouveau_abi16()
63 kfree(cli->abi16); in nouveau_abi16()
64 cli->abi16 = NULL; in nouveau_abi16()
67 return cli->abi16; in nouveau_abi16()
76 return cli->abi16; in nouveau_abi16_get()
82 nouveau_abi16_put(struct nouveau_abi16 *abi16, int ret) in nouveau_abi16_put() argument
84 struct nouveau_cli *cli = (void *)abi16->device.object.client; in nouveau_abi16_put()
124 nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16, in nouveau_abi16_chan_fini() argument
159 nouveau_abi16_fini(struct nouveau_abi16 *abi16) in nouveau_abi16_fini() argument
161 struct nouveau_cli *cli = (void *)abi16->device.object.client; in nouveau_abi16_fini()
165 list_for_each_entry_safe(chan, temp, &abi16->channels, head) { in nouveau_abi16_fini()
166 nouveau_abi16_chan_fini(abi16, chan); in nouveau_abi16_fini()
170 nvif_device_fini(&abi16->device); in nouveau_abi16_fini()
172 kfree(cli->abi16); in nouveau_abi16_fini()
173 cli->abi16 = NULL; in nouveau_abi16_fini()
258 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); in nouveau_abi16_ioctl_channel_alloc() local
264 if (unlikely(!abi16)) in nouveau_abi16_ioctl_channel_alloc()
268 return nouveau_abi16_put(abi16, -ENODEV); in nouveau_abi16_ioctl_channel_alloc()
270 device = &abi16->device; in nouveau_abi16_ioctl_channel_alloc()
282 return nouveau_abi16_put(abi16, -ENOSYS); in nouveau_abi16_ioctl_channel_alloc()
297 return nouveau_abi16_put(abi16, -EINVAL); in nouveau_abi16_ioctl_channel_alloc()
302 return nouveau_abi16_put(abi16, -ENOMEM); in nouveau_abi16_ioctl_channel_alloc()
305 list_add(&chan->head, &abi16->channels); in nouveau_abi16_ioctl_channel_alloc()
354 nouveau_abi16_chan_fini(abi16, chan); in nouveau_abi16_ioctl_channel_alloc()
355 return nouveau_abi16_put(abi16, ret); in nouveau_abi16_ioctl_channel_alloc()
359 nouveau_abi16_chan(struct nouveau_abi16 *abi16, int channel) in nouveau_abi16_chan() argument
363 list_for_each_entry(chan, &abi16->channels, head) { in nouveau_abi16_chan()
378 struct nouveau_abi16 *abi16; in nouveau_abi16_usif() local
393 if (!(abi16 = nouveau_abi16(file_priv))) in nouveau_abi16_usif()
397 if (!(chan = nouveau_abi16_chan(abi16, args->v0.token))) in nouveau_abi16_usif()
404 args->v0.object = nvif_handle(&abi16->device.object); in nouveau_abi16_usif()
413 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); in nouveau_abi16_ioctl_channel_free() local
416 if (unlikely(!abi16)) in nouveau_abi16_ioctl_channel_free()
419 chan = nouveau_abi16_chan(abi16, req->channel); in nouveau_abi16_ioctl_channel_free()
421 return nouveau_abi16_put(abi16, -ENOENT); in nouveau_abi16_ioctl_channel_free()
422 nouveau_abi16_chan_fini(abi16, chan); in nouveau_abi16_ioctl_channel_free()
423 return nouveau_abi16_put(abi16, 0); in nouveau_abi16_ioctl_channel_free()
430 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); in nouveau_abi16_ioctl_grobj_alloc() local
438 if (unlikely(!abi16)) in nouveau_abi16_ioctl_grobj_alloc()
442 return nouveau_abi16_put(abi16, -EINVAL); in nouveau_abi16_ioctl_grobj_alloc()
443 client = abi16->device.object.client; in nouveau_abi16_ioctl_grobj_alloc()
445 chan = nouveau_abi16_chan(abi16, init->channel); in nouveau_abi16_ioctl_grobj_alloc()
447 return nouveau_abi16_put(abi16, -ENOENT); in nouveau_abi16_ioctl_grobj_alloc()
451 return nouveau_abi16_put(abi16, ret); in nouveau_abi16_ioctl_grobj_alloc()
500 return nouveau_abi16_put(abi16, -EINVAL); in nouveau_abi16_ioctl_grobj_alloc()
504 return nouveau_abi16_put(abi16, -ENOMEM); in nouveau_abi16_ioctl_grobj_alloc()
515 return nouveau_abi16_put(abi16, ret); in nouveau_abi16_ioctl_grobj_alloc()
523 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); in nouveau_abi16_ioctl_notifierobj_alloc() local
526 struct nvif_device *device = &abi16->device; in nouveau_abi16_ioctl_notifierobj_alloc()
531 if (unlikely(!abi16)) in nouveau_abi16_ioctl_notifierobj_alloc()
536 return nouveau_abi16_put(abi16, -EINVAL); in nouveau_abi16_ioctl_notifierobj_alloc()
537 client = abi16->device.object.client; in nouveau_abi16_ioctl_notifierobj_alloc()
539 chan = nouveau_abi16_chan(abi16, info->channel); in nouveau_abi16_ioctl_notifierobj_alloc()
541 return nouveau_abi16_put(abi16, -ENOENT); in nouveau_abi16_ioctl_notifierobj_alloc()
545 return nouveau_abi16_put(abi16, -ENOMEM); in nouveau_abi16_ioctl_notifierobj_alloc()
588 return nouveau_abi16_put(abi16, ret); in nouveau_abi16_ioctl_notifierobj_alloc()
595 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); in nouveau_abi16_ioctl_gpuobj_free() local
600 if (unlikely(!abi16)) in nouveau_abi16_ioctl_gpuobj_free()
603 chan = nouveau_abi16_chan(abi16, fini->channel); in nouveau_abi16_ioctl_gpuobj_free()
605 return nouveau_abi16_put(abi16, -EINVAL); in nouveau_abi16_ioctl_gpuobj_free()
618 return nouveau_abi16_put(abi16, ret); in nouveau_abi16_ioctl_gpuobj_free()