xf86-video-intel: update to xf86-video-intel-2.8.99.901, add various patches

This commit is contained in:
Stephan Raue 2009-09-09 20:26:17 +02:00
parent 61f158845e
commit 05e5264ce9
10 changed files with 250 additions and 1 deletions

View File

@ -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 },

View File

@ -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));

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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,

View File

@ -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);

View File

@ -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,

View File

@ -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

View File

@ -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 },

View File

@ -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