aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-03-17 23:38:04 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-04-08 20:12:15 -0400
commit2eb92c80074ecfbc691741720382007417f64523 (patch)
tree98c4dd5fe49dfb2049a2e186a52c57451af6f8a2 /drivers/gpu/drm/nouveau
parentf3bbb9ccbf2a0362363ce6d7e4e57dbf34a5cef1 (diff)
drm/nv40: add LVDS table quirk for Dell Latitude D620
Should fix: https://bugzilla.redhat.com/show_bug.cgi?id=505132 https://bugzilla.redhat.com/show_bug.cgi?id=543091 https://bugzilla.redhat.com/show_bug.cgi?id=530425 https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-nouveau/ +bug/539730 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index 075eb894648f..ad6c2d4520ae 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -3659,6 +3659,21 @@ int nouveau_bios_parse_lvds_table(struct drm_device *dev, int pxclk, bool *dl, b
3659 break; 3659 break;
3660 } 3660 }
3661 3661
3662 /* Dell Latitude D620 reports a too-high value for the dual-link
3663 * transition freq, causing us to program the panel incorrectly.
3664 *
3665 * It doesn't appear the VBIOS actually uses its transition freq
3666 * (90000kHz), instead it uses the "Number of LVDS channels" field
3667 * out of the panel ID structure (http://www.spwg.org/).
3668 *
3669 * For the moment, a quirk will do :)
3670 */
3671 if ((dev->pdev->device == 0x01d7) &&
3672 (dev->pdev->subsystem_vendor == 0x1028) &&
3673 (dev->pdev->subsystem_device == 0x01c2)) {
3674 bios->fp.duallink_transition_clk = 80000;
3675 }
3676
3662 /* set dual_link flag for EDID case */ 3677 /* set dual_link flag for EDID case */
3663 if (pxclk && (chip_version < 0x25 || chip_version > 0x28)) 3678 if (pxclk && (chip_version < 0x25 || chip_version > 0x28))
3664 bios->fp.dual_link = (pxclk >= bios->fp.duallink_transition_clk); 3679 bios->fp.dual_link = (pxclk >= bios->fp.duallink_transition_clk);