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