xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nv50.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: nv50.h,v 1.4 2021/12/18 23:45:39 riastradh Exp $	*/
2 
3 /* SPDX-License-Identifier: MIT */
4 #ifndef __NVKM_FB_NV50_H__
5 #define __NVKM_FB_NV50_H__
6 #define nv50_fb(p) container_of((p), struct nv50_fb, base)
7 #include "priv.h"
8 
9 struct nv50_fb {
10 	const struct nv50_fb_func *func;
11 	struct nvkm_fb base;
12 #ifdef __NetBSD__
13 	bus_dma_segment_t r100c08_seg;
14 	bus_dmamap_t r100c08_page;
15 	void *r100c08_kva;
16 #else
17 	struct page *r100c08_page;
18 #endif
19 	dma_addr_t r100c08;
20 };
21 
22 struct nv50_fb_func {
23 	int (*ram_new)(struct nvkm_fb *, struct nvkm_ram **);
24 	u32 (*tags)(struct nvkm_fb *);
25 	u32 trap;
26 };
27 
28 int nv50_fb_new_(const struct nv50_fb_func *, struct nvkm_device *, int index,
29 		 struct nvkm_fb **pfb);
30 #endif
31