These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / engine / sw / chan.h
diff --git a/kernel/drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h b/kernel/drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h
new file mode 100644 (file)
index 0000000..6608bf6
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef __NVKM_SW_CHAN_H__
+#define __NVKM_SW_CHAN_H__
+#define nvkm_sw_chan(p) container_of((p), struct nvkm_sw_chan, object)
+#include "priv.h"
+#include <core/event.h>
+
+struct nvkm_sw_chan {
+       const struct nvkm_sw_chan_func *func;
+       struct nvkm_object object;
+       struct nvkm_sw *sw;
+       struct nvkm_fifo_chan *fifo;
+       struct list_head head;
+
+       struct nvkm_event event;
+};
+
+struct nvkm_sw_chan_func {
+       void *(*dtor)(struct nvkm_sw_chan *);
+       bool (*mthd)(struct nvkm_sw_chan *, int subc, u32 mthd, u32 data);
+};
+
+int nvkm_sw_chan_ctor(const struct nvkm_sw_chan_func *, struct nvkm_sw *,
+                     struct nvkm_fifo_chan *, const struct nvkm_oclass *,
+                     struct nvkm_sw_chan *);
+bool nvkm_sw_chan_mthd(struct nvkm_sw_chan *, int subc, u32 mthd, u32 data);
+#endif