1 #ifndef __NVKM_FB_PRIV_H__ 2 #define __NVKM_FB_PRIV_H__ 3 #include <subdev/fb.h> 4 struct nvkm_bios; 5 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) ({ \ 9 struct nvkm_fb *_fb = (p); \ 10 _nvkm_fb_dtor(nv_object(_fb)); \ 11 }) 12 #define nvkm_fb_init(p) ({ \ 13 struct nvkm_fb *_fb = (p); \ 14 _nvkm_fb_init(nv_object(_fb)); \ 15 }) 16 #define nvkm_fb_fini(p,s) ({ \ 17 struct nvkm_fb *_fb = (p); \ 18 _nvkm_fb_fini(nv_object(_fb), (s)); \ 19 }) 20 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); 26 27 struct nvkm_fb_impl { 28 struct nvkm_oclass base; 29 int (*ram_new)(struct nvkm_fb *, struct nvkm_ram **); 30 bool (*memtype)(struct nvkm_fb *, u32); 31 }; 32 33 bool nv04_fb_memtype_valid(struct nvkm_fb *, u32 memtype); 34 bool nv50_fb_memtype_valid(struct nvkm_fb *, u32 memtype); 35 36 int nvkm_fb_bios_memtype(struct nvkm_bios *); 37 #endif 38