[arch-commits] Commit in xf86-video-intel/trunk (9 files)
Jan de Groot
jgc at archlinux.org
Thu Nov 6 20:35:55 UTC 2008
Date: Thursday, November 6, 2008 @ 15:35:55
Author: jgc
Revision: 18517
upgpkg: xf86-video-intel 2.4.2-2
Downgrade to 2.4.2, 2.5.0 has too many problems.
Apply patches from ubuntu, which are mainly backports from the 2.5 branch
Added:
xf86-video-intel/trunk/20_thinkpad_g40_quirk.patch
xf86-video-intel/trunk/21_quirk_lenovo.patch
xf86-video-intel/trunk/22_no_pipe_for_hotplug_detection.patch
xf86-video-intel/trunk/23_quirks_studiohybrid_eeepc_and_w251u.patch
xf86-video-intel/trunk/25_quirk_nc6110.patch
xf86-video-intel/trunk/26_i830-use-lfp-data-ptrs.patch
xf86-video-intel/trunk/27_disable_fbc_on_965.patch
xf86-video-intel/trunk/28_stolen_memory_counting_g4x.patch
Modified:
xf86-video-intel/trunk/PKGBUILD
----------------------------------------------+
20_thinkpad_g40_quirk.patch | 18 +++++++
21_quirk_lenovo.patch | 12 ++++
22_no_pipe_for_hotplug_detection.patch | 60 +++++++++++++++++++++++
23_quirks_studiohybrid_eeepc_and_w251u.patch | 34 +++++++++++++
25_quirk_nc6110.patch | 13 +++++
26_i830-use-lfp-data-ptrs.patch | 63 +++++++++++++++++++++++++
27_disable_fbc_on_965.patch | 18 +++++++
28_stolen_memory_counting_g4x.patch | 35 +++++++++++++
PKGBUILD | 28 ++++++++---
9 files changed, 275 insertions(+), 6 deletions(-)
Added: 20_thinkpad_g40_quirk.patch
===================================================================
--- 20_thinkpad_g40_quirk.patch (rev 0)
+++ 20_thinkpad_g40_quirk.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,18 @@
+diff -Nurp xserver-xorg-video-intel-2.3.1-patched/src/i830_quirks.c xserver-xorg-video-intel-2.3.1-working/src/i830_quirks.c
+--- xserver-xorg-video-intel-2.3.1-patched/src/i830_quirks.c 2008-06-20 00:05:23.000000000 -0700
++++ xserver-xorg-video-intel-2.3.1-working/src/i830_quirks.c 2008-06-20 00:20:19.000000000 -0700
+@@ -266,9 +266,13 @@ static i830_quirk i830_quirk_list[] = {
+ /* HP Compaq 6730s has no TV output */
+ { PCI_CHIP_IGD_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 },
Added: 21_quirk_lenovo.patch
===================================================================
--- 21_quirk_lenovo.patch (rev 0)
+++ 21_quirk_lenovo.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,12 @@
+diff -Nurp xserver-xorg-video-intel-2.3.2-1ubuntu2-patched/src/i830_quirks.c xserver-xorg-video-intel-2.3.2-1ubuntu2-working/src/i830_quirks.c
+--- xserver-xorg-video-intel-2.3.2-1ubuntu2-patched/src/i830_quirks.c 2008-06-26 20:21:14.000000000 -0700
++++ xserver-xorg-video-intel-2.3.2-1ubuntu2-working/src/i830_quirks.c 2008-06-26 20:30:23.000000000 -0700
+@@ -242,6 +242,8 @@ static i830_quirk i830_quirk_list[] = {
+
+ /* Lenovo Napa TV (use dmi)*/
+ { PCI_CHIP_I945_GM, 0x17aa, SUBSYS_ANY, quirk_lenovo_tv_dmi },
++ /* Lenovo T60/R60 needs pipe A force quirk (See LP: #243405) */
++ { PCI_CHIP_I945_GM, 0x17aa, 0x201a, quirk_pipea_force },
+ /* Lenovo T61 has no TV output */
+ { PCI_CHIP_I965_GM, 0x17aa, 0x20b5, quirk_ignore_tv },
+ /* Lenovo 3000 v200 */
Added: 22_no_pipe_for_hotplug_detection.patch
===================================================================
--- 22_no_pipe_for_hotplug_detection.patch (rev 0)
+++ 22_no_pipe_for_hotplug_detection.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,60 @@
+From: Jesse Barnes <jbarnes at virtuousgeek.org>
+Date: Wed, 20 Aug 2008 21:40:29 +0000 (-0700)
+Subject: Don't allocate a pipe for hotplug detection
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-intel.git;a=commitdiff;h=7b6f4d22211d71480caf6335a3eacaacff369371
+
+Don't allocate a pipe for hotplug detection
+
+It shouldn't be needed...
+---
+
+--- a/src/i830_crt.c
++++ b/src/i830_crt.c
+@@ -352,10 +352,9 @@ i830_crt_detect(xf86OutputPtr output)
+ xf86OutputStatus status;
+ Bool connected;
+
+- crtc = i830GetLoadDetectPipe (output, NULL, &dpms_mode);
+- if (!crtc)
+- return XF86OutputStatusUnknown;
+-
++ /*
++ * Try hotplug detection where supported
++ */
+ if (IS_I945G(pI830) || IS_I945GM(pI830) || IS_I965G(pI830) ||
+ IS_G33CLASS(pI830)) {
+ if (i830_crt_detect_hotplug(output))
+@@ -363,12 +362,19 @@ i830_crt_detect(xf86OutputPtr output)
+ else
+ status = XF86OutputStatusDisconnected;
+
+- goto out;
++ goto done;
+ }
+
++ /*
++ * DDC is next best, no flicker
++ */
++ crtc = i830GetLoadDetectPipe (output, NULL, &dpms_mode);
++ if (!crtc)
++ return XF86OutputStatusUnknown;
++
+ if (i830_crt_detect_ddc(output)) {
+ status = XF86OutputStatusConnected;
+- goto out;
++ goto out_release_pipe;
+ }
+
+ /* Use the load-detect method if we have no other way of telling. */
+@@ -378,9 +384,10 @@ i830_crt_detect(xf86OutputPtr output)
+ else
+ status = XF86OutputStatusDisconnected;
+
+-out:
++out_release_pipe:
+ i830ReleaseLoadDetectPipe (output, dpms_mode);
+
++done:
+ return status;
+ }
+
Added: 23_quirks_studiohybrid_eeepc_and_w251u.patch
===================================================================
--- 23_quirks_studiohybrid_eeepc_and_w251u.patch (rev 0)
+++ 23_quirks_studiohybrid_eeepc_and_w251u.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,34 @@
+diff -Nurp xserver-xorg-video-intel-2.4.1-patched/src/i830_quirks.c xserver-xorg-video-intel-2.4.1-working/src/i830_quirks.c
+--- xserver-xorg-video-intel-2.4.1-patched/src/i830_quirks.c 2008-09-08 20:12:28.000000000 -0700
++++ xserver-xorg-video-intel-2.4.1-working/src/i830_quirks.c 2008-09-08 21:02:53.000000000 -0700
+@@ -223,7 +223,10 @@ static i830_quirk i830_quirk_list[] = {
+ /* 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 */
+@@ -243,6 +246,8 @@ static i830_quirk i830_quirk_list[] = {
+ { 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 (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 },
+@@ -312,6 +317,9 @@ static i830_quirk i830_quirk_list[] = {
+ /* 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 },
+
Added: 25_quirk_nc6110.patch
===================================================================
--- 25_quirk_nc6110.patch (rev 0)
+++ 25_quirk_nc6110.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,13 @@
+diff --git a/src/i830_quirks.c b/src/i830_quirks.c
+index 089e458..09b7c53 100644
+--- a/src/i830_quirks.c
++++ b/src/i830_quirks.c
+@@ -278,6 +278,8 @@ static i830_quirk i830_quirk_list[] = {
+ /* Samsung Q45 has no TV output */
+ { PCI_CHIP_I965_GM, 0x144d, 0xc510, quirk_ignore_tv },
+
++ /* HP Compaq nx6110 has no TV output */
++ { PCI_CHIP_I915_GM, 0x103c, 0x099c, quirk_ignore_tv },
+ /* HP Compaq 6730s has no TV output */
+ { PCI_CHIP_GM45_GM, 0x103c, 0x30e8, quirk_ignore_tv },
+
Added: 26_i830-use-lfp-data-ptrs.patch
===================================================================
--- 26_i830-use-lfp-data-ptrs.patch (rev 0)
+++ 26_i830-use-lfp-data-ptrs.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,63 @@
+diff -Nurp patched/src/bios_reader/bios_reader.c working/src/bios_reader/bios_reader.c
+--- patched/src/bios_reader/bios_reader.c 2008-10-16 14:06:07.000000000 -0700
++++ working/src/bios_reader/bios_reader.c 2008-10-16 14:25:07.000000000 -0700
+@@ -180,6 +180,19 @@ static void dump_lvds_options(void *data
+ printf("\tPFIT mode: %d\n", options->pfit_mode);
+ }
+
++static void dump_lvds_ptr_data(void *data, unsigned char *base)
++{
++ struct bdb_lvds_lfp_data_ptrs *ptrs = data;
++
++ struct lvds_fp_timing *fp_timing =
++ (struct lvds_fp_timing *)(base + ptrs->ptr[panel_type].fp_timing_offset);
++
++ printf("LVDS timing pointer data:\n");
++
++ printf("\tpanel type %02i: %dx%d\n", panel_type, fp_timing->x_res,
++ fp_timing->y_res);
++}
++
+ static void dump_lvds_data(void *data, unsigned char *base)
+ {
+ struct bdb_lvds_lfp_data *lvds_data = data;
+@@ -274,6 +287,8 @@ int main(int argc, char **argv)
+ dump_general_definitions(find_section(bdb, BDB_GENERAL_DEFINITIONS));
+ dump_lvds_options(find_section(bdb, BDB_LVDS_OPTIONS));
+ dump_lvds_data(find_section(bdb, BDB_LVDS_LFP_DATA), bdb);
++ dump_lvds_ptr_data(find_section(bdb, BDB_LVDS_LFP_DATA_PTRS),
++ (unsigned char *)bdb);
+
+ return 0;
+ }
+diff -Nurp patched/src/i830_bios.c working/src/i830_bios.c
+--- patched/src/i830_bios.c 2008-10-16 14:06:07.000000000 -0700
++++ working/src/i830_bios.c 2008-10-16 14:27:15.000000000 -0700
+@@ -89,7 +89,8 @@ parse_panel_data(I830Ptr pI830, struct b
+ {
+ struct bdb_lvds_options *lvds_options;
+ struct bdb_lvds_lfp_data *lvds_lfp_data;
+- struct bdb_lvds_lfp_data_entry *entry;
++ struct bdb_lvds_lfp_data_ptrs *lvds_lfp_data_ptrs;
++ int timing_offset;
+ DisplayModePtr fixed_mode;
+ unsigned char *timing_ptr;
+
+@@ -104,12 +105,13 @@ parse_panel_data(I830Ptr pI830, struct b
+ if (lvds_options->panel_type == 0xff)
+ return;
+
+- lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA);
+- if (!lvds_lfp_data)
++ lvds_lfp_data_ptrs = find_section(bdb, BDB_LVDS_LFP_DATA_PTRS);
++ if (!lvds_lfp_data_ptrs)
+ return;
+
+- entry = &lvds_lfp_data->data[lvds_options->panel_type];
+- timing_ptr = (unsigned char *)&entry->dvo_timing;
++ timing_offset =
++ lvds_lfp_data_ptrs->ptr[lvds_options->panel_type].dvo_timing_offset;
++ timing_ptr = (unsigned char *)bdb + timing_offset;
+
+ fixed_mode = xnfalloc(sizeof(DisplayModeRec));
+ memset(fixed_mode, 0, sizeof(*fixed_mode));
Added: 27_disable_fbc_on_965.patch
===================================================================
--- 27_disable_fbc_on_965.patch (rev 0)
+++ 27_disable_fbc_on_965.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,18 @@
+diff --git a/src/i830.h b/src/i830.h
+index 5b78236..89f19d2 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -950,6 +950,13 @@ static inline int i830_fb_compression_supported(I830Ptr pI830)
+ */
+ if (!pI830->tiling || (IS_I965G(pI830) && pI830->accel <= ACCEL_XAA))
+ return FALSE;
++ /* We have not gotten FBC to work consistently on 965GM. Our best
++ * working theory right now is that FBC simply isn't reliable on
++ * that device. See this bug report for more details:
++ * https://bugs.freedesktop.org/show_bug.cgi?id=16257
++ */
++ if (IS_I965GM(pI830))
++ return FALSE;
+ return TRUE;
+ }
+
Added: 28_stolen_memory_counting_g4x.patch
===================================================================
--- 28_stolen_memory_counting_g4x.patch (rev 0)
+++ 28_stolen_memory_counting_g4x.patch 2008-11-06 20:35:55 UTC (rev 18517)
@@ -0,0 +1,35 @@
+From: Eric Anholt <eric at anholt.net>
+Date: Tue, 14 Oct 2008 18:33:33 +0000 (-0700)
+Subject: Fix broken stolen memory counting on G4X.
+X-Git-Tag: xserver-xorg-video-intel-2_2.3.2-2+lenny5~5
+X-Git-Url: http://git.debian.org/?p=pkg-xorg%2Fdriver%2Fxserver-xorg-video-intel.git;a=commitdiff_plain;h=8971411781c5bd0b9e9d4c2c776ba6e21c313f00
+
+Fix broken stolen memory counting on G4X.
+
+On the GM45 we were assuming too little stolen memory (mostly harmless,
+except when it wasn't, until the AGP fix), and on the G45 we were assuming too
+much stolen memory, which was quite harmful when we touched the page that
+didn't get mapped.
+
+Future stolen memory accounting should use src/reg_dumper/intel_gtt before and
+after enabling AGP on the chipset to confirm that only the GTT entries not
+mapped to stolen are replaced, and that all of the unmapped GTT entries are
+replaced with the constant scratch page.
+(cherry picked from commit 4dd00681dd0f9fce8dfd4592b46418edbbd2eeb4)
+---
+
+diff --git a/src/i830_driver.c b/src/i830_driver.c
+index 5269871..a9f4478 100644
+--- a/src/i830_driver.c
++++ b/src/i830_driver.c
+@@ -520,8 +520,8 @@ I830DetectMemory(ScrnInfoPtr pScrn)
+ range = gtt_size + 4;
+
+ /* new 4 series hardware has seperate GTT stolen with GFX stolen */
+- if (IS_G4X(pI830))
+- range = 0;
++ if (IS_G4X(pI830) || IS_GM45(pI830))
++ range = 4;
+
+ if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I9XX(pI830)) {
+ switch (gmch_ctrl & I855_GMCH_GMS_MASK) {
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2008-11-06 20:14:53 UTC (rev 18516)
+++ PKGBUILD 2008-11-06 20:35:55 UTC (rev 18517)
@@ -2,22 +2,38 @@
# Maintainer: Alexander Baldeck <alexander at archlinux.org>
# Maintainer: Jan de Groot <jgc at archlinux.org>
pkgname=xf86-video-intel
-pkgver=2.5.0
+pkgver=2.4.2
pkgrel=2
pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
-depends=('intel-dri>=7.2' 'libpciaccess>=0.10.4' 'libdrm>=2.4.1')
-makedepends=('pkgconfig' 'xorg-server>=1.5.2' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.2')
-conflicts=('xorg-server<1.5.2' 'xf86-video-i810')
+depends=('intel-dri>=7.2' 'libpciaccess>=0.10.5' 'libdrm>=2.3.1')
+makedepends=('pkgconfig' 'xorg-server>=1.5.3' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.2' 'libdrm=2.3.1')
+conflicts=('xorg-server<1.5.3' 'xf86-video-i810')
replaces=('xf86-video-i810')
-options=('!libtool')
+options=('!libtool' 'force')
groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 20_thinkpad_g40_quirk.patch
+ 21_quirk_lenovo.patch
+ 22_no_pipe_for_hotplug_detection.patch
+ 23_quirks_studiohybrid_eeepc_and_w251u.patch
+ 25_quirk_nc6110.patch
+ 26_i830-use-lfp-data-ptrs.patch
+ 27_disable_fbc_on_965.patch
+ 28_stolen_memory_counting_g4x.patch)
md5sums=('462f205bd47766265246cc39801b75e7')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/20_thinkpad_g40_quirk.patch" || return 1
+ patch -Np1 -i "${srcdir}/21_quirk_lenovo.patch" || return 1
+ patch -Np1 -i "${srcdir}/22_no_pipe_for_hotplug_detection.patch" || return 1
+ patch -Np1 -i "${srcdir}/23_quirks_studiohybrid_eeepc_and_w251u.patch" || return 1
+ patch -Np1 -i "${srcdir}/25_quirk_nc6110.patch" || return 1
+ patch -Np1 -i "${srcdir}/26_i830-use-lfp-data-ptrs.patch" || return 1
+ patch -Np1 -i "${srcdir}/27_disable_fbc_on_965.patch" || return 1
+ patch -Np1 -i "${srcdir}/28_stolen_memory_counting_g4x.patch" || return 1
./configure --prefix=/usr \
--enable-dri || return 1
make || return 1
More information about the arch-commits
mailing list