1#ifndef __NVKM_FB_NV04_H__
2#define __NVKM_FB_NV04_H__
3
4#include "priv.h"
5
6struct nv04_fb_priv {
7 struct nouveau_fb base;
8};
9
10int nv04_fb_ctor(struct nouveau_object *, struct nouveau_object *,
11 struct nouveau_oclass *, void *, u32,
12 struct nouveau_object **);
13
14struct 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
29void nv10_fb_tile_init(struct nouveau_fb *, int i, u32 addr, u32 size,
30 u32 pitch, u32 flags, struct nouveau_fb_tile *);
31void nv10_fb_tile_fini(struct nouveau_fb *, int i, struct nouveau_fb_tile *);
32void nv10_fb_tile_prog(struct nouveau_fb *, int, struct nouveau_fb_tile *);
33
34void nv20_fb_tile_init(struct nouveau_fb *, int i, u32 addr, u32 size,
35 u32 pitch, u32 flags, struct nouveau_fb_tile *);
36void nv20_fb_tile_fini(struct nouveau_fb *, int i, struct nouveau_fb_tile *);
37void nv20_fb_tile_prog(struct nouveau_fb *, int, struct nouveau_fb_tile *);
38
39int nv30_fb_init(struct nouveau_object *);
40void nv30_fb_tile_init(struct nouveau_fb *, int i, u32 addr, u32 size,
41 u32 pitch, u32 flags, struct nouveau_fb_tile *);
42
43void nv40_fb_tile_comp(struct nouveau_fb *, int i, u32 size, u32 flags,
44 struct nouveau_fb_tile *);
45
46int nv41_fb_init(struct nouveau_object *);
47void nv41_fb_tile_prog(struct nouveau_fb *, int, struct nouveau_fb_tile *);
48
49int nv44_fb_init(struct nouveau_object *);
50void nv44_fb_tile_prog(struct nouveau_fb *, int, struct nouveau_fb_tile *);
51
52void 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
56