drm/nouveau: port all engines to new engine module format
[linux-block.git] / drivers / gpu / drm / nouveau / core / subdev / instmem / nv04.h
1 #ifndef __NV04_INSTMEM_H__
2 #define __NV04_INSTMEM_H__
3
4 #include <core/gpuobj.h>
5 #include <core/ramht.h>
6 #include <core/mm.h>
7
8 #include <subdev/instmem.h>
9
10 struct nv04_instmem_priv {
11         struct nouveau_instmem base;
12         bool created;
13
14         void __iomem *iomem;
15         struct nouveau_mm heap;
16
17         struct nouveau_gpuobj *vbios;
18         struct nouveau_ramht  *ramht;
19         struct nouveau_gpuobj *ramro;
20         struct nouveau_gpuobj *ramfc;
21 };
22
23 static inline struct nv04_instmem_priv *
24 nv04_instmem(void *obj)
25 {
26         return (void *)nouveau_instmem(obj);
27 }
28
29 struct nv04_instobj_priv {
30         struct nouveau_instobj base;
31         struct nouveau_mm_node *mem;
32 };
33
34 void nv04_instmem_dtor(struct nouveau_object *);
35
36 int nv04_instmem_alloc(struct nouveau_instmem *, struct nouveau_object *,
37                        u32 size, u32 align, struct nouveau_object **pobject);
38
39 #endif