summaryrefslogtreecommitdiffstats
path: root/abs/core/xf86-video-intel
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/xf86-video-intel')
-rw-r--r--abs/core/xf86-video-intel/20_thinkpad_g40_quirk.patch18
-rw-r--r--abs/core/xf86-video-intel/21_quirk_lenovo.patch12
-rw-r--r--abs/core/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch13
-rw-r--r--abs/core/xf86-video-intel/25_quirk_nc6110.patch13
-rw-r--r--abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch63
-rw-r--r--abs/core/xf86-video-intel/27_disable_fbc_on_965.patch18
-rw-r--r--abs/core/xf86-video-intel/PKGBUILD44
7 files changed, 168 insertions, 13 deletions
diff --git a/abs/core/xf86-video-intel/20_thinkpad_g40_quirk.patch b/abs/core/xf86-video-intel/20_thinkpad_g40_quirk.patch
new file mode 100644
index 0000000..c2c72a7
--- /dev/null
+++ b/abs/core/xf86-video-intel/20_thinkpad_g40_quirk.patch
@@ -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 },
diff --git a/abs/core/xf86-video-intel/21_quirk_lenovo.patch b/abs/core/xf86-video-intel/21_quirk_lenovo.patch
new file mode 100644
index 0000000..8479a40
--- /dev/null
+++ b/abs/core/xf86-video-intel/21_quirk_lenovo.patch
@@ -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 */
diff --git a/abs/core/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch b/abs/core/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch
new file mode 100644
index 0000000..d82923f
--- /dev/null
+++ b/abs/core/xf86-video-intel/23_quirks_studiohybrid_eeepc_and_w251u.patch
@@ -0,0 +1,13 @@
+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
+@@ -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 },
+
diff --git a/abs/core/xf86-video-intel/25_quirk_nc6110.patch b/abs/core/xf86-video-intel/25_quirk_nc6110.patch
new file mode 100644
index 0000000..a6db410
--- /dev/null
+++ b/abs/core/xf86-video-intel/25_quirk_nc6110.patch
@@ -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 },
+
diff --git a/abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch b/abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch
new file mode 100644
index 0000000..d74b809
--- /dev/null
+++ b/abs/core/xf86-video-intel/26_i830-use-lfp-data-ptrs.patch
@@ -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));
diff --git a/abs/core/xf86-video-intel/27_disable_fbc_on_965.patch b/abs/core/xf86-video-intel/27_disable_fbc_on_965.patch
new file mode 100644
index 0000000..cc881b9
--- /dev/null
+++ b/abs/core/xf86-video-intel/27_disable_fbc_on_965.patch
@@ -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;
+ }
+
diff --git a/abs/core/xf86-video-intel/PKGBUILD b/abs/core/xf86-video-intel/PKGBUILD
index 106ec41..3530b90 100644
--- a/abs/core/xf86-video-intel/PKGBUILD
+++ b/abs/core/xf86-video-intel/PKGBUILD
@@ -1,25 +1,43 @@
-# $Id: PKGBUILD 3246 2008-06-21 18:13:57Z jgc $
+# $Id: PKGBUILD 19083 2008-11-14 21:09:00Z jgc $
# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=xf86-video-intel
-pkgver=2.3.2
+pkgver=2.4.3
pkgrel=1
-pkgdesc="X.org Intel i810/i830/i915 video drivers"
+pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
arch=(i686 x86_64)
url="http://xorg.freedesktop.org/"
-depends=('intel-dri' 'libdrm')
-makedepends=('pkgconfig' 'xorg-server>=1.4.2' 'xorg-util-macros' 'xf86driproto>=2.0.4' 'glproto>=1.4.9' 'mesa>=7.0.3')
-
-options=('!libtool')
+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' 'force')
groups=('xorg-video-drivers')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('fef32ffc428d9d565ab10b338ce17855')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 20_thinkpad_g40_quirk.patch
+ 21_quirk_lenovo.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)
+md5sums=('a664819288b98a37f77ab6ae1e14c9d9'
+ '68a362a168ffa4f37d9f722f43855468'
+ '2d617364ac2e47ca366901d0b849b1a1'
+ '3d0f8e593e8eac3000154feb6b0f45b8'
+ '3deb800906e6845e8576d4e9d0f22b12'
+ 'cb7ee7a68858c038020e0cd991143d8e'
+ 'd215e428585c6e55aefd9f525ebfbe7b')
build() {
- cd ${startdir}/src/${pkgname}-${pkgver}
+ 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}/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
./configure --prefix=/usr \
--enable-dri || return 1
make || return 1
- make DESTDIR=${startdir}/pkg install || return 1
- rm -f ${startdir}/pkg/usr/lib/xorg/modules/drivers/i810_drv.so
- rm -f ${startdir}/pkg/usr/share/man/man4/i810.4*
+ make DESTDIR="${pkgdir}" install || return 1
}