drm/nouveau: parse dcb gpio/connector tables after encoders
authorBen Skeggs <bskeggs@redhat.com>
Wed, 24 Feb 2010 00:48:16 +0000 (10:48 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 25 Feb 2010 05:09:26 +0000 (15:09 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_bios.c

index ca65a5b11fa8a4050cf601cd57082c4ceaa1b9cb..ea690a7353253030f0446c5a41463d4a361e4e83 100644 (file)
@@ -5646,9 +5646,6 @@ parse_dcb_table(struct drm_device *dev, struct nvbios *bios, bool twoHeads)
                        dcb->i2c_default_indices = dcb->i2c_table[4];
        }
 
-       parse_dcb_gpio_table(bios);
-       parse_dcb_connector_table(bios);
-
        if (entries > DCB_MAX_NUM_ENTRIES)
                entries = DCB_MAX_NUM_ENTRIES;
 
@@ -5684,7 +5681,12 @@ parse_dcb_table(struct drm_device *dev, struct nvbios *bios, bool twoHeads)
        if (dcb->version < 0x21)
                merge_like_dcb_entries(dev, dcb);
 
-       return dcb->entries ? 0 : -ENXIO;
+       if (!dcb->entries)
+               return -ENXIO;
+
+       parse_dcb_gpio_table(bios);
+       parse_dcb_connector_table(bios);
+       return 0;
 }
 
 static void