Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e24c9c44 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/bios/devinit: properly handle unknown generic conditions



Upon encountering an unknown condition code, the script interpreter
is supposed to skip 'size' bytes and continue at the next devinit
token.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 989f5784
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -795,11 +795,11 @@ init_generic_condition(struct nvbios_init *init)
	struct nvkm_bios *bios = init->bios;
	struct nvbios_dpout info;
	u8  cond = nvbios_rd08(bios, init->offset + 1);
	u8  unkn = nvbios_rd08(bios, init->offset + 2);
	u8  size = nvbios_rd08(bios, init->offset + 2);
	u8  ver, hdr, cnt, len;
	u16 data;

	trace("GENERIC_CONDITION\t0x%02x 0x%02x\n", cond, unkn);
	trace("GENERIC_CONDITION\t0x%02x 0x%02x\n", cond, size);
	init->offset += 3;

	switch (cond) {
@@ -829,6 +829,7 @@ init_generic_condition(struct nvbios_init *init)
		break;
	default:
		warn("INIT_GENERIC_CONDITON: unknown 0x%02x\n", cond);
		init->offset += size;
		break;
	}
}