Lines Matching refs:ectx

34 	struct nvkm_ectx *ectx = *pectx;  in nvkm_cgrp_ectx_put()  local
36 if (ectx) { in nvkm_cgrp_ectx_put()
37 struct nvkm_engn *engn = ectx->engn; in nvkm_cgrp_ectx_put()
39 if (refcount_dec_and_test(&ectx->refs)) { in nvkm_cgrp_ectx_put()
41 nvkm_object_del(&ectx->object); in nvkm_cgrp_ectx_put()
42 list_del(&ectx->head); in nvkm_cgrp_ectx_put()
43 kfree(ectx); in nvkm_cgrp_ectx_put()
59 struct nvkm_ectx *ectx; in nvkm_cgrp_ectx_get() local
63 ectx = nvkm_list_find(ectx, &cgrp->ectxs, head, ectx->engn == engn); in nvkm_cgrp_ectx_get()
64 if (ectx) { in nvkm_cgrp_ectx_get()
65 refcount_inc(&ectx->refs); in nvkm_cgrp_ectx_get()
66 *pectx = ectx; in nvkm_cgrp_ectx_get()
72 if (!(ectx = *pectx = kzalloc(sizeof(*ectx), GFP_KERNEL))) in nvkm_cgrp_ectx_get()
75 ectx->engn = engn; in nvkm_cgrp_ectx_get()
76 refcount_set(&ectx->refs, 1); in nvkm_cgrp_ectx_get()
77 refcount_set(&ectx->uses, 0); in nvkm_cgrp_ectx_get()
78 list_add_tail(&ectx->head, &cgrp->ectxs); in nvkm_cgrp_ectx_get()
82 ret = engine->func->fifo.cclass(chan, &cclass, &ectx->object); in nvkm_cgrp_ectx_get()
84 ret = nvkm_object_new_(engine->func->cclass, &cclass, NULL, 0, &ectx->object); in nvkm_cgrp_ectx_get()
98 struct nvkm_engn *engn = vctx->ectx->engn; in nvkm_cgrp_vctx_put()
105 nvkm_cgrp_ectx_put(cgrp, &vctx->ectx); in nvkm_cgrp_vctx_put()
122 struct nvkm_ectx *ectx; in nvkm_cgrp_vctx_get() local
128 vctx->ectx->engn == engn && vctx->vmm == chan->vmm); in nvkm_cgrp_vctx_get()
136 ret = nvkm_cgrp_ectx_get(cgrp, engn, &ectx, chan, client); in nvkm_cgrp_vctx_get()
145 nvkm_cgrp_ectx_put(cgrp, &ectx); in nvkm_cgrp_vctx_get()
149 vctx->ectx = ectx; in nvkm_cgrp_vctx_get()
160 ret = nvkm_object_bind(vctx->ectx->object, NULL, 0, &vctx->inst); in nvkm_cgrp_vctx_get()