aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_bios.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-05-29 22:53:37 -0400
committerBen Skeggs <bskeggs@redhat.com>2011-06-23 01:58:04 -0400
commite540afc32585664840506a7198966d18318381af (patch)
tree2d0fcb5a1031b2dfe4986ff4aa619ac88d963f61 /drivers/gpu/drm/nouveau/nouveau_bios.c
parentad830d23d31a51997ca0780dddbe919eb1bfb879 (diff)
drm/nv50: DCB table quirks for another busted XFX board
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_bios.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index 729d5fd7c88d..e93e3148b8e8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -6377,6 +6377,37 @@ apply_dcb_encoder_quirks(struct drm_device *dev, int idx, u32 *conn, u32 *conf)
6377 } 6377 }
6378 } 6378 }
6379 6379
6380 /* Some other twisted XFX board (rhbz#694914)
6381 *
6382 * The DVI/VGA encoder combo that's supposed to represent the
6383 * DVI-I connector actually point at two different ones, and
6384 * the HDMI connector ends up paired with the VGA instead.
6385 *
6386 * Connector table is missing anything for VGA at all, pointing it
6387 * an invalid conntab entry 2 so we figure it out ourself.
6388 */
6389 if (nv_match_device(dev, 0x0615, 0x1682, 0x2605)) {
6390 if (idx == 0) {
6391 *conn = 0x02002300; /* VGA, connector 2 */
6392 *conf = 0x00000028;
6393 } else
6394 if (idx == 1) {
6395 *conn = 0x01010312; /* DVI, connector 0 */
6396 *conf = 0x00020030;
6397 } else
6398 if (idx == 2) {
6399 *conn = 0x04020310; /* VGA, connector 0 */
6400 *conf = 0x00000028;
6401 } else
6402 if (idx == 3) {
6403 *conn = 0x02021322; /* HDMI, connector 1 */
6404 *conf = 0x00020010;
6405 } else {
6406 *conn = 0x0000000e; /* EOL */
6407 *conf = 0x00000000;
6408 }
6409 }
6410
6380 return true; 6411 return true;
6381} 6412}
6382 6413