drm/nouveau/bios/dp: fix handling of LevelEntryTableIndex on DP table 4.2
authorBen Skeggs <bskeggs@redhat.com>
Tue, 13 Dec 2016 00:22:53 +0000 (10:22 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 13 Dec 2016 01:40:16 +0000 (11:40 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c

index d89e78c4e6890c43f361d1f1acb3ad252a57b844..972370ed36f090d0c0323253b79735edd355db07 100644 (file)
@@ -207,8 +207,11 @@ nvbios_dpcfg_match(struct nvkm_bios *bios, u16 outp, u8 pc, u8 vs, u8 pe,
        if (*ver >= 0x30) {
                const u8 vsoff[] = { 0, 4, 7, 9 };
                idx = (pc * 10) + vsoff[vs] + pe;
-               if (*ver >= 0x40 && *hdr >= 0x12)
+               if (*ver >= 0x40 && *ver <= 0x41 && *hdr >= 0x12)
                        idx += nvbios_rd08(bios, outp + 0x11) * 40;
+               else
+               if (*ver >= 0x42)
+                       idx += nvbios_rd08(bios, outp + 0x11) * 10;
        } else {
                while ((data = nvbios_dpcfg_entry(bios, outp, ++idx,
                                                  ver, hdr, cnt, len))) {