Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvkm / subdev / fb / nv04.h
1 #ifndef __NVKM_FB_NV04_H__
2 #define __NVKM_FB_NV04_H__
3 #include "priv.h"
4
5 struct nv04_fb_priv {
6         struct nvkm_fb base;
7 };
8
9 int  nv04_fb_ctor(struct nvkm_object *, struct nvkm_object *,
10                   struct nvkm_oclass *, void *, u32,
11                   struct nvkm_object **);
12
13 struct nv04_fb_impl {
14         struct nvkm_fb_impl base;
15         struct {
16                 int regions;
17                 void (*init)(struct nvkm_fb *, int i, u32 addr, u32 size,
18                              u32 pitch, u32 flags, struct nvkm_fb_tile *);
19                 void (*comp)(struct nvkm_fb *, int i, u32 size, u32 flags,
20                              struct nvkm_fb_tile *);
21                 void (*fini)(struct nvkm_fb *, int i,
22                              struct nvkm_fb_tile *);
23                 void (*prog)(struct nvkm_fb *, int i,
24                              struct nvkm_fb_tile *);
25         } tile;
26 };
27
28 void nv10_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
29                        u32 pitch, u32 flags, struct nvkm_fb_tile *);
30 void nv10_fb_tile_fini(struct nvkm_fb *, int i, struct nvkm_fb_tile *);
31 void nv10_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
32
33 void nv20_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
34                        u32 pitch, u32 flags, struct nvkm_fb_tile *);
35 void nv20_fb_tile_fini(struct nvkm_fb *, int i, struct nvkm_fb_tile *);
36 void nv20_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
37
38 int  nv30_fb_init(struct nvkm_object *);
39 void nv30_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
40                        u32 pitch, u32 flags, struct nvkm_fb_tile *);
41
42 void nv40_fb_tile_comp(struct nvkm_fb *, int i, u32 size, u32 flags,
43                        struct nvkm_fb_tile *);
44
45 int  nv41_fb_init(struct nvkm_object *);
46 void nv41_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
47
48 int  nv44_fb_init(struct nvkm_object *);
49 void nv44_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
50
51 void nv46_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
52                        u32 pitch, u32 flags, struct nvkm_fb_tile *);
53 #endif