diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-08-18 20:23:47 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-12-02 00:43:50 -0500 |
commit | dbbd6bcfd42fd977b1615224fc96f09ebb6edb6b (patch) | |
tree | 07dc8b7c078e633e4bb3a4b4f30760369400a4f0 | |
parent | 083dba02947db82f97a6da6dcffd29d15ad94889 (diff) |
drm/nouveau: add support for gm204
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bios.c | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_display.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_display.c | 1 |
3 files changed, 16 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); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c index 2640fcfa5c37..a311a3f932f0 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c | |||
@@ -479,6 +479,7 @@ nouveau_display_create(struct drm_device *dev) | |||
479 | 479 | ||
480 | if (nouveau_modeset != 2 && drm->vbios.dcb.entries) { | 480 | if (nouveau_modeset != 2 && drm->vbios.dcb.entries) { |
481 | static const u16 oclass[] = { | 481 | static const u16 oclass[] = { |
482 | GM204_DISP, | ||
482 | GM107_DISP, | 483 | GM107_DISP, |
483 | GK110_DISP, | 484 | GK110_DISP, |
484 | GK104_DISP, | 485 | GK104_DISP, |
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index 76b8c4f980ea..27d5418ea168 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c | |||
@@ -266,6 +266,7 @@ nv50_core_create(struct nvif_object *disp, u64 syncbuf, struct nv50_mast *core) | |||
266 | .pushbuf = 0xb0007d00, | 266 | .pushbuf = 0xb0007d00, |
267 | }; | 267 | }; |
268 | static const u32 oclass[] = { | 268 | static const u32 oclass[] = { |
269 | GM204_DISP_CORE_CHANNEL_DMA, | ||
269 | GM107_DISP_CORE_CHANNEL_DMA, | 270 | GM107_DISP_CORE_CHANNEL_DMA, |
270 | GK110_DISP_CORE_CHANNEL_DMA, | 271 | GK110_DISP_CORE_CHANNEL_DMA, |
271 | GK104_DISP_CORE_CHANNEL_DMA, | 272 | GK104_DISP_CORE_CHANNEL_DMA, |