drm/nouveau/gpio: place upper limit on using old-school tvdac bios data
authorBen Skeggs <bskeggs@redhat.com>
Wed, 21 Nov 2012 05:04:51 +0000 (15:04 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 28 Nov 2012 23:56:36 +0000 (09:56 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/core/subdev/bios/gpio.c

index 4c9f1e508165bbd4d4d0ed1b2b777c223fe2962f..c90d4aa3ae4f6334ffa6f73cd51c76ebd4246925 100644 (file)
@@ -101,8 +101,8 @@ dcb_gpio_parse(struct nouveau_bios *bios, int idx, u8 func, u8 line,
        }
 
        /* DCB 2.2, fixed TVDAC GPIO data */
-       if ((entry = dcb_table(bios, &ver, &hdr, &cnt, &len)) && ver >= 0x22) {
-               if (func == DCB_GPIO_TVDAC0) {
+       if ((entry = dcb_table(bios, &ver, &hdr, &cnt, &len))) {
+               if (ver >= 0x22 && ver < 0x30 && func == DCB_GPIO_TVDAC0) {
                        u8 conf = nv_ro08(bios, entry - 5);
                        u8 addr = nv_ro08(bios, entry - 4);
                        if (conf & 0x01) {