Commit 28c62976 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/devinit: use new devinit script interpreter entry-point

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 74bcb2e9
......@@ -2308,32 +2308,18 @@ nvbios_post(struct nvkm_subdev *subdev, bool execute)
if (execute)
nvkm_debug(subdev, "running init tables\n");
while (!ret && (data = (init_script(bios, ++i)))) {
struct nvbios_init init = {
.subdev = subdev,
.bios = bios,
.offset = data,
.outp = NULL,
.head = -1,
.execute = execute ? 1 : 0,
};
ret = nvbios_exec(&init);
ret = nvbios_init(subdev, data,
init.execute = execute ? 1 : 0;
);
}
/* the vbios parser will run this right after the normal init
* tables, whereas the binary driver appears to run it later.
*/
if (!ret && (data = init_unknown_script(bios))) {
struct nvbios_init init = {
.subdev = subdev,
.bios = bios,
.offset = data,
.outp = NULL,
.head = -1,
.execute = execute ? 1 : 0,
};
ret = nvbios_exec(&init);
ret = nvbios_init(subdev, data,
init.execute = execute ? 1 : 0;
);
}
return ret;
......
......@@ -137,16 +137,11 @@ nv50_devinit_init(struct nvkm_devinit *base)
while (init->base.post && dcb_outp_parse(bios, i, &ver, &hdr, &outp)) {
if (nvbios_outp_match(bios, outp.hasht, outp.hashm,
&ver, &hdr, &cnt, &len, &info)) {
struct nvbios_init exec = {
.subdev = subdev,
.bios = bios,
.offset = info.script[0],
.outp = &outp,
.crtc = -1,
.execute = 1,
};
nvbios_exec(&exec);
nvbios_init(subdev, info.script[0],
init.outp = &outp;
init.or = ffs(outp.or) - 1;
init.link = outp.sorconf.link == 2;
);
}
i++;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment