]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h
drm/nouveau/devinit: convert to new-style nvkm_subdev
[mirror_ubuntu-bionic-kernel.git] / drivers / gpu / drm / nouveau / nvkm / subdev / fb / priv.h
CommitLineData
dceef5d8
BS
1#ifndef __NVKM_FB_PRIV_H__
2#define __NVKM_FB_PRIV_H__
dceef5d8 3#include <subdev/fb.h>
639c308e 4struct 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
21int nvkm_fb_create_(struct nvkm_object *, struct nvkm_object *,
22 struct nvkm_oclass *, int, void **);
23void _nvkm_fb_dtor(struct nvkm_object *);
24int _nvkm_fb_init(struct nvkm_object *);
25int _nvkm_fb_fini(struct nvkm_object *, bool);
dceef5d8 26
639c308e
BS
27struct 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
33bool nv04_fb_memtype_valid(struct nvkm_fb *, u32 memtype);
34bool nv50_fb_memtype_valid(struct nvkm_fb *, u32 memtype);
dceef5d8 35
639c308e 36int nvkm_fb_bios_memtype(struct nvkm_bios *);
dceef5d8 37#endif