Home | History | Annotate | Line # | Download | only in bios
      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