aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
diff options
context:
space:
mode:
authorGravatar Ben Skeggs <bskeggs@redhat.com> 2022-06-01 20:47:26 +1000
committerGravatar Ben Skeggs <bskeggs@redhat.com> 2022-11-09 10:44:47 +1000
commit0fc72ee9d8d665484ecae652d114f577313c4cc6 (patch)
treeda16d001a2b4377accd96c8f51d549b2eb6d249f /drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
parentdrm/nouveau/fifo: add cgrp, have all channels be part of one (diff)
downloadlinux-0fc72ee9d8d665484ecae652d114f577313c4cc6.tar.gz
linux-0fc72ee9d8d665484ecae652d114f577313c4cc6.tar.bz2
linux-0fc72ee9d8d665484ecae652d114f577313c4cc6.zip
drm/nouveau/fifo: use runlist engine info to lookup engine classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c46
1 files changed, 0 insertions, 46 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
index e2178a8f78a7..5fabf7373079 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
@@ -217,50 +217,6 @@ nvkm_fifo_chan_child_new(const struct nvkm_oclass *oclass, void *data, u32 size,
}
static int
-nvkm_fifo_chan_child_get(struct nvkm_object *object, int index,
- struct nvkm_oclass *oclass)
-{
- struct nvkm_fifo_chan *chan = nvkm_fifo_chan(object);
- struct nvkm_fifo *fifo = chan->fifo;
- struct nvkm_engine *engine;
- u32 engm = chan->engm;
- int engi, ret, c;
-
- for (; c = 0, engi = __ffs(engm), engm; engm &= ~(1ULL << engi)) {
- if (!(engine = fifo->func->id_engine(fifo, engi)))
- continue;
- oclass->engine = engine;
- oclass->base.oclass = 0;
-
- if (engine->func->fifo.sclass) {
- ret = engine->func->fifo.sclass(oclass, index);
- if (oclass->base.oclass) {
- if (!oclass->base.ctor)
- oclass->base.ctor = nvkm_object_new;
- oclass->ctor = nvkm_fifo_chan_child_new;
- return 0;
- }
-
- index -= ret;
- continue;
- }
-
- while (engine->func->sclass[c].oclass) {
- if (c++ == index) {
- oclass->base = engine->func->sclass[index];
- if (!oclass->base.ctor)
- oclass->base.ctor = nvkm_object_new;
- oclass->ctor = nvkm_fifo_chan_child_new;
- return 0;
- }
- }
- index -= c;
- }
-
- return -EINVAL;
-}
-
-static int
nvkm_fifo_chan_uevent(struct nvkm_object *object, void *argv, u32 argc, struct nvkm_uevent *uevent)
{
struct nvkm_fifo_chan *chan = nvkm_fifo_chan(object);
@@ -355,7 +311,6 @@ nvkm_fifo_chan_func = {
.init = nvkm_fifo_chan_init,
.fini = nvkm_fifo_chan_fini,
.map = nvkm_fifo_chan_map,
- .sclass = nvkm_fifo_chan_child_get,
.uevent = nvkm_fifo_chan_uevent,
};
@@ -407,7 +362,6 @@ nvkm_fifo_chan_ctor(const struct nvkm_fifo_chan_func *fn,
nvkm_object_ctor(&nvkm_fifo_chan_func, oclass, &chan->object);
chan->fifo = fifo;
- chan->engm = engm;
INIT_LIST_HEAD(&chan->head);
/* Join channel group.