These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / engine / mpeg / nv31.h
index 782b796..d3bb34f 100644 (file)
@@ -1,13 +1,30 @@
 #ifndef __NV31_MPEG_H__
 #define __NV31_MPEG_H__
+#define nv31_mpeg(p) container_of((p), struct nv31_mpeg, engine)
+#include "priv.h"
 #include <engine/mpeg.h>
 
-struct nv31_mpeg_chan {
-       struct nvkm_object base;
+struct nv31_mpeg {
+       const struct nv31_mpeg_func *func;
+       struct nvkm_engine engine;
+       struct nv31_mpeg_chan *chan;
 };
 
-struct nv31_mpeg_priv {
-       struct nvkm_mpeg base;
-       struct nv31_mpeg_chan *chan;
+int nv31_mpeg_new_(const struct nv31_mpeg_func *, struct nvkm_device *,
+                  int index, struct nvkm_engine **);
+
+struct nv31_mpeg_func {
+       bool (*mthd_dma)(struct nvkm_device *, u32 mthd, u32 data);
 };
+
+#define nv31_mpeg_chan(p) container_of((p), struct nv31_mpeg_chan, object)
+
+struct nv31_mpeg_chan {
+       struct nvkm_object object;
+       struct nv31_mpeg *mpeg;
+       struct nvkm_fifo_chan *fifo;
+};
+
+int nv31_mpeg_chan_new(struct nvkm_fifo_chan *, const struct nvkm_oclass *,
+                      struct nvkm_object **);
 #endif