update to xf86-video-intel-2.7.0.901

This commit is contained in:
Stephan Raue 2009-05-10 02:08:59 +02:00
parent 3a95f88a48
commit dbd5269182
9 changed files with 159 additions and 19 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,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 },

View File

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

View File

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

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

@ -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 <inttypes.h>
+
#include "xf86_OSproc.h"
#include "compiler.h"
#include "xf86PciInfo.h"

View File

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

View File

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