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) ...@@ -2308,32 +2308,18 @@ nvbios_post(struct nvkm_subdev *subdev, bool execute)
if (execute) if (execute)
nvkm_debug(subdev, "running init tables\n"); nvkm_debug(subdev, "running init tables\n");
while (!ret && (data = (init_script(bios, ++i)))) { while (!ret && (data = (init_script(bios, ++i)))) {
struct nvbios_init init = { ret = nvbios_init(subdev, data,
.subdev = subdev, init.execute = execute ? 1 : 0;
.bios = bios, );
.offset = data,
.outp = NULL,
.head = -1,
.execute = execute ? 1 : 0,
};
ret = nvbios_exec(&init);
} }
/* the vbios parser will run this right after the normal init /* the vbios parser will run this right after the normal init
* tables, whereas the binary driver appears to run it later. * tables, whereas the binary driver appears to run it later.
*/ */
if (!ret && (data = init_unknown_script(bios))) { if (!ret && (data = init_unknown_script(bios))) {
struct nvbios_init init = { ret = nvbios_init(subdev, data,
.subdev = subdev, init.execute = execute ? 1 : 0;
.bios = bios, );
.offset = data,
.outp = NULL,
.head = -1,
.execute = execute ? 1 : 0,
};
ret = nvbios_exec(&init);
} }
return ret; return ret;
......
...@@ -137,16 +137,11 @@ nv50_devinit_init(struct nvkm_devinit *base) ...@@ -137,16 +137,11 @@ nv50_devinit_init(struct nvkm_devinit *base)
while (init->base.post && dcb_outp_parse(bios, i, &ver, &hdr, &outp)) { while (init->base.post && dcb_outp_parse(bios, i, &ver, &hdr, &outp)) {
if (nvbios_outp_match(bios, outp.hasht, outp.hashm, if (nvbios_outp_match(bios, outp.hasht, outp.hashm,
&ver, &hdr, &cnt, &len, &info)) { &ver, &hdr, &cnt, &len, &info)) {
struct nvbios_init exec = { nvbios_init(subdev, info.script[0],
.subdev = subdev, init.outp = &outp;
.bios = bios, init.or = ffs(outp.or) - 1;
.offset = info.script[0], init.link = outp.sorconf.link == 2;
.outp = &outp, );
.crtc = -1,
.execute = 1,
};
nvbios_exec(&exec);
} }
i++; 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