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/116_865g-disable-dri.diff b/packages/x11/driver/xf86-video-intel/patches/116_865g-disable-dri.diff new file mode 100644 index 0000000000..57e6d42ea3 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/116_865g-disable-dri.diff @@ -0,0 +1,14 @@ +diff -Naur xf86-video-intel-2.8.0.orig/src/i830_driver.c xf86-video-intel-2.8.0/src/i830_driver.c +--- xf86-video-intel-2.8.0.orig/src/i830_driver.c 2009-07-25 12:21:15.000000000 +0200 ++++ xf86-video-intel-2.8.0/src/i830_driver.c 2009-07-25 12:23:42.000000000 +0200 +@@ -1310,6 +1310,10 @@ + 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; + } + } + 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/60_overlay.diff b/packages/x11/driver/xf86-video-intel/patches/60_overlay.diff new file mode 100644 index 0000000000..40311b707f --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/60_overlay.diff @@ -0,0 +1,11 @@ +--- xf86-video-intel-2.5.1/src/i830_driver.c.org 2008-11-15 17:29:56.000000000 +0100 ++++ xf86-video-intel-2.5.1/src/i830_driver.c 2008-11-15 17:30:52.000000000 +0100 +@@ -1696,7 +1696,7 @@ + pI830->XvDisabled = + !xf86ReturnOptValBool(pI830->Options, OPTION_XVIDEO, TRUE); + +- pI830->XvPreferOverlay = xf86ReturnOptValBool(pI830->Options, OPTION_PREFER_OVERLAY, FALSE); ++ pI830->XvPreferOverlay = TRUE; + + #ifdef I830_XV + if (xf86GetOptValInteger(pI830->Options, OPTION_VIDEO_KEY, diff --git a/packages/x11/driver/xf86-video-intel/patches/65_hw-map-mem-no-bailout.diff b/packages/x11/driver/xf86-video-intel/patches/65_hw-map-mem-no-bailout.diff new file mode 100644 index 0000000000..8bf4b28b67 --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/65_hw-map-mem-no-bailout.diff @@ -0,0 +1,13 @@ +diff -Naur xf86-video-intel-2.5.0/src/i830_driver.c xf86-video-intel-2.5.0.edit/src/i830_driver.c +--- xf86-video-intel-2.5.0/src/i830_driver.c 2008-10-20 23:02:38.000000000 +0200 ++++ xf86-video-intel-2.5.0.edit/src/i830_driver.c 2008-10-25 17:53:33.000000000 +0200 +@@ -3309,8 +3313,7 @@ + vgaHWSetMmioFuncs(hwp, pI830->MMIOBase, 0); + vgaHWGetIOBase(hwp); + DPRINTF(PFX, "assert( if(!vgaHWMapMem(pScrn)) )\n"); +- if (!vgaHWMapMem(pScrn)) +- return FALSE; ++ vgaHWMapMem(pScrn); + } + + i830_disable_render_standby(pScrn); diff --git a/packages/x11/driver/xf86-video-intel/patches/70_rgbbroadcast_for_flatscreen.diff b/packages/x11/driver/xf86-video-intel/patches/70_rgbbroadcast_for_flatscreen.diff new file mode 100644 index 0000000000..031bb20fad --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/70_rgbbroadcast_for_flatscreen.diff @@ -0,0 +1,28 @@ +diff -Naur xf86-video-intel-2.7.0.901/src/i830_hdmi.c.org xf86-video-intel-2.7.0.901/src/i830_hdmi.c +--- xf86-video-intel-2.7.0.901/src/i830_hdmi.c.org 2009-05-11 20:34:54.000000000 +0200 ++++ xf86-video-intel-2.7.0.901/src/i830_hdmi.c 2009-05-11 20:35:50.000000000 +0200 +@@ -248,8 +248,8 @@ + "RRConfigureOutputProperty error, %d\n", err); + return; + } +- /* Set the current value of the broadcast property as full range */ +- dev_priv->broadcast_rgb = 0; ++ /* Set the current value of the broadcast property as limited range */ ++ dev_priv->broadcast_rgb = 1; + err = RRChangeOutputProperty(output->randr_output, + broadcast_atom, + XA_INTEGER, 32, PropModeReplace, +diff -Naur xf86-video-intel-2.7.0.901/src/i830_sdvo.c.org xf86-video-intel-2.7.0.901/src/i830_sdvo.c +--- xf86-video-intel-2.7.0.901/src/i830_sdvo.c.org 2009-05-11 20:35:02.000000000 +0200 ++++ xf86-video-intel-2.7.0.901/src/i830_sdvo.c 2009-05-11 20:43:47.000000000 +0200 +@@ -1963,8 +1963,8 @@ + "RRConfigureOutputProperty error, %d\n", err); + return; + } +- /* Set the current value of the broadcast property as full range */ +- dev_priv->broadcast_rgb = 0; ++ /* Set the current value of the broadcast property as limited range */ ++ dev_priv->broadcast_rgb = 1; + err = RRChangeOutputProperty(output->randr_output, + broadcast_atom, + XA_INTEGER, 32, PropModeReplace, diff --git a/packages/x11/driver/xf86-video-intel/patches/71_enable_XvMC.diff b/packages/x11/driver/xf86-video-intel/patches/71_enable_XvMC.diff new file mode 100644 index 0000000000..d055a2322e --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/71_enable_XvMC.diff @@ -0,0 +1,15 @@ +--- xf86-video-intel-2.7.0.901/src/i830_driver.c.org 2009-05-11 21:57:27.000000000 +0200 ++++ xf86-video-intel-2.7.0.901/src/i830_driver.c 2009-05-11 21:58:30.000000000 +0200 +@@ -2836,10 +2836,8 @@ + xf86DPMSInit(pScreen, xf86DPMSSet, 0); + + #ifdef INTEL_XVMC +- pI830->XvMCEnabled = FALSE; +- from = ((pI830->directRenderingType == DRI_DRI2) && +- xf86GetOptValBool(pI830->Options, OPTION_XVMC, +- &pI830->XvMCEnabled) ? X_CONFIG : X_DEFAULT); ++ pI830->XvMCEnabled = TRUE; ++ from = X_CONFIG; + xf86DrvMsg(pScrn->scrnIndex, from, "Intel XvMC decoder %sabled\n", + pI830->XvMCEnabled ? "en" : "dis"); + #endif diff --git a/packages/x11/driver/xf86-video-intel/patches/80_quirks.diff b/packages/x11/driver/xf86-video-intel/patches/80_quirks.diff new file mode 100644 index 0000000000..4256779fac --- /dev/null +++ b/packages/x11/driver/xf86-video-intel/patches/80_quirks.diff @@ -0,0 +1,56 @@ +--- xf86-video-intel-2.5.1/src/i830_quirks.c.org 2008-11-13 23:24:50.000000000 +0100 ++++ xf86-video-intel-2.5.1/src/i830_quirks.c 2008-11-13 23:36:08.000000000 +0100 +@@ -235,7 +235,10 @@ + /* Apple Mac mini has no lvds, but macbook pro does */ + { PCI_CHIP_I945_GM, 0x8086, 0x7270, quirk_mac_mini }, + +- /* Transtec Senyo 610 mini pc */ ++ /* Asus Eee PC B202 (See LP: #233787) */ ++ { PCI_CHIP_I945_GME, 0x1043, 0x1252, quirk_ignore_lvds }, ++ ++ /* Transtec Senyo 610 mini pc (See LP: #233787) */ + { PCI_CHIP_I965_GM, 0x1509, 0x2f15, quirk_ignore_lvds }, + + /* Clevo M720R has no tv output */ +@@ -255,13 +258,15 @@ + { PCI_CHIP_I965_GM, 0x1028, 0x0286, quirk_ignore_tv }, + /* Dell Vostro A840 (LP: #235155) */ + { PCI_CHIP_I965_GM, 0x1028, 0x0298, quirk_ignore_tv }, +- /* Dell Studio Hybrid */ ++ /* Dell Studio Hybrid (LP: #267945) */ + { PCI_CHIP_I965_GM, 0x1028, 0x0279, quirk_ignore_lvds }, + + /* Lenovo Napa TV (use dmi)*/ + { PCI_CHIP_I945_GM, 0x17aa, SUBSYS_ANY, quirk_lenovo_tv_dmi }, + /* Lenovo 3000 v200 */ + { PCI_CHIP_I965_GM, 0x17aa, 0x3c18, quirk_ignore_tv }, ++ /* Lenovo T60/R60 needs pipe A force quirk (See LP: #243405) */ ++ { PCI_CHIP_I945_GM, 0x17aa, 0x201a, quirk_pipea_force }, + + /* Panasonic Toughbook CF-Y4 has no TV output */ + { PCI_CHIP_I915_GM, 0x10f7, 0x8338, quirk_ignore_tv }, +@@ -286,9 +291,13 @@ + /* HP Compaq 6730s has no TV output */ + { PCI_CHIP_GM45_GM, 0x103c, 0x30e8, quirk_ignore_tv }, + ++ /* Thinkpad G40 needs pipe A force quirk (See LP: #240457) */ ++ { PCI_CHIP_I855_GM, 0x1014, 0x0543, quirk_pipea_force }, + /* Thinkpad R31 needs pipe A force quirk */ + { PCI_CHIP_I830_M, 0x1014, 0x0505, quirk_pipea_force }, +- /* Dell Latitude D400 needs pipe A force quirk (LP: #228519) */ ++ /* Dell Latitude C400 needs pipe A force quirk (See LP: #216490) */ ++ { PCI_CHIP_I855_GM, 0x1028, 0x00c8, quirk_pipea_force }, ++ /* Dell Latitude D400 needs pipe A force quirk (See LP: #228519) * + { PCI_CHIP_I855_GM, 0x1028, 0x0139, quirk_pipea_force }, + /* Dell Latitude D500 needs pipe A force quirk */ + { PCI_CHIP_I855_GM, 0x1028, 0x0152, quirk_pipea_force }, +@@ -322,6 +331,9 @@ + /* Sony vaio VGN-SZ4MN (See LP: #212163) */ + { PCI_CHIP_I830_M, 0x104d, 0x81e6, quirk_pipea_force }, + ++ /* Quanta Gigabyte W251U (See LP: #244242) */ ++ { PCI_CHIP_I945_GM, 0x152d, 0x0755, quirk_pipea_force }, ++ + /* Ordi Enduro UW31 (See LP: #152416) */ + { PCI_CHIP_I945_GM, 0x1584, 0x9900, quirk_ignore_tv }, + diff --git a/packages/x11/driver/xf86-video-intel/url b/packages/x11/driver/xf86-video-intel/url index a018ca817c..0745ecca7a 100644 --- a/packages/x11/driver/xf86-video-intel/url +++ b/packages/x11/driver/xf86-video-intel/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xf86-video-intel-20090905.tar.bz2 +http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.8.99.901.tar.bz2 \ No newline at end of file