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