diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2017-05-19 23:59:35 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-06-16 14:04:49 +1000 |
commit | 78f1ad6f655847411b36bda2b2acbd0648a03d5c (patch) | |
tree | 58607006081fa1b89049c381978ee7b59efa1569 /drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | |
parent | 57b2d73be275f853066aaf5cc33f6c59a94260b2 (diff) |
drm/nouveau/disp: introduce input/output resource abstraction
In order to properly support the SOR -> SOR + pad macro separation
that occurred with GM20x GPUs, we need to separate OR handling out
of the output path code.
This will be used as the base to support ORs (DAC, SOR, PIOR).
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c index 1c655c18097e..24d2f325cbc5 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c @@ -24,6 +24,7 @@ #include "priv.h" #include "conn.h" #include "head.h" +#include "ior.h" #include "outp.h" #include <core/client.h> @@ -414,6 +415,12 @@ nvkm_disp_dtor(struct nvkm_engine *engine) nvkm_outp_del(&outp); } + while (!list_empty(&disp->ior)) { + struct nvkm_ior *ior = + list_first_entry(&disp->ior, typeof(*ior), head); + nvkm_ior_del(&ior); + } + while (!list_empty(&disp->head)) { struct nvkm_head *head = list_first_entry(&disp->head, typeof(*head), head); @@ -439,6 +446,7 @@ nvkm_disp_ctor(const struct nvkm_disp_func *func, struct nvkm_device *device, { disp->func = func; INIT_LIST_HEAD(&disp->head); + INIT_LIST_HEAD(&disp->ior); INIT_LIST_HEAD(&disp->outp); INIT_LIST_HEAD(&disp->conn); return nvkm_engine_ctor(&nvkm_disp, device, index, true, &disp->engine); |