mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/bios/pll: check BIT table version before trying to parse it
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
2781c928b1
commit
4d3df19a8e
|
@ -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 *
|
||||
|
|
Loading…
Reference in New Issue