diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-04-17 20:49:03 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-05-15 20:50:16 -0400 |
commit | b23b9e7109e74a2cb10705396148624016ad8f8f (patch) | |
tree | a5494fc1cb66d97bc5d8aa69e0cbb5e18683a935 /drivers/gpu | |
parent | 8c3f6bb970413c6a537736f409a1bc9d8abd671c (diff) |
drm/nv50: respect LVDS link count from EDID on SPWG panels
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_display.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index 75a376cc342a..74a3f6872701 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c | |||
@@ -517,13 +517,25 @@ nv50_display_script_select(struct drm_device *dev, struct dcb_entry *dcb, | |||
517 | if (bios->fp.if_is_24bit) | 517 | if (bios->fp.if_is_24bit) |
518 | script |= 0x0200; | 518 | script |= 0x0200; |
519 | } else { | 519 | } else { |
520 | /* determine number of lvds links */ | ||
521 | if (nv_connector && nv_connector->edid && | ||
522 | nv_connector->dcb->type == DCB_CONNECTOR_LVDS_SPWG) { | ||
523 | /* http://www.spwg.org */ | ||
524 | if (((u8 *)nv_connector->edid)[121] == 2) | ||
525 | script |= 0x0100; | ||
526 | } else | ||
520 | if (pxclk >= bios->fp.duallink_transition_clk) { | 527 | if (pxclk >= bios->fp.duallink_transition_clk) { |
521 | script |= 0x0100; | 528 | script |= 0x0100; |
529 | } | ||
530 | |||
531 | /* determine panel depth */ | ||
532 | if (script & 0x0100) { | ||
522 | if (bios->fp.strapless_is_24bit & 2) | 533 | if (bios->fp.strapless_is_24bit & 2) |
523 | script |= 0x0200; | 534 | script |= 0x0200; |
524 | } else | 535 | } else { |
525 | if (bios->fp.strapless_is_24bit & 1) | 536 | if (bios->fp.strapless_is_24bit & 1) |
526 | script |= 0x0200; | 537 | script |= 0x0200; |
538 | } | ||
527 | 539 | ||
528 | if (nv_connector && nv_connector->edid && | 540 | if (nv_connector && nv_connector->edid && |
529 | (nv_connector->edid->revision >= 4) && | 541 | (nv_connector->edid->revision >= 4) && |