These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / subdev / devinit / priv.h
index bb51a95..e1f6ae5 100644 (file)
@@ -1,34 +1,21 @@
 #ifndef __NVKM_DEVINIT_PRIV_H__
 #define __NVKM_DEVINIT_PRIV_H__
+#define nvkm_devinit(p) container_of((p), struct nvkm_devinit, subdev)
 #include <subdev/devinit.h>
 
-struct nvkm_devinit_impl {
-       struct nvkm_oclass base;
+struct nvkm_devinit_func {
+       void *(*dtor)(struct nvkm_devinit *);
+       void (*preinit)(struct nvkm_devinit *);
+       void (*init)(struct nvkm_devinit *);
+       int  (*post)(struct nvkm_devinit *, bool post);
+       u32  (*mmio)(struct nvkm_devinit *, u32);
        void (*meminit)(struct nvkm_devinit *);
        int  (*pll_set)(struct nvkm_devinit *, u32 type, u32 freq);
        u64  (*disable)(struct nvkm_devinit *);
-       u32  (*mmio)(struct nvkm_devinit *, u32);
-       int  (*post)(struct nvkm_subdev *, bool);
 };
 
-#define nvkm_devinit_create(p,e,o,d)                                        \
-       nvkm_devinit_create_((p), (e), (o), sizeof(**d), (void **)d)
-#define nvkm_devinit_destroy(p) ({                                          \
-       struct nvkm_devinit *d = (p);                                       \
-       _nvkm_devinit_dtor(nv_object(d));                                   \
-})
-#define nvkm_devinit_init(p) ({                                             \
-       struct nvkm_devinit *d = (p);                                       \
-       _nvkm_devinit_init(nv_object(d));                                   \
-})
-#define nvkm_devinit_fini(p,s) ({                                           \
-       struct nvkm_devinit *d = (p);                                       \
-       _nvkm_devinit_fini(nv_object(d), (s));                              \
-})
+void nvkm_devinit_ctor(const struct nvkm_devinit_func *, struct nvkm_device *,
+                      int index, struct nvkm_devinit *);
 
-int nvkm_devinit_create_(struct nvkm_object *, struct nvkm_object *,
-                           struct nvkm_oclass *, int, void **);
-void _nvkm_devinit_dtor(struct nvkm_object *);
-int _nvkm_devinit_init(struct nvkm_object *);
-int _nvkm_devinit_fini(struct nvkm_object *, bool suspend);
+int nv04_devinit_post(struct nvkm_devinit *, bool);
 #endif