]>
Commit | Line | Data |
---|---|---|
dceef5d8 BS |
1 | #ifndef __NVKM_FB_PRIV_H__ |
2 | #define __NVKM_FB_PRIV_H__ | |
dceef5d8 | 3 | #include <subdev/fb.h> |
639c308e | 4 | struct nvkm_bios; |
dceef5d8 | 5 | |
639c308e BS |
6 | #define nvkm_fb_create(p,e,c,d) \ |
7 | nvkm_fb_create_((p), (e), (c), sizeof(**d), (void **)d) | |
8 | #define nvkm_fb_destroy(p) ({ \ | |
b1e4553c BS |
9 | struct nvkm_fb *_fb = (p); \ |
10 | _nvkm_fb_dtor(nv_object(_fb)); \ | |
dceef5d8 | 11 | }) |
639c308e | 12 | #define nvkm_fb_init(p) ({ \ |
b1e4553c BS |
13 | struct nvkm_fb *_fb = (p); \ |
14 | _nvkm_fb_init(nv_object(_fb)); \ | |
dceef5d8 | 15 | }) |
639c308e | 16 | #define nvkm_fb_fini(p,s) ({ \ |
b1e4553c BS |
17 | struct nvkm_fb *_fb = (p); \ |
18 | _nvkm_fb_fini(nv_object(_fb), (s)); \ | |
dceef5d8 BS |
19 | }) |
20 | ||
639c308e BS |
21 | int nvkm_fb_create_(struct nvkm_object *, struct nvkm_object *, |
22 | struct nvkm_oclass *, int, void **); | |
23 | void _nvkm_fb_dtor(struct nvkm_object *); | |
24 | int _nvkm_fb_init(struct nvkm_object *); | |
25 | int _nvkm_fb_fini(struct nvkm_object *, bool); | |
dceef5d8 | 26 | |
639c308e BS |
27 | struct nvkm_fb_impl { |
28 | struct nvkm_oclass base; | |
d36a99d2 | 29 | int (*ram_new)(struct nvkm_fb *, struct nvkm_ram **); |
639c308e | 30 | bool (*memtype)(struct nvkm_fb *, u32); |
8613e731 BS |
31 | }; |
32 | ||
639c308e BS |
33 | bool nv04_fb_memtype_valid(struct nvkm_fb *, u32 memtype); |
34 | bool nv50_fb_memtype_valid(struct nvkm_fb *, u32 memtype); | |
dceef5d8 | 35 | |
639c308e | 36 | int nvkm_fb_bios_memtype(struct nvkm_bios *); |
dceef5d8 | 37 | #endif |