diff options
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | src/bios_reader/.gitignore | 1 | ||||
-rw-r--r-- | src/i830.h | 1 | ||||
-rw-r--r-- | src/i830_lvds.c | 4 | ||||
-rw-r--r-- | src/i830_quirks.c | 11 |
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 @@ -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 }, |