This makes use of all the additional routing and state added in previous commits, making it possible to deal with GM20x macro link routing, while also sharing code between the NV50 and GF119 implementations. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
#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
|