These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / include / nvkm / engine / xtensa.h
index 7a216cc..3128d21 100644 (file)
@@ -1,35 +1,23 @@
 #ifndef __NVKM_XTENSA_H__
 #define __NVKM_XTENSA_H__
+#define nvkm_xtensa(p) container_of((p), struct nvkm_xtensa, engine)
 #include <core/engine.h>
-struct nvkm_gpuobj;
 
 struct nvkm_xtensa {
-       struct nvkm_engine base;
-
+       const struct nvkm_xtensa_func *func;
        u32 addr;
-       struct nvkm_gpuobj *gpu_fw;
-       u32 fifo_val;
-       u32 unkd28;
-};
+       struct nvkm_engine engine;
 
-#define nvkm_xtensa_create(p,e,c,b,d,i,f,r)                            \
-       nvkm_xtensa_create_((p), (e), (c), (b), (d), (i), (f),  \
-                              sizeof(**r),(void **)r)
+       struct nvkm_memory *gpu_fw;
+};
 
-int _nvkm_xtensa_engctx_ctor(struct nvkm_object *,
-                               struct nvkm_object *,
-                               struct nvkm_oclass *, void *, u32,
-                               struct nvkm_object **);
+int nvkm_xtensa_new_(const struct nvkm_xtensa_func *, struct nvkm_device *,
+                    int index, bool enable, u32 addr, struct nvkm_engine **);
 
-void _nvkm_xtensa_intr(struct nvkm_subdev *);
-int nvkm_xtensa_create_(struct nvkm_object *,
-                          struct nvkm_object *,
-                          struct nvkm_oclass *, u32, bool,
-                          const char *, const char *,
-                          int, void **);
-#define _nvkm_xtensa_dtor _nvkm_engine_dtor
-int _nvkm_xtensa_init(struct nvkm_object *);
-int _nvkm_xtensa_fini(struct nvkm_object *, bool);
-u32  _nvkm_xtensa_rd32(struct nvkm_object *, u64);
-void _nvkm_xtensa_wr32(struct nvkm_object *, u64, u32);
+struct nvkm_xtensa_func {
+       u32 pmc_enable;
+       u32 fifo_val;
+       u32 unkd28;
+       struct nvkm_sclass sclass[];
+};
 #endif