xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/subdev/bios/init.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: init.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $	*/
2 
3 /* SPDX-License-Identifier: MIT */
4 #ifndef __NVBIOS_INIT_H__
5 #define __NVBIOS_INIT_H__
6 
7 struct nvbios_init {
8 	struct nvkm_subdev *subdev;
9 	u32 offset;
10 
11 	struct dcb_output *outp;
12 	int or;
13 	int link;
14 	int head;
15 
16 	/* internal state used during parsing */
17 	u8 execute;
18 	u32 nested;
19 	u32 repeat;
20 	u32 repend;
21 	u32 ramcfg;
22 };
23 
24 #define nvbios_init(s,o,ARGS...) ({                                            \
25 	struct nvbios_init init = {                                            \
26 		.subdev = (s),                                                 \
27 		.offset = (o),                                                 \
28 		.or = -1,                                                      \
29 		.link = 0,                                                     \
30 		.head = -1,                                                    \
31 		.execute = 1,                                                  \
32 	};                                                                     \
33 	ARGS                                                                   \
34 	nvbios_exec(&init);                                                    \
35 })
36 int nvbios_exec(struct nvbios_init *);
37 
38 int nvbios_post(struct nvkm_subdev *, bool execute);
39 #endif
40