summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--src/bios_reader/.gitignore1
-rw-r--r--src/i830.h1
-rw-r--r--src/i830_lvds.c4
-rw-r--r--src/i830_quirks.c11
5 files changed, 19 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 87dad694..e6a2f6fb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,7 +96,7 @@ save_CFLAGS="$CFLAGS"
CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $drm_cflags"
CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $drm_cflags"
AC_MSG_CHECKING([whether to include DRI support])
-if test x$DRI = xauto; then
+if test x$DRI != xno; then
AC_CHECK_FILE([${sdkdir}/dri.h],
[have_dri_h="yes"], [have_dri_h="no"])
AC_CHECK_FILE([${sdkdir}/sarea.h],
@@ -111,7 +111,9 @@ if test x$DRI = xauto; then
if test "x$DRM_MODE" = xyes; then
AC_DEFINE(XF86DRM_MODE,1,[DRM kernel modesetting])
fi
-
+fi
+AC_MSG_CHECKING([whether to include DRI support])
+if test x$DRI = xauto; then
if test "$have_dri_h" = yes -a \
"$have_sarea_h" = yes -a \
"$have_dristruct_h" = yes; then
diff --git a/src/bios_reader/.gitignore b/src/bios_reader/.gitignore
index 49312f2d..5055aa5a 100644
--- a/src/bios_reader/.gitignore
+++ b/src/bios_reader/.gitignore
@@ -1,2 +1,3 @@
bios_dumper
+swf_dumper
bios_reader
diff --git a/src/i830.h b/src/i830.h
index 612c6a9a..bd9aa3e4 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -986,6 +986,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 e5feab09..801261a1 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 a3ed0440..038676e0 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 },