diff --git a/packages/x11/driver/xf86-video-intel/patches/103_quirk-intel-mb890.diff b/packages/x11/driver/xf86-video-intel/patches/103_quirk-intel-mb890.diff new file mode 100644 index 0000000000..a2f7a33b0b --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/103_quirk-intel-mb890.diff @@ -0,0 +1,12 @@ +diff -Nurp patched/src/i830_quirks.c working/src/i830_quirks.c +--- patched/src/i830_quirks.c 2009-01-12 23:59:17.000000000 -0800 ++++ working/src/i830_quirks.c 2009-01-12 23:59:58.000000000 -0800 +@@ -308,6 +308,8 @@ static i830_quirk i830_quirk_list[] = { + { PCI_CHIP_I855_GM, 0x1028, 0x00c8, quirk_pipea_force }, + /* Intel 855GM hardware (See Novell Bugzilla #406123) */ + { PCI_CHIP_I855_GM, 0x10cf, 0x1215, quirk_pipea_force }, ++ /* Intel 855GM mv890 hardware (see LP: #305269) */ ++ { PCI_CHIP_I855_GM, 0x8086, 0x3582, quirk_ignore_lvds }, + /* HP Pavilion ze4944ea needs pipe A force quirk (See LP: #242389) */ + { PCI_CHIP_I855_GM, 0x103c, 0x3084, quirk_pipea_force }, + diff --git a/packages/x11/driver/xf86-video-intel/patches/109_i830-fifo-watermark-conservative.diff b/packages/x11/driver/xf86-video-intel/patches/109_i830-fifo-watermark-conservative.diff new file mode 100644 index 0000000000..e1b84ef791 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/109_i830-fifo-watermark-conservative.diff @@ -0,0 +1,80 @@ +# Description: Avoid pipe underruns on high graphics activity, which caused flicker and sometimes complete screen corruption. +# Ubuntu: https://launchpad.net/bugs/311895) +# Upstream: http://bugs.freedesktop.org/show_bug.cgi?id=19304 + +Index: xserver-xorg-video-intel-2.6.1/src/i830_debug.c +=================================================================== +--- xserver-xorg-video-intel-2.6.1.orig/src/i830_debug.c 2009-02-25 08:23:37.000000000 +0100 ++++ xserver-xorg-video-intel-2.6.1/src/i830_debug.c 2009-02-25 08:24:27.000000000 +0100 +@@ -551,6 +551,8 @@ + DEFINEREG(DSPFW1), + DEFINEREG(DSPFW2), + DEFINEREG(DSPFW3), ++ DEFINEREG(FWATER_BLC), ++ DEFINEREG(FWATER_BLC2), + + DEFINEREG2(ADPA, i830_debug_adpa), + DEFINEREG2(LVDS, i830_debug_lvds), +Index: xserver-xorg-video-intel-2.6.1/src/i830_display.c +=================================================================== +--- xserver-xorg-video-intel-2.6.1.orig/src/i830_display.c 2009-02-25 08:23:45.000000000 +0100 ++++ xserver-xorg-video-intel-2.6.1/src/i830_display.c 2009-02-25 08:24:27.000000000 +0100 +@@ -1146,7 +1146,9 @@ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + I830Ptr pI830 = I830PTR(pScrn); + int total_hdisplay = 0, planea_hdisplay = 0, planeb_hdisplay = 0; +- int fifo_entries = 0, planea_entries = 0, planeb_entries = 0, i; ++ int fifo_entries = 0, planea_entries = 0, planeb_entries = 0, ++ planec_entries = 0, i; ++ uint32_t watermark = (3 << 8) | 1; + + if ((INREG(DSPACNTR) & DISPLAY_PLANE_ENABLE) && + (INREG(DSPBCNTR) & DISPLAY_PLANE_ENABLE)) +@@ -1156,18 +1158,22 @@ + /* + * FIFO entries will be split based on programmed modes + */ +- if (IS_I965GM(pI830)) ++ if (IS_I965GM(pI830)) { + fifo_entries = 127; +- else if (IS_I9XX(pI830)) ++ planec_entries = 40; ++ } else if (IS_I9XX(pI830)) { + fifo_entries = 95; +- else if (IS_MOBILE(pI830)) { ++ planec_entries = 30; ++ } else if (IS_MOBILE(pI830)) { + fifo_entries = 255; ++ planec_entries = 96; + } else { +- /* The 845/865 only have a AEND field. Though the field size would ++ /* The 845/865 only have a AEND field. Though the field size would + * allow 128 entries, the 865 rendered the cursor wrong then. + * The BIOS set it up for 96. + */ +- fifo_entries = 95; ++ fifo_entries = 95; ++ planec_entries = 30; + } + + for (i = 0; i < xf86_config->num_crtc; i++) { +@@ -1182,14 +1188,17 @@ + } + } + ++ fifo_entries -= planec_entries; + planea_entries = fifo_entries * planea_hdisplay / total_hdisplay; + planeb_entries = fifo_entries * planeb_hdisplay / total_hdisplay; + +- if (IS_I9XX(pI830)) ++ if (IS_I9XX(pI830)) { ++ OUTREG(FWATER_BLC, (watermark << 16) | watermark); ++ OUTREG(FWATER_BLC2, watermark); + OUTREG(DSPARB, + ((planea_entries + planeb_entries) << DSPARB_CSTART_SHIFT) | + (planea_entries << DSPARB_BSTART_SHIFT)); +- else if (IS_MOBILE(pI830)) ++ } else if (IS_MOBILE(pI830)) + OUTREG(DSPARB, + ((planea_entries + planeb_entries) << DSPARB_BEND_SHIFT) | + (planea_entries << DSPARB_AEND_SHIFT)); diff --git a/packages/x11/driver/xf86-video-intel/patches/110_quirk-hp-mini.diff b/packages/x11/driver/xf86-video-intel/patches/110_quirk-hp-mini.diff new file mode 100644 index 0000000000..b58c23468e --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/110_quirk-hp-mini.diff @@ -0,0 +1,12 @@ +diff -Nurp patched/src/i830_quirks.c working/src/i830_quirks.c +--- patched/src/i830_quirks.c 2009-03-02 15:49:37.000000000 -0800 ++++ working/src/i830_quirks.c 2009-03-02 15:52:51.000000000 -0800 +@@ -290,6 +290,8 @@ static i830_quirk i830_quirk_list[] = { + { PCI_CHIP_GM45_GM, 0x103c, 0x30e8, quirk_ignore_tv }, + /* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */ + { PCI_CHIP_GM45_GM, 0x103c, 0x30eb, quirk_pipea_force }, ++ /* HP Mini needs pipe A force quirk (LP: #322104) */ ++ { PCI_CHIP_I945_GME,0x103c, 0x361a, quirk_pipea_force }, + + /* Thinkpad R31 needs pipe A force quirk */ + { PCI_CHIP_I830_M, 0x1014, 0x0505, quirk_pipea_force }, diff --git a/packages/x11/driver/xf86-video-intel/patches/116_865g-disable-dri.diff b/packages/x11/driver/xf86-video-intel/patches/116_865g-disable-dri.diff new file mode 100644 index 0000000000..1071d971f1 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/116_865g-disable-dri.diff @@ -0,0 +1,16 @@ +diff -Nurp patched/src/i830_driver.c working/src/i830_driver.c +--- patched/src/i830_driver.c 2009-03-27 16:48:16.000000000 -0700 ++++ working/src/i830_driver.c 2009-03-27 17:40:57.000000000 -0700 +@@ -1659,7 +1659,12 @@ I830AccelMethodInit(ScrnInfoPtr pScrn) + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "DRI is disabled because it " + "runs only at depths 16 and 24.\n"); + pI830->directRenderingType = DRI_DISABLED; ++ } else if (IS_845G(pI830) || IS_I865G(pI830)) { ++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "DRI is disabled because it " ++ "fails to run on 845G and 865G chips. (See LP 304871)\n"); ++ pI830->directRenderingType = DRI_DISABLED; + } ++ + #endif /* XF86DRI */ + + I830MapMMIO(pScrn); diff --git a/packages/x11/driver/xf86-video-intel/patches/117_quirk-thinkpad-x30.diff b/packages/x11/driver/xf86-video-intel/patches/117_quirk-thinkpad-x30.diff new file mode 100644 index 0000000000..dc564088e8 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/117_quirk-thinkpad-x30.diff @@ -0,0 +1,12 @@ +diff -Nurp patched/src/i830_quirks.c working/src/i830_quirks.c +--- patched/src/i830_quirks.c 2009-04-01 01:13:31.000000000 -0700 ++++ working/src/i830_quirks.c 2009-04-01 01:15:01.000000000 -0700 +@@ -341,6 +341,8 @@ static i830_quirk i830_quirk_list[] = { + + { PCI_CHIP_I855_GM, 0x161f, 0x2030, quirk_pfit_safe }, + ++ /* ThinkPad X30 needs pipe A force quirk (LP: #304614) */ ++ { PCI_CHIP_I830_M, 0x1014, 0x0513, quirk_pipea_force }, + /* ThinkPad X40 needs pipe A force quirk */ + { PCI_CHIP_I855_GM, 0x1014, 0x0557, quirk_pipea_force }, + diff --git a/packages/x11/driver/xf86-video-intel/patches/121_i965-default-virtual-to-2048-2048.diff b/packages/x11/driver/xf86-video-intel/patches/121_i965-default-virtual-to-2048-2048.diff new file mode 100644 index 0000000000..86add0beb9 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/121_i965-default-virtual-to-2048-2048.diff @@ -0,0 +1,20 @@ +diff -Nurp patched/src/i830_driver.c working/src/i830_driver.c +--- patched/src/i830_driver.c 2009-05-04 14:04:00.000000000 -0700 ++++ working/src/i830_driver.c 2009-05-04 14:05:34.000000000 -0700 +@@ -1953,6 +1953,16 @@ I830PreInit(ScrnInfoPtr pScrn, int flags + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "VBIOS initialization failed.\n"); + ++ if (IS_I965G(pI830) && pScrn->virtualX == 0 && pScrn->virtualY == 0 ++ && pScrn->display->virtualX == 0 && pScrn->display->virtualY == 0) { ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, ++ "Defaulting Virtual to 2048 2048 for i965.\n"); ++ pScrn->virtualX = 2048; ++ pScrn->virtualY = 2048; ++ pScrn->display->virtualX = 2048; ++ pScrn->display->virtualY = 2048; ++ } ++ + if (pI830->use_drm_mode) { + if (!I830DrmModeInit(pScrn)) + return FALSE; diff --git a/packages/x11/driver/xf86-video-intel/patches/40_integer_types.diff b/packages/x11/driver/xf86-video-intel/patches/40_integer_types.diff deleted file mode 100644 index 4c921ecdd0..0000000000 --- a/packages/x11/driver/xf86-video-intel/patches/40_integer_types.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur xf86-video-intel-2.1.1.orig/src/i830.h xf86-video-intel-2.1.1/src/i830.h ---- xf86-video-intel-2.1.1.orig/src/i830.h 2007-08-26 18:14:07.000000000 +0200 -+++ xf86-video-intel-2.1.1/src/i830.h 2007-08-26 18:14:27.000000000 +0200 -@@ -47,6 +47,8 @@ - #ifndef _I830_H_ - #define _I830_H_ - -+#include -+ - #include "xf86_OSproc.h" - #include "compiler.h" - #include "xf86PciInfo.h" diff --git a/packages/x11/driver/xf86-video-intel/patches/50_cross-dri.diff b/packages/x11/driver/xf86-video-intel/patches/50_cross-dri.diff index aad9a082e9..d29310c6cc 100644 --- a/packages/x11/driver/xf86-video-intel/patches/50_cross-dri.diff +++ b/packages/x11/driver/xf86-video-intel/patches/50_cross-dri.diff @@ -1,7 +1,7 @@ -diff -Naur xf86-video-intel-2.6.99.901/configure.old xf86-video-intel-2.6.99.901/configure ---- xf86-video-intel-2.6.99.901/configure.org 2009-03-10 08:28:45.000000000 +0100 -+++ xf86-video-intel-2.6.99.901/configure 2009-03-10 08:31:17.000000000 +0100 -@@ -22330,7 +22330,7 @@ +diff -Naur xf86-video-intel-2.7.0.901.orig/configure xf86-video-intel-2.7.0.901/configure +--- xf86-video-intel-2.7.0.901.orig/configure 2009-05-09 18:33:28.000000000 +0200 ++++ xf86-video-intel-2.7.0.901/configure 2009-05-09 18:34:56.000000000 +0200 +@@ -13410,7 +13410,7 @@ if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else @@ -10,7 +10,7 @@ diff -Naur xf86-video-intel-2.6.99.901/configure.old xf86-video-intel-2.6.99.901 { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 $as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -@@ -22358,7 +22358,7 @@ +@@ -13438,7 +13438,7 @@ if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else @@ -19,7 +19,7 @@ diff -Naur xf86-video-intel-2.6.99.901/configure.old xf86-video-intel-2.6.99.901 { { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 $as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -@@ -22386,7 +22386,7 @@ +@@ -13466,7 +13466,7 @@ if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else diff --git a/packages/x11/driver/xf86-video-intel/url b/packages/x11/driver/xf86-video-intel/url index c5ff857acc..73a17b1745 100644 --- a/packages/x11/driver/xf86-video-intel/url +++ b/packages/x11/driver/xf86-video-intel/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.7.0.tar.bz2 +http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.7.0.901.tar.bz2