drm/nv40: add LVDS table quirk for Dell Latitude D620

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Friday, April 9, 2010 - 11:59 am

Gitweb:     http://git.kernel.org/linus/2eb92c80074ecfbc691741720382007417f64523
Commit:     2eb92c80074ecfbc691741720382007417f64523
Parent:     f3bbb9ccbf2a0362363ce6d7e4e57dbf34a5cef1
Author:     Ben Skeggs <bskeggs@redhat.com>
AuthorDate: Thu Mar 18 13:38:04 2010 +1000
Committer:  Ben Skeggs <bskeggs@redhat.com>
CommitDate: Fri Apr 9 10:12:15 2010 +1000

    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>
---
 drivers/gpu/drm/nouveau/nouveau_bios.c |   15 +++++++++++++++
 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 075eb89..ad6c2d4 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
 		break;
 	}
 
+	/* Dell Latitude D620 reports a too-high value for the dual-link
+	 * transition freq, causing us to program the panel incorrectly.
+	 *
+	 * It doesn't appear the VBIOS actually uses its transition freq
+	 * (90000kHz), instead it uses the "Number of LVDS channels" field
+	 * out of the panel ID structure (http://www.spwg.org/).
+	 *
+	 * For the moment, a quirk will do :)
+	 */
+	if ((dev->pdev->device == 0x01d7) &&
+	    (dev->pdev->subsystem_vendor == 0x1028) &&
+	    (dev->pdev->subsystem_device == 0x01c2)) {
+		bios->fp.duallink_transition_clk = 80000;
+	}
+
 	/* set dual_link flag for EDID case */
 	if (pxclk && (chip_version < 0x25 || chip_version > 0x28))
 		bios->fp.dual_link = (pxclk >= bios->fp.duallink_transition_clk);
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
drm/nv40: add LVDS table quirk for Dell Latitude D620, Linux Kernel Mailing ..., (Fri Apr 9, 11:59 am)