xf86-video-intel: src/i830.h src/i830_lvds.c src/i830_quirks.c

Jesse Barnes jbarnes at kemper.freedesktop.org
Tue Aug 19 15:05:05 PDT 2008


 src/i830.h        |    1 +
 src/i830_lvds.c   |    4 ++--
 src/i830_quirks.c |   11 +++++++++++
 3 files changed, 14 insertions(+), 2 deletions(-)

New commits:
commit 646bbdc4b6a7b887ee8f0e51fdff5d07c4586329
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Aug 19 15:05:00 2008 -0700

    Add quirk for pre-915s with working PFIT regs
    
    The regs are undocumented, but on some machines they work fine, so add this
    quirk to indicate it.

diff --git a/src/i830.h b/src/i830.h
index e2b4885..73fb2ad 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -970,6 +970,7 @@ extern const int I830CopyROP[16];
 #define QUIRK_PIPEA_FORCE		0x00000008
 #define QUIRK_IVCH_NEED_DVOB		0x00000010
 #define QUIRK_RESET_MODES		0x00000020
+#define QUIRK_PFIT_SAFE			0x00000040
 extern void i830_fixup_devices(ScrnInfoPtr);
 
 #endif /* _I830_H_ */
diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index e5feab0..801261a 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -999,8 +999,8 @@ i830_lvds_create_resources(xf86OutputPtr output)
      * Panel fitting control
      */
 
-    /* XXX Disable panel fitting setting on pre-915. */
-    if (!IS_I9XX(pI830))
+    /* Disable panel fitting setting on untested pre-915 chips */
+    if (!IS_I9XX(pI830) && !(pI830->quirk_flag & QUIRK_PFIT_SAFE))
 	return;
 
     panel_fitting_atom = MakeAtom(PANEL_FITTING_NAME,
diff --git a/src/i830_quirks.c b/src/i830_quirks.c
index a3ed044..038676e 100644
--- a/src/i830_quirks.c
+++ b/src/i830_quirks.c
@@ -162,6 +162,15 @@ static void i830_dmi_dump(void)
 }
 
 /*
+ * Old chips have undocumented panel fitting registers.  Some of them actually
+ * work; this quirk indicates that.
+ */
+static void quirk_pfit_safe (I830Ptr pI830)
+{
+    pI830->quirk_flag |= QUIRK_PFIT_SAFE;
+}
+
+/*
  * Some machines hose the display regs regardless of the ACPI DOS
  * setting, so we need to reset modes at ACPI event time.
  */
@@ -293,6 +302,8 @@ static i830_quirk i830_quirk_list[] = {
     /* HP Pavilion ze4944ea needs pipe A force quirk (See LP: #242389) */
     { PCI_CHIP_I855_GM, 0x103c, 0x3084, quirk_pipea_force },
 
+    { PCI_CHIP_I855_GM, 0x161f, 0x2030, quirk_pfit_safe },
+
     /* ThinkPad X40 needs pipe A force quirk */
     { PCI_CHIP_I855_GM, 0x1014, 0x0557, quirk_pipea_force },
 


More information about the xorg-commit mailing list