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

Commit 4d3df19a authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/bios/pll: check BIT table version before trying to parse it



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2781c928
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -81,9 +81,11 @@ static u16
pll_limits_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
{
	struct bit_entry bit_C;
	u16 data = 0x0000;

	if (!bit_entry(bios, 'C', &bit_C) && bit_C.length >= 10) {
		u16 data = nvbios_rd16(bios, bit_C.offset + 8);
	if (!bit_entry(bios, 'C', &bit_C)) {
		if (bit_C.version == 1 && bit_C.length >= 10)
			data = nvbios_rd16(bios, bit_C.offset + 8);
		if (data) {
			*ver = nvbios_rd08(bios, data + 0);
			*hdr = nvbios_rd08(bios, data + 1);
@@ -94,7 +96,7 @@ pll_limits_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
	}

	if (bmp_version(bios) >= 0x0524) {
		u16 data = nvbios_rd16(bios, bios->bmp_offset + 142);
		data = nvbios_rd16(bios, bios->bmp_offset + 142);
		if (data) {
			*ver = nvbios_rd08(bios, data + 0);
			*hdr = 1;
@@ -105,7 +107,7 @@ pll_limits_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
	}

	*ver = 0x00;
	return 0x0000;
	return data;
}

static struct pll_mapping *