Linux-libre 3.17.4-gnu
[librecmc/linux-libre.git] / drivers / gpu / drm / nouveau / core / subdev / fb / nv50.h
1 #ifndef __NVKM_FB_NV50_H__
2 #define __NVKM_FB_NV50_H__
3
4 #include "priv.h"
5
6 struct nv50_fb_priv {
7         struct nouveau_fb base;
8         struct page *r100c08_page;
9         dma_addr_t r100c08;
10 };
11
12 int  nv50_fb_ctor(struct nouveau_object *, struct nouveau_object *,
13                   struct nouveau_oclass *, void *, u32,
14                   struct nouveau_object **);
15 void nv50_fb_dtor(struct nouveau_object *);
16 int  nv50_fb_init(struct nouveau_object *);
17
18 struct nv50_fb_impl {
19         struct nouveau_fb_impl base;
20         u32 trap;
21 };
22
23 #define nv50_ram_create(p,e,o,d)                                               \
24         nv50_ram_create_((p), (e), (o), sizeof(**d), (void **)d)
25 int  nv50_ram_create_(struct nouveau_object *, struct nouveau_object *,
26                       struct nouveau_oclass *, int, void **);
27 int  nv50_ram_get(struct nouveau_fb *, u64 size, u32 align, u32 ncmin,
28                   u32 memtype, struct nouveau_mem **);
29 void nv50_ram_put(struct nouveau_fb *, struct nouveau_mem **);
30 void __nv50_ram_put(struct nouveau_fb *, struct nouveau_mem *);
31 extern int nv50_fb_memtype[0x80];
32
33 #endif