summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Cardona <remi@gentoo.org>2008-04-18 17:28:17 +0000
committerRémi Cardona <remi@gentoo.org>2008-04-18 17:28:17 +0000
commita0ab5c45f3e07cb4f6a876fe01073f1229282f7a (patch)
treeda7f5240aa1b3f2dbcbc0242867e69b59e9f1bbf /x11-drivers/xf86-video-i810
parentStable on ppc wrt bug 217408 (diff)
downloadgentoo-2-a0ab5c45f3e07cb4f6a876fe01073f1229282f7a.tar.gz
gentoo-2-a0ab5c45f3e07cb4f6a876fe01073f1229282f7a.tar.bz2
gentoo-2-a0ab5c45f3e07cb4f6a876fe01073f1229282f7a.zip
x11-drivers/xf86-video-i810: Add patches to fix non-native resolution on i8xx-attached LFP displays
(Portage version: 2.1.5_rc4)
Diffstat (limited to 'x11-drivers/xf86-video-i810')
-rw-r--r--x11-drivers/xf86-video-i810/ChangeLog9
-rw-r--r--x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch107
-rw-r--r--x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild43
3 files changed, 158 insertions, 1 deletions
diff --git a/x11-drivers/xf86-video-i810/ChangeLog b/x11-drivers/xf86-video-i810/ChangeLog
index 7899c91d8a60..aeafc933a733 100644
--- a/x11-drivers/xf86-video-i810/ChangeLog
+++ b/x11-drivers/xf86-video-i810/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-drivers/xf86-video-i810
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/ChangeLog,v 1.84 2008/04/14 05:55:53 remi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/ChangeLog,v 1.85 2008/04/18 17:28:17 remi Exp $
+
+*xf86-video-i810-2.2.99.903-r1 (18 Apr 2008)
+
+ 18 Apr 2008; Rémi Cardona <remi@gentoo.org>
+ +files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch,
+ +xf86-video-i810-2.2.99.903-r1.ebuild:
+ Add patches to fix non-native resolution on i8xx-attached LFP displays
*xf86-video-i810-2.2.99.903 (14 Apr 2008)
diff --git a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch
new file mode 100644
index 000000000000..ba7a883d3c13
--- /dev/null
+++ b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch
@@ -0,0 +1,107 @@
+diff --git a/src/i830.h b/src/i830.h
+index 834e4dc..e2c39cc 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -857,6 +857,17 @@ static inline int i830_fb_compression_supported(I830Ptr pI830)
+
+ Bool i830_pixmap_tiled(PixmapPtr p);
+
++#define i830_exa_check_pitch_2d(p) do {\
++ uint32_t pitch = intel_get_pixmap_pitch(p);\
++ if (pitch > KB(32)) return FALSE;\
++} while(0)
++
++/* For pre-965 chip only, as they have 8KB limit for 3D */
++#define i830_exa_check_pitch_3d(p) do {\
++ uint32_t pitch = intel_get_pixmap_pitch(p);\
++ if (pitch > KB(8)) return FALSE;\
++} while(0)
++
+ /* Batchbuffer compatibility handling */
+ #define BEGIN_BATCH(n) BEGIN_LP_RING(n)
+ #define ENSURE_BATCH(n)
+diff --git a/src/i830_driver.c b/src/i830_driver.c
+index 155e7a9..41c0578 100644
+--- a/src/i830_driver.c
++++ b/src/i830_driver.c
+@@ -3108,7 +3108,7 @@ I830FreeScreen(int scrnIndex, int flags)
+ #ifdef INTEL_XVMC
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ I830Ptr pI830 = I830PTR(pScrn);
+- if (pI830->XvMCEnabled)
++ if (pI830 && pI830->XvMCEnabled)
+ intel_xvmc_finish(xf86Screens[scrnIndex]);
+ #endif
+ I830FreeRec(xf86Screens[scrnIndex]);
+diff --git a/src/i830_exa.c b/src/i830_exa.c
+index 9b5bb93..2c807c5 100644
+--- a/src/i830_exa.c
++++ b/src/i830_exa.c
+@@ -170,6 +170,8 @@ I830EXAPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg)
+ if (pPixmap->drawable.bitsPerPixel == 24)
+ I830FALLBACK("solid 24bpp unsupported!\n");
+
++ i830_exa_check_pitch_2d(pPixmap);
++
+ offset = exaGetPixmapOffset(pPixmap);
+ pitch = exaGetPixmapPitch(pPixmap);
+
+@@ -255,6 +257,9 @@ I830EXAPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir,
+ if (!EXA_PM_IS_SOLID(&pSrcPixmap->drawable, planemask))
+ I830FALLBACK("planemask is not solid");
+
++ i830_exa_check_pitch_2d(pSrcPixmap);
++ i830_exa_check_pitch_2d(pDstPixmap);
++
+ pI830->pSrcPixmap = pSrcPixmap;
+
+ pI830->BR[13] = I830CopyROP[alu] << 16;
+diff --git a/src/i830_lvds.c b/src/i830_lvds.c
+index a5004b4..1562c21 100644
+--- a/src/i830_lvds.c
++++ b/src/i830_lvds.c
+@@ -1366,9 +1366,10 @@ i830_lvds_init(ScrnInfoPtr pScrn)
+
+ /*
+ * Default to filling the whole screen if the mode is less than the
+- * native size, without breaking aspect ratio.
++ * native size. (Change default to origin FULL mode, i8xx can only work
++ * in that mode for now.)
+ */
+- dev_priv->fitting_mode = FULL_ASPECT;
++ dev_priv->fitting_mode = FULL;
+
+ return;
+
+diff --git a/src/i830_render.c b/src/i830_render.c
+index 195e9a8..3a959e8 100644
+--- a/src/i830_render.c
++++ b/src/i830_render.c
+@@ -398,6 +398,11 @@ i830_prepare_composite(int op, PicturePtr pSrcPicture,
+ Bool is_affine_src, is_affine_mask;
+ Bool is_nearest = FALSE;
+
++ i830_exa_check_pitch_3d(pSrc);
++ if (pMask)
++ i830_exa_check_pitch_3d(pMask);
++ i830_exa_check_pitch_3d(pDst);
++
+ IntelEmitInvarientState(pScrn);
+ *pI830->last_3d = LAST_3D_RENDER;
+
+diff --git a/src/i915_render.c b/src/i915_render.c
+index 2b9ed04..4a02cf5 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -323,6 +323,11 @@ i915_prepare_composite(int op, PicturePtr pSrcPicture,
+ Bool is_affine_src, is_affine_mask;
+ Bool is_nearest = FALSE;
+
++ i830_exa_check_pitch_3d(pSrc);
++ if (pMask)
++ i830_exa_check_pitch_3d(pMask);
++ i830_exa_check_pitch_3d(pDst);
++
+ IntelEmitInvarientState(pScrn);
+ *pI830->last_3d = LAST_3D_RENDER;
+
diff --git a/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild b/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild
new file mode 100644
index 000000000000..6416c821de26
--- /dev/null
+++ b/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild,v 1.1 2008/04/18 17:28:17 remi Exp $
+
+# Must be before x-modular eclass is inherited
+# Enable snapshot to get the man page in the right place
+# This should be fixed with a XDP patch later
+SNAPSHOT="yes"
+XDPVER=-1
+
+inherit x-modular
+
+# This really needs a pkgmove...
+SRC_URI="http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-${PV}.tar.bz2"
+
+S="${WORKDIR}/xf86-video-intel-${PV}"
+
+DESCRIPTION="X.Org driver for Intel cards"
+
+KEYWORDS="~amd64 ~arm ~ia64 ~sh ~x86 ~x86-fbsd"
+IUSE="dri"
+
+RDEPEND=">=x11-base/xorg-server-1.2
+ x11-libs/libXvMC"
+DEPEND="${RDEPEND}
+ x11-proto/fontsproto
+ x11-proto/randrproto
+ x11-proto/renderproto
+ x11-proto/xextproto
+ x11-proto/xineramaproto
+ x11-proto/xproto
+ dri? ( x11-proto/xf86driproto
+ >=x11-libs/libdrm-2.2
+ x11-libs/libX11 )"
+
+PATCHES=("${FILESDIR}/${PN}-2.2.99.903-fix-panel-resize-on-i8xx.patch")
+CONFIGURE_OPTIONS="$(use_enable dri)"
+
+pkg_setup() {
+ if use dri && ! built_with_use x11-base/xorg-server dri; then
+ die "Build x11-base/xorg-server with USE=dri."
+ fi
+}