| /linux/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ |
| H A D | cgrp.c | 37 struct nvkm_engn *engn = ectx->engn; in nvkm_cgrp_ectx_put() local 40 CGRP_TRACE(cgrp, "dtor ectx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_cgrp_ectx_put() 51 nvkm_cgrp_ectx_get(struct nvkm_cgrp *cgrp, struct nvkm_engn *engn, struct nvkm_ectx **pectx, in nvkm_cgrp_ectx_get() argument 54 struct nvkm_engine *engine = engn->engine; in nvkm_cgrp_ectx_get() 63 ectx = nvkm_list_find(ectx, &cgrp->ectxs, head, ectx->engn == engn); in nvkm_cgrp_ectx_get() 71 CGRP_TRACE(cgrp, "ctor ectx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_cgrp_ectx_get() 75 ectx->engn = engn; in nvkm_cgrp_ectx_get() 98 struct nvkm_engn *engn = vctx->ectx->engn; in nvkm_cgrp_vctx_put() local 101 CGRP_TRACE(cgrp, "dtor vctx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_cgrp_vctx_put() 107 atomic_dec(&vctx->vmm->engref[engn->engine->subdev.type]); in nvkm_cgrp_vctx_put() [all …]
|
| H A D | runl.c | 34 nvkm_engn_cgrp_get(struct nvkm_engn *engn, unsigned long *pirqflags) in nvkm_engn_cgrp_get() argument 41 id = engn->func->cxid(engn, &cgid); in nvkm_engn_cgrp_get() 46 chan = nvkm_runl_chan_get_chid(engn->runl, id, pirqflags); in nvkm_engn_cgrp_get() 50 cgrp = nvkm_runl_cgrp_get_cgid(engn->runl, id, pirqflags); in nvkm_engn_cgrp_get() 63 struct nvkm_engn *engn; in nvkm_runl_rc() local 101 nvkm_runl_foreach_engn_cond(engn, runl, engn->func->cxid) { in nvkm_runl_rc() 102 cgrp = nvkm_engn_cgrp_get(engn, &flags); in nvkm_runl_rc() 104 ENGN_DEBUG(engn, "cxid not valid"); in nvkm_runl_rc() 111 ENGN_DEBUG(engn, "cxid not in recovery"); in nvkm_runl_rc() 115 ENGN_DEBUG(engn, "resetting..."); in nvkm_runl_rc() [all …]
|
| H A D | uchan.c | 87 nvkm_chan_cctx_bind(chan, ectx->engn, NULL); in nvkm_uchan_object_fini_1() 120 nvkm_chan_cctx_bind(chan, ectx->engn, cctx); in nvkm_uchan_object_init_0() 134 struct nvkm_engn *engn; in nvkm_uchan_object_dtor() local 139 engn = uobj->cctx->vctx->ectx->engn; in nvkm_uchan_object_dtor() 140 if (engn->func->ramht_del) in nvkm_uchan_object_dtor() 141 engn->func->ramht_del(uobj->chan, uobj->hash); in nvkm_uchan_object_dtor() 159 struct nvkm_engn *engn; in nvkm_uchan_object_new() local 164 engn = nvkm_runl_find_engn(engn, cgrp->runl, engn->engine == oclass->engine); in nvkm_uchan_object_new() 165 if (WARN_ON(!engn)) in nvkm_uchan_object_new() 177 ret = nvkm_chan_cctx_get(chan, engn, &uobj->cctx, oclass->client); in nvkm_uchan_object_new() [all …]
|
| H A D | chan.c | 41 nvkm_chan_cctx_bind(struct nvkm_chan *chan, struct nvkm_engn *engn, struct nvkm_cctx *cctx) in nvkm_chan_cctx_bind() argument 45 struct nvkm_engine *engine = engn->engine; in nvkm_chan_cctx_bind() 47 if (!engn->func->bind) in nvkm_chan_cctx_bind() 50 CHAN_TRACE(chan, "%sbind cctx %d[%s]", cctx ? "" : "un", engn->id, engine->subdev.name); in nvkm_chan_cctx_bind() 62 engn->func->bind(engn, cctx, chan); in nvkm_chan_cctx_bind() 77 struct nvkm_engn *engn = cctx->vctx->ectx->engn; in nvkm_chan_cctx_put() local 80 CHAN_TRACE(chan, "dtor cctx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_chan_cctx_put() 92 nvkm_chan_cctx_get(struct nvkm_chan *chan, struct nvkm_engn *engn, struct nvkm_cctx **pcctx, in nvkm_chan_cctx_get() argument 103 cctx->vctx->ectx->engn == engn && cctx->vctx->vmm == chan->vmm); in nvkm_chan_cctx_get() 112 ret = nvkm_cgrp_vctx_get(cgrp, engn, chan, &vctx, client); in nvkm_chan_cctx_get() [all …]
|
| H A D | ga100.c | 123 ga100_engn_cxid(struct nvkm_engn *engn, bool *cgid) in ga100_engn_cxid() argument 125 struct nvkm_runl *runl = engn->runl; in ga100_engn_cxid() 127 u32 stat = nvkm_rd32(device, runl->addr + 0x200 + engn->id * 0x40); in ga100_engn_cxid() 129 ENGN_DEBUG(engn, "status %08x", stat); in ga100_engn_cxid() 138 if (nvkm_engine_chsw_load(engn->engine)) in ga100_engn_cxid() 150 ga100_engn_nonstall(struct nvkm_engn *engn) in ga100_engn_nonstall() argument 152 struct nvkm_engine *engine = engn->engine; in ga100_engn_nonstall() 334 struct nvkm_engn *engn; in ga100_runl_intr() local 347 nvkm_runl_foreach_engn_cond(engn, runl, stat & BIT(engn->id)) { in ga100_runl_intr() 348 info = nvkm_rd32(device, runl->addr + 0x224 + (engn->id * 0x40)); in ga100_runl_intr() [all …]
|
| H A D | g98.c | 39 nvkm_runl_add(runl, 1, fifo->func->engn, NVKM_ENGINE_GR, 0); in g98_fifo_runl_ctor() 40 nvkm_runl_add(runl, 2, fifo->func->engn, NVKM_ENGINE_MSPPP, 0); in g98_fifo_runl_ctor() 41 nvkm_runl_add(runl, 3, fifo->func->engn, NVKM_ENGINE_CE, 0); in g98_fifo_runl_ctor() 42 nvkm_runl_add(runl, 4, fifo->func->engn, NVKM_ENGINE_MSPDEC, 0); in g98_fifo_runl_ctor() 43 nvkm_runl_add(runl, 5, fifo->func->engn, NVKM_ENGINE_SEC, 0); in g98_fifo_runl_ctor() 44 nvkm_runl_add(runl, 6, fifo->func->engn, NVKM_ENGINE_MSVLD, 0); in g98_fifo_runl_ctor() 59 .engn = &g84_engn,
|
| H A D | base.c | 42 struct nvkm_engn *engn; in nvkm_fifo_ctxsw_in_progress() local 45 nvkm_runl_foreach_engn(engn, runl) { in nvkm_fifo_ctxsw_in_progress() 46 if (engn->engine == engine) in nvkm_fifo_ctxsw_in_progress() 47 return engn->func->chsw ? engn->func->chsw(engn) : false; in nvkm_fifo_ctxsw_in_progress() 78 if (oclass->engn == &fifo->func->cgrp.user) in nvkm_fifo_class_new() 81 if (oclass->engn == &fifo->func->chan.user) in nvkm_fifo_class_new() 105 oclass->engn = &fifo->func->cgrp.user; in nvkm_fifo_class_get() 115 oclass->engn = &fifo->func->chan.user; in nvkm_fifo_class_get() 173 struct nvkm_engn *engn; in nvkm_fifo_info() local 191 nvkm_runl_foreach_engn(engn, runl) { in nvkm_fifo_info() [all …]
|
| H A D | g84.c | 106 g84_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan) in g84_ectx_bind() argument 113 switch (engn->engine->subdev.type) { in g84_ectx_bind() 130 save = nvkm_mask(device, 0x002520, 0x0000003f, BIT(engn->id - 1)); in g84_ectx_bind() 200 nvkm_runl_add(runl, 1, fifo->func->engn, NVKM_ENGINE_GR, 0); in g84_fifo_runl_ctor() 201 nvkm_runl_add(runl, 2, fifo->func->engn, NVKM_ENGINE_MPEG, 0); in g84_fifo_runl_ctor() 202 nvkm_runl_add(runl, 3, fifo->func->engn, NVKM_ENGINE_ME, 0); in g84_fifo_runl_ctor() 203 nvkm_runl_add(runl, 4, fifo->func->engn, NVKM_ENGINE_VP, 0); in g84_fifo_runl_ctor() 204 nvkm_runl_add(runl, 5, fifo->func->engn, NVKM_ENGINE_CIPHER, 0); in g84_fifo_runl_ctor() 205 nvkm_runl_add(runl, 6, fifo->func->engn, NVKM_ENGINE_BSP, 0); in g84_fifo_runl_ctor() 220 .engn = &g84_engn,
|
| H A D | runl.h | 120 #define nvkm_runl_find_engn(engn,runl,cond) nvkm_list_find(engn, &(runl)->engns, head, (cond)) argument 125 #define nvkm_runl_foreach_engn(engn,runl) list_for_each_entry((engn), &(runl)->engns, head) argument 126 #define nvkm_runl_foreach_engn_cond(engn,runl,cond) \ argument 127 nvkm_list_foreach(engn, &(runl)->engns, head, (cond))
|
| H A D | gk20a.c | 41 .engn = &gk104_engn,
|
| H A D | ga102.c | 37 .engn = &ga100_engn,
|
| H A D | gm200.c | 55 .engn = &gk104_engn,
|
| H A D | gk208.c | 66 .engn = &gk104_engn,
|
| H A D | nv10.c | 102 .engn = &nv04_engn,
|
| H A D | cgrp.h | 20 struct nvkm_engn *engn; member
|
| H A D | gk110.c | 121 .engn = &gk104_engn,
|
| H A D | gp100.c | 128 .engn = &gk104_engn,
|
| H A D | nv17.c | 131 .engn = &nv04_engn,
|
| H A D | gm107.c | 145 .engn = &gk104_engn,
|
| H A D | priv.h | 49 const struct nvkm_engn_func *engn; member
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/ |
| H A D | fifo.c | 157 struct nvkm_engn *engn; in r535_chan_ramfc_write() local 169 nvkm_runl_foreach_engn(engn, chan->cgrp->runl) { in r535_chan_ramfc_write() 170 eT = engn->id; in r535_chan_ramfc_write() 240 r535_engn_nonstall(struct nvkm_engn *engn) in r535_engn_nonstall() argument 242 struct nvkm_subdev *subdev = &engn->engine->subdev; in r535_engn_nonstall() 256 r535_gr_ctor(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan) in r535_gr_ctor() argument 277 r535_flcn_bind(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan) in r535_flcn_bind() argument 292 ctrl->engineType = engn->id; in r535_flcn_bind() 299 r535_flcn_ctor(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan) in r535_flcn_ctor() argument 303 if (WARN_ON(!engn->rm.size)) in r535_flcn_ctor() [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/engine/sw/ |
| H A D | base.c | 54 const struct nvkm_sw_chan_sclass *sclass = oclass->engn; in nvkm_sw_oclass_new() 66 oclass->engn = &sw->func->sclass[index]; in nvkm_sw_oclass_get()
|
| /linux/drivers/gpu/drm/nouveau/include/nvkm/core/ |
| H A D | oclass.h | 22 const void *engn; member
|
| /linux/drivers/gpu/drm/nouveau/nvkm/engine/dma/ |
| H A D | base.c | 74 sclass->engn = oclass; in nvkm_dma_oclass_base_get()
|