Signed-off-by: Karol Herbst <karolher...@gmail.com>
---
 drm/nouveau/nvkm/subdev/bios/vpstate.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drm/nouveau/nvkm/subdev/bios/vpstate.c 
b/drm/nouveau/nvkm/subdev/bios/vpstate.c
index 20b6fc82..71524548 100644
--- a/drm/nouveau/nvkm/subdev/bios/vpstate.c
+++ b/drm/nouveau/nvkm/subdev/bios/vpstate.c
@@ -58,8 +58,14 @@ nvbios_vpstate_parse(struct nvkm_bios *b, struct 
nvbios_vpstate_header *h)
                h->ecount   = nvbios_rd08(b, h->offset + 0x5);
 
                h->base_id  = nvbios_rd08(b, h->offset + 0x0f);
-               h->boost_id = nvbios_rd08(b, h->offset + 0x10);
-               h->tdp_id   = nvbios_rd08(b, h->offset + 0x11);
+               if (h->hlen > 0x10)
+                       h->boost_id = nvbios_rd08(b, h->offset + 0x10);
+               else
+                       h->boost_id = 0xff;
+               if (h->hlen > 0x11)
+                       h->tdp_id = nvbios_rd08(b, h->offset + 0x11);
+               else
+                       h->tdp_id = 0xff;
                return 0;
        default:
                return -EINVAL;
-- 
2.14.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to