diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-12-13 10:22:53 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-12-13 10:26:30 +1000 |
commit | c00ff312492258bb12901be8e28af6a840716716 (patch) | |
tree | 7084fea1629973b66d232ff52473d7f05832466b /drm | |
parent | 159925805ff47bcd3ede2f0d349a323ff4202c85 (diff) | |
download | nouveau-c00ff312492258bb12901be8e28af6a840716716.tar.gz |
bios/dp: fix handling of LevelEntryTableIndex on DP table 4.2
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm')
-rw-r--r-- | drm/nouveau/nvkm/subdev/bios/dp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drm/nouveau/nvkm/subdev/bios/dp.c b/drm/nouveau/nvkm/subdev/bios/dp.c index d89e78c4e..972370ed3 100644 --- a/drm/nouveau/nvkm/subdev/bios/dp.c +++ b/drm/nouveau/nvkm/subdev/bios/dp.c @@ -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))) { |