| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __NVBIOS_INIT_H__ |
| #define __NVBIOS_INIT_H__ |
| |
| struct nvbios_init { |
| struct nvkm_subdev *subdev; |
| u32 offset; |
| |
| struct dcb_output *outp; |
| int or; |
| int link; |
| int head; |
| |
| /* internal state used during parsing */ |
| u8 execute; |
| u32 nested; |
| u32 repeat; |
| u32 repend; |
| u32 ramcfg; |
| }; |
| |
| #define nvbios_init(s,o,ARGS...) ({ \ |
| struct nvbios_init init = { \ |
| .subdev = (s), \ |
| .offset = (o), \ |
| .or = -1, \ |
| .link = 0, \ |
| .head = -1, \ |
| .execute = 1, \ |
| }; \ |
| ARGS \ |
| nvbios_exec(&init); \ |
| }) |
| int nvbios_exec(struct nvbios_init *); |
| |
| int nvbios_post(struct nvkm_subdev *, bool execute); |
| #endif |