From 3fbab872ef96dd1ec6437d13abc7941289ed842a Mon Sep 17 00:00:00 2001 From: Rémi Cardona Date: Tue, 30 Sep 2008 09:55:11 +0000 Subject: x11-drivers/xf86-video-i810: add another patch from upstream's 2.4-branch (Portage version: 2.2_rc11/cvs/Linux 2.6.25-gentoo-r6 x86_64) --- x11-drivers/xf86-video-i810/ChangeLog | 11 +++- ...n-t-allocate-a-pipe-for-hotplug-detection.patch | 63 ++++++++++++++++++++++ ...eo-i810-2.4.2-0002-Disable-render-standby.patch | 60 +++++++++++++++++++++ .../files/xf86-video-i810-2.4.2-fix-flicker.patch | 60 --------------------- .../xf86-video-i810-2.4.2-r1.ebuild | 4 +- .../xf86-video-i810-2.4.2-r2.ebuild | 48 +++++++++++++++++ 6 files changed, 183 insertions(+), 63 deletions(-) create mode 100644 x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0001-Don-t-allocate-a-pipe-for-hotplug-detection.patch create mode 100644 x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0002-Disable-render-standby.patch delete mode 100644 x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-fix-flicker.patch create mode 100644 x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r2.ebuild (limited to 'x11-drivers') diff --git a/x11-drivers/xf86-video-i810/ChangeLog b/x11-drivers/xf86-video-i810/ChangeLog index a9fe09134651..a8d79dc85dac 100644 --- a/x11-drivers/xf86-video-i810/ChangeLog +++ b/x11-drivers/xf86-video-i810/ChangeLog @@ -1,6 +1,15 @@ # 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.105 2008/09/02 20:09:08 remi Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/ChangeLog,v 1.106 2008/09/30 09:55:10 remi Exp $ + +*xf86-video-i810-2.4.2-r2 (30 Sep 2008) + + 30 Sep 2008; Rémi Cardona + +files/xf86-video-i810-2.4.2-0001-Don-t-allocate-a-pipe-for-hotplug-detect + ion.patch, +files/xf86-video-i810-2.4.2-0002-Disable-render-standby.patch, + -files/xf86-video-i810-2.4.2-fix-flicker.patch, + xf86-video-i810-2.4.2-r1.ebuild, +xf86-video-i810-2.4.2-r2.ebuild: + add another patch from upstream's 2.4-branch *xf86-video-i810-2.4.2-r1 (02 Sep 2008) diff --git a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0001-Don-t-allocate-a-pipe-for-hotplug-detection.patch b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0001-Don-t-allocate-a-pipe-for-hotplug-detection.patch new file mode 100644 index 000000000000..261e829cf054 --- /dev/null +++ b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0001-Don-t-allocate-a-pipe-for-hotplug-detection.patch @@ -0,0 +1,63 @@ +From 95fe53b9fa5f44a1adb909909d609463d68578c2 Mon Sep 17 00:00:00 2001 +From: Jesse Barnes +Date: Wed, 20 Aug 2008 14:40:29 -0700 +Subject: [PATCH] Don't allocate a pipe for hotplug detection + +It shouldn't be needed... +(cherry picked from commit 7b6f4d22211d71480caf6335a3eacaacff369371) + +diff --git a/src/i830_crt.c b/src/i830_crt.c +index 2a99f9c..8274c0c 100644 +--- 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; + } + +-- +1.6.0.2 + diff --git a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0002-Disable-render-standby.patch b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0002-Disable-render-standby.patch new file mode 100644 index 000000000000..e80efaa6dd5f --- /dev/null +++ b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-0002-Disable-render-standby.patch @@ -0,0 +1,60 @@ +From 86f82c429f5d7067c52d3b783988917869e13d1d Mon Sep 17 00:00:00 2001 +From: Zhenyu Wang +Date: Thu, 11 Sep 2008 15:49:41 +0800 +Subject: [PATCH] Disable render standby + +Render standby is known to cause possible hang issue on some +mobile chips, so always disable it. + +diff --git a/src/i810_reg.h b/src/i810_reg.h +index 8690954..af8c6a3 100644 +--- a/src/i810_reg.h ++++ b/src/i810_reg.h +@@ -2815,4 +2815,7 @@ typedef enum { + + #define PEG_BAND_GAP_DATA 0x14d68 + ++#define MCHBAR_RENDER_STANDBY 0x111B8 ++#define RENDER_STANDBY_ENABLE (1 << 30) ++ + #endif /* _I810_REG_H */ +diff --git a/src/i830_driver.c b/src/i830_driver.c +index 6f87c51..209aa07 100644 +--- a/src/i830_driver.c ++++ b/src/i830_driver.c +@@ -2718,6 +2718,23 @@ i830_memory_init(ScrnInfoPtr pScrn) + return FALSE; + } + ++static void ++i830_disable_render_standby(ScrnInfoPtr pScrn) ++{ ++ I830Ptr pI830 = I830PTR(pScrn); ++ uint32_t render_standby; ++ ++ /* Render Standby might cause hang issue, try always disable it.*/ ++ if (IS_I965GM(pI830) || IS_GM45(pI830)) { ++ render_standby = INREG(MCHBAR_RENDER_STANDBY); ++ if (render_standby & RENDER_STANDBY_ENABLE) { ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Disable render standby.\n"); ++ OUTREG(MCHBAR_RENDER_STANDBY, ++ (render_standby & (~RENDER_STANDBY_ENABLE))); ++ } ++ } ++} ++ + static Bool + I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + { +@@ -3053,6 +3070,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + if (!vgaHWMapMem(pScrn)) + return FALSE; + ++ i830_disable_render_standby(pScrn); ++ + DPRINTF(PFX, "assert( if(!I830EnterVT(scrnIndex, 0)) )\n"); + + if (!pI830->useEXA) { +-- +1.6.0.2 + diff --git a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-fix-flicker.patch b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-fix-flicker.patch deleted file mode 100644 index 0e7de65357e9..000000000000 --- a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.4.2-fix-flicker.patch +++ /dev/null @@ -1,60 +0,0 @@ -From: Jesse Barnes -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; - } - diff --git a/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r1.ebuild b/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r1.ebuild index fda1e82edeed..dff07a10dfb8 100644 --- a/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r1.ebuild +++ b/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r1.ebuild @@ -1,6 +1,6 @@ # 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.4.2-r1.ebuild,v 1.1 2008/09/02 20:09:08 remi Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r1.ebuild,v 1.2 2008/09/30 09:55:10 remi Exp $ # Must be before x-modular eclass is inherited # Enable snapshot to get the man page in the right place @@ -37,7 +37,7 @@ DEPEND="${RDEPEND} CONFIGURE_OPTIONS="$(use_enable dri)" PATCHES=( -"${FILESDIR}/${P}-fix-flicker.patch" +"${FILESDIR}/${P}-0001-Don-t-allocate-a-pipe-for-hotplug-detection.patch" ) pkg_setup() { diff --git a/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r2.ebuild b/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r2.ebuild new file mode 100644 index 000000000000..a6d6eb6c5498 --- /dev/null +++ b/x11-drivers/xf86-video-i810/xf86-video-i810-2.4.2-r2.ebuild @@ -0,0 +1,48 @@ +# 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.4.2-r2.ebuild,v 1.1 2008/09/30 09:55:10 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-proto/glproto + >=x11-libs/libdrm-2.2 + x11-libs/libX11 )" + +CONFIGURE_OPTIONS="$(use_enable dri)" + +PATCHES=( +"${FILESDIR}/${P}-0001-Don-t-allocate-a-pipe-for-hotplug-detection.patch" +"${FILESDIR}/${P}-0002-Disable-render-standby.patch" +) + +pkg_setup() { + if use dri && ! built_with_use x11-base/xorg-server dri; then + die "Build x11-base/xorg-server with USE=dri." + fi +} -- cgit v1.2.3-65-gdbad