Linux-libre 3.10.80-gnu
[librecmc/linux-libre.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
13         void __iomem *iomem;
14         struct nouveau_mm heap;
15
16         struct nouveau_gpuobj *vbios;
17         struct nouveau_ramht  *ramht;
18         struct nouveau_gpuobj *ramro;
19         struct nouveau_gpuobj *ramfc;
20 };
21
22 static inline struct nv04_instmem_priv *
23 nv04_instmem(void *obj)
24 {
25         return (void *)nouveau_instmem(obj);
26 }
27
28 struct nv04_instobj_priv {
29         struct nouveau_instobj base;
30         struct nouveau_mm_node *mem;
31 };
32
33 void nv04_instmem_dtor(struct nouveau_object *);
34
35 int nv04_instmem_alloc(struct nouveau_instmem *, struct nouveau_object *,
36                        u32 size, u32 align, struct nouveau_object **pobject);
37
38 #endif