diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_bios.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bios.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c index 2c6b4a00debb..7df6acc8bb34 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c | |||
@@ -1258,7 +1258,7 @@ olddcb_table(struct drm_device *dev) | |||
1258 | return NULL; | 1258 | return NULL; |
1259 | } | 1259 | } |
1260 | 1260 | ||
1261 | if (dcb[0] >= 0x41) { | 1261 | if (dcb[0] >= 0x42) { |
1262 | NV_WARN(drm, "DCB version 0x%02x unknown\n", dcb[0]); | 1262 | NV_WARN(drm, "DCB version 0x%02x unknown\n", dcb[0]); |
1263 | return NULL; | 1263 | return NULL; |
1264 | } else | 1264 | } else |
@@ -1481,16 +1481,19 @@ parse_dcb20_entry(struct drm_device *dev, struct dcb_table *dcb, | |||
1481 | entry->dpconf.link_bw = 540000; | 1481 | entry->dpconf.link_bw = 540000; |
1482 | break; | 1482 | break; |
1483 | } | 1483 | } |
1484 | switch ((conf & 0x0f000000) >> 24) { | 1484 | entry->dpconf.link_nr = (conf & 0x0f000000) >> 24; |
1485 | case 0xf: | 1485 | if (dcb->version < 0x41) { |
1486 | entry->dpconf.link_nr = 4; | 1486 | switch (entry->dpconf.link_nr) { |
1487 | break; | 1487 | case 0xf: |
1488 | case 0x3: | 1488 | entry->dpconf.link_nr = 4; |
1489 | entry->dpconf.link_nr = 2; | 1489 | break; |
1490 | break; | 1490 | case 0x3: |
1491 | default: | 1491 | entry->dpconf.link_nr = 2; |
1492 | entry->dpconf.link_nr = 1; | 1492 | break; |
1493 | break; | 1493 | default: |
1494 | entry->dpconf.link_nr = 1; | ||
1495 | break; | ||
1496 | } | ||
1494 | } | 1497 | } |
1495 | link = entry->dpconf.sor.link; | 1498 | link = entry->dpconf.sor.link; |
1496 | entry->i2c_index += NV_I2C_AUX(0); | 1499 | entry->i2c_index += NV_I2C_AUX(0); |