diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-08-19 10:23:47 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-11-06 15:15:36 +1000 |
commit | 8c5775a42584a5d4a695d488938552b6cf6e8ee8 (patch) | |
tree | a7f03cacd9d315a3f6b4739e57145c9de9eb2c5e | |
parent | b706c029d82f7ab75f8a6669af2624fdfcb986e4 (diff) | |
download | nouveau-8c5775a42584a5d4a695d488938552b6cf6e8ee8.tar.gz |
drm: add support for gm204
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drm/nouveau_bios.c | 25 | ||||
-rw-r--r-- | drm/nouveau_display.c | 1 | ||||
-rw-r--r-- | drm/nv50_display.c | 1 |
3 files changed, 16 insertions, 11 deletions
diff --git a/drm/nouveau_bios.c b/drm/nouveau_bios.c index 2c6b4a00d..7df6acc8b 100644 --- a/drm/nouveau_bios.c +++ b/drm/nouveau_bios.c @@ -1258,7 +1258,7 @@ olddcb_table(struct drm_device *dev) return NULL; } - if (dcb[0] >= 0x41) { + if (dcb[0] >= 0x42) { NV_WARN(drm, "DCB version 0x%02x unknown\n", dcb[0]); return NULL; } else @@ -1481,16 +1481,19 @@ parse_dcb20_entry(struct drm_device *dev, struct dcb_table *dcb, entry->dpconf.link_bw = 540000; break; } - switch ((conf & 0x0f000000) >> 24) { - case 0xf: - entry->dpconf.link_nr = 4; - break; - case 0x3: - entry->dpconf.link_nr = 2; - break; - default: - entry->dpconf.link_nr = 1; - break; + entry->dpconf.link_nr = (conf & 0x0f000000) >> 24; + if (dcb->version < 0x41) { + switch (entry->dpconf.link_nr) { + case 0xf: + entry->dpconf.link_nr = 4; + break; + case 0x3: + entry->dpconf.link_nr = 2; + break; + default: + entry->dpconf.link_nr = 1; + break; + } } link = entry->dpconf.sor.link; entry->i2c_index += NV_I2C_AUX(0); diff --git a/drm/nouveau_display.c b/drm/nouveau_display.c index a88e6927f..ba0adc1c5 100644 --- a/drm/nouveau_display.c +++ b/drm/nouveau_display.c @@ -479,6 +479,7 @@ nouveau_display_create(struct drm_device *dev) if (nouveau_modeset != 2 && drm->vbios.dcb.entries) { static const u16 oclass[] = { + GM204_DISP, GM107_DISP, GK110_DISP, GK104_DISP, diff --git a/drm/nv50_display.c b/drm/nv50_display.c index ae873d1a8..7d1ac1822 100644 --- a/drm/nv50_display.c +++ b/drm/nv50_display.c @@ -265,6 +265,7 @@ nv50_core_create(struct nvif_object *disp, u64 syncbuf, struct nv50_mast *core) .pushbuf = 0xb0007d00, }; static const u32 oclass[] = { + GM204_DISP_CORE_CHANNEL_DMA, GM107_DISP_CORE_CHANNEL_DMA, GK110_DISP_CORE_CHANNEL_DMA, GK104_DISP_CORE_CHANNEL_DMA, |