Lines Matching defs:abi16
45 if (!cli->abi16) {
46 struct nouveau_abi16 *abi16;
47 cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL);
48 if (cli->abi16) {
53 INIT_LIST_HEAD(&abi16->channels);
61 &abi16->device) == 0)
62 return cli->abi16;
64 kfree(cli->abi16);
65 cli->abi16 = NULL;
68 return cli->abi16;
77 return cli->abi16;
83 nouveau_abi16_put(struct nouveau_abi16 *abi16, int ret)
85 struct nouveau_cli *cli = (void *)abi16->device.object.client;
125 nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16,
170 nouveau_abi16_fini(struct nouveau_abi16 *abi16)
172 struct nouveau_cli *cli = (void *)abi16->device.object.client;
176 list_for_each_entry_safe(chan, temp, &abi16->channels, head) {
177 nouveau_abi16_chan_fini(abi16, chan);
181 nvif_device_dtor(&abi16->device);
183 kfree(cli->abi16);
184 cli->abi16 = NULL;
285 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
291 if (unlikely(!abi16))
295 return nouveau_abi16_put(abi16, -ENODEV);
304 device = &abi16->device;
317 return nouveau_abi16_put(abi16, -ENOSYS);
331 return nouveau_abi16_put(abi16, -EINVAL);
333 /* allocate "abi16 channel" data and make up a handle for it */
336 return nouveau_abi16_put(abi16, -ENOMEM);
339 list_add(&chan->head, &abi16->channels);
420 nouveau_abi16_chan_fini(abi16, chan);
421 return nouveau_abi16_put(abi16, ret);
425 nouveau_abi16_chan(struct nouveau_abi16 *abi16, int channel)
429 list_for_each_entry(chan, &abi16->channels, head) {
444 struct nouveau_abi16 *abi16;
459 if (!(abi16 = nouveau_abi16(file_priv)))
463 if (!(chan = nouveau_abi16_chan(abi16, args->v0.token)))
470 args->v0.object = nvif_handle(&abi16->device.object);
479 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
482 if (unlikely(!abi16))
485 chan = nouveau_abi16_chan(abi16, req->channel);
487 return nouveau_abi16_put(abi16, -ENOENT);
488 nouveau_abi16_chan_fini(abi16, chan);
489 return nouveau_abi16_put(abi16, 0);
496 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
504 if (unlikely(!abi16))
508 return nouveau_abi16_put(abi16, -EINVAL);
509 client = abi16->device.object.client;
511 chan = nouveau_abi16_chan(abi16, init->channel);
513 return nouveau_abi16_put(abi16, -ENOENT);
517 return nouveau_abi16_put(abi16, ret);
566 return nouveau_abi16_put(abi16, -EINVAL);
570 return nouveau_abi16_put(abi16, -ENOMEM);
581 return nouveau_abi16_put(abi16, ret);
589 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
592 struct nvif_device *device = &abi16->device;
597 if (unlikely(!abi16))
602 return nouveau_abi16_put(abi16, -EINVAL);
603 client = abi16->device.object.client;
605 chan = nouveau_abi16_chan(abi16, info->channel);
607 return nouveau_abi16_put(abi16, -ENOENT);
611 return nouveau_abi16_put(abi16, -ENOMEM);
652 return nouveau_abi16_put(abi16, ret);
659 struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
664 if (unlikely(!abi16))
667 chan = nouveau_abi16_chan(abi16, fini->channel);
669 return nouveau_abi16_put(abi16, -EINVAL);
682 return nouveau_abi16_put(abi16, ret);