summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 14:54:18 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:40:38 +1000
commit898a2b32138da26ed8f7abc0cc8232741ca03de7 (patch)
tree074fe2ff37d9c2d872f8a4c3d8b3b1e3f00b5930 /drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h
parentcd459e7776c2c08e3771e20fca7de96272f2c9cd (diff)
drm/nouveau/sw: turn flip completion into an event
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h b/drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h
new file mode 100644
index 000000000000..b5cf4c517a95
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h
@@ -0,0 +1,25 @@
+#ifndef __NVKM_SW_CHAN_H__
+#define __NVKM_SW_CHAN_H__
+#include "priv.h"
+#include <core/engctx.h>
+#include <core/event.h>
+
+struct nvkm_sw_chan {
+ struct nvkm_engctx base;
+ struct nvkm_event event;
+};
+
+#define nvkm_sw_context_create(p,e,c,d) \
+ nvkm_sw_chan_ctor((p), (e), (c), sizeof(**d), (void **)d)
+int nvkm_sw_chan_ctor(struct nvkm_object *, struct nvkm_object *,
+ struct nvkm_oclass *, int, void **);
+void nvkm_sw_chan_dtor(struct nvkm_object *);
+#define nvkm_sw_context_init(d) \
+ nvkm_engctx_init(&(d)->base)
+#define nvkm_sw_context_fini(d,s) \
+ nvkm_engctx_fini(&(d)->base, (s))
+
+#define _nvkm_sw_context_dtor nvkm_sw_chan_dtor
+#define _nvkm_sw_context_init _nvkm_engctx_init
+#define _nvkm_sw_context_fini _nvkm_engctx_fini
+#endif