blob: faa88c8c66fe6e5f59885b207d67922243033e18 [file] [log] [blame]
Ben Skeggs9ca30372013-10-18 14:44:23 +10001#ifndef __NVKM_FB_NV50_H__
2#define __NVKM_FB_NV50_H__
Ben Skeggs03c89522015-08-20 14:54:20 +10003#define nv50_fb(p) container_of((p), struct nv50_fb, base)
Ben Skeggs9ca30372013-10-18 14:44:23 +10004#include "priv.h"
5
Ben Skeggsb1e45532015-08-20 14:54:06 +10006struct nv50_fb {
Ben Skeggs03c89522015-08-20 14:54:20 +10007 const struct nv50_fb_func *func;
Ben Skeggs639c3082015-01-14 14:52:58 +10008 struct nvkm_fb base;
Ben Skeggs9ca30372013-10-18 14:44:23 +10009 struct page *r100c08_page;
10 dma_addr_t r100c08;
11};
12
Ben Skeggs03c89522015-08-20 14:54:20 +100013struct nv50_fb_func {
14 int (*ram_new)(struct nvkm_fb *, struct nvkm_ram **);
Ben Skeggs9ca30372013-10-18 14:44:23 +100015 u32 trap;
16};
17
Ben Skeggs03c89522015-08-20 14:54:20 +100018int nv50_fb_new_(const struct nv50_fb_func *, struct nvkm_device *, int index,
19 struct nvkm_fb **pfb);
Ben Skeggs20cdeaf2013-10-21 10:26:04 +100020extern int nv50_fb_memtype[0x80];
Ben Skeggs9ca30372013-10-18 14:44:23 +100021#endif