summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Cardona <remi@gentoo.org>2008-04-06 21:21:13 +0000
committerRémi Cardona <remi@gentoo.org>2008-04-06 21:21:13 +0000
commit94439924b3434ca8507675dcbfa99e8b437afd43 (patch)
tree4d1a3cedcc132ca8fb1d5f43d587790e2f5657ab /x11-drivers/xf86-video-i810
parentamd64 stable, bug #214771 (diff)
downloadgentoo-2-94439924b3434ca8507675dcbfa99e8b437afd43.tar.gz
gentoo-2-94439924b3434ca8507675dcbfa99e8b437afd43.tar.bz2
gentoo-2-94439924b3434ca8507675dcbfa99e8b437afd43.zip
x11-drivers/xf86-video-i810: bump to 2.2.99.902 with patch to fix LFP bug on i855
(Portage version: 2.1.5_rc2)
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.902-enable_center_panel_fitting_on_i8xx.patch131
-rw-r--r--x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.902.ebuild43
3 files changed, 182 insertions, 1 deletions
diff --git a/x11-drivers/xf86-video-i810/ChangeLog b/x11-drivers/xf86-video-i810/ChangeLog
index 7be273f1ae03..0733262ff8d9 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.82 2008/03/28 07:34:52 remi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/ChangeLog,v 1.83 2008/04/06 21:21:12 remi Exp $
+
+*xf86-video-i810-2.2.99.902 (06 Apr 2008)
+
+ 06 Apr 2008; Rémi Cardona <remi@gentoo.org>
+ +files/xf86-video-i810-2.2.99.902-enable_center_panel_fitting_on_i8xx.patc
+ h, +xf86-video-i810-2.2.99.902.ebuild:
+ bump to 2.2.99.902 with patch to fix LFP bug on i855
*xf86-video-i810-2.2.99.901 (28 Mar 2008)
diff --git a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.902-enable_center_panel_fitting_on_i8xx.patch b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.902-enable_center_panel_fitting_on_i8xx.patch
new file mode 100644
index 000000000000..751e2937e8b6
--- /dev/null
+++ b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.902-enable_center_panel_fitting_on_i8xx.patch
@@ -0,0 +1,131 @@
+diff --git a/src/i830.h b/src/i830.h
+index 1319c6a..bd41a2f 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -288,6 +288,7 @@ typedef struct _I830OutputPrivateRec {
+ I2CBusPtr pDDCBus;
+ struct _I830DVODriver *i2c_drv;
+ Bool load_detect_temp;
++ uint32_t lvds_bits;
+ int pipe_mask;
+ int clone_mask;
+ /** Output-private structure. Should replace i2c_drv */
+diff --git a/src/i830_display.c b/src/i830_display.c
+index 6a2d1d7..4f3f8ef 100644
+--- a/src/i830_display.c
++++ b/src/i830_display.c
+@@ -1059,6 +1059,7 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+ I830Ptr pI830 = I830PTR(pScrn);
+ I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
++ I830OutputPrivatePtr intel_output;
+ int pipe = intel_crtc->pipe;
+ int plane = intel_crtc->plane;
+ int fp_reg = (pipe == 0) ? FPA0 : FPB0;
+@@ -1088,7 +1089,7 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
+ */
+ for (i = 0; i < xf86_config->num_output; i++) {
+ xf86OutputPtr output = xf86_config->output[i];
+- I830OutputPrivatePtr intel_output = output->driver_private;
++ intel_output = output->driver_private;
+
+ if (output->crtc != crtc)
+ continue;
+@@ -1302,6 +1303,8 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
+ lvds |= LVDS_DITHER_ENABLE;
+ }
+
++ lvds |= intel_output->lvds_bits;
++
+ OUTREG(LVDS, lvds);
+ POSTING_READ(LVDS);
+ }
+diff --git a/src/i830_lvds.c b/src/i830_lvds.c
+index 33b4f26..ddc9b8e 100644
+--- a/src/i830_lvds.c
++++ b/src/i830_lvds.c
+@@ -62,7 +62,6 @@ struct i830_lvds_priv {
+
+ /* The panel needs dithering enabled */
+ Bool panel_wants_dither;
+- Bool need_border;
+
+ /* restore backlight to this value */
+ int backlight_duty_cycle;
+@@ -542,23 +541,22 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
+ adjusted_mode->Clock = dev_priv->panel_fixed_mode->Clock;
+ xf86SetModeCrtc(adjusted_mode, INTERLACE_HALVE_V);
+
++ /* Make sure pre-965s set dither correctly */
++ if (!IS_I965G(pI830) && dev_priv->panel_wants_dither)
++ pfit_control |= PANEL_8TO6_DITHER_ENABLE;
++
+ /* Native modes don't need fitting */
+ if (adjusted_mode->HDisplay == mode->HDisplay &&
+ adjusted_mode->VDisplay == mode->VDisplay) {
+- pfit_control = 0;
+ pfit_pgm_ratios = 0;
+ border = 0;
+ goto out;
+ }
+
+- /* Basic panel fitting options */
+- if (!IS_I965G(pI830)) {
+- if (dev_priv->panel_wants_dither)
+- pfit_control |= PANEL_8TO6_DITHER_ENABLE;
+- } else {
++ /* 965+ wants fuzzy fitting */
++ if (IS_I965G(pI830))
+ pfit_control |= (intel_crtc->pipe << PFIT_PIPE_SHIFT) |
+ PFIT_FILTER_FUZZY;
+- }
+
+ /*
+ * Deal with panel fitting options. Figure out how to stretch the image
+@@ -721,8 +719,11 @@ i830_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
+ out:
+ dev_priv->pfit_control = pfit_control;
+ dev_priv->pfit_pgm_ratios = pfit_pgm_ratios;
+- dev_priv->need_border = border;
+
++ if (border)
++ intel_output->lvds_bits |= LVDS_BORDER_ENABLE;
++ else
++ intel_output->lvds_bits &= ~LVDS_BORDER_ENABLE;
+ /* XXX: It would be nice to support lower refresh rates on the
+ * panels to reduce power consumption, and perhaps match the
+ * user's requested refresh rate.
+@@ -734,23 +735,7 @@ out:
+ static void
+ i830_lvds_prepare(xf86OutputPtr output)
+ {
+- I830OutputPrivatePtr intel_output = output->driver_private;
+- struct i830_lvds_priv *dev_priv = intel_output->dev_priv;
+- ScrnInfoPtr pScrn = output->scrn;
+- I830Ptr pI830 = I830PTR(pScrn);
+- uint32_t lvds;
+-
+- lvds = INREG(LVDS);
+-
+- i830_lvds_dpms(output, DPMSModeOff);
+- /*
+- * ->prepare will be called after the CRTC is off but before
+- * we set the mode, so program the PFIT regs here.
+- */
+- if (dev_priv->need_border)
+- OUTREG(LVDS, lvds | LVDS_BORDER_ENABLE);
+- else
+- OUTREG(LVDS, lvds & (~LVDS_BORDER_ENABLE));
++ i830_lvds_dpms(output, DPMSModeOff);
+ }
+
+ static void
+@@ -767,8 +752,6 @@ i830_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode,
+ */
+ OUTREG(PFIT_PGM_RATIOS, dev_priv->pfit_pgm_ratios);
+ OUTREG(PFIT_CONTROL, dev_priv->pfit_control);
+- /* It's harmless to turn on the LVDS if it's already on */
+- i830_lvds_dpms(output, DPMSModeOn);
+ }
+
+ /**
diff --git a/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.902.ebuild b/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.902.ebuild
new file mode 100644
index 000000000000..59524e9b9a97
--- /dev/null
+++ b/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.902.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.902.ebuild,v 1.1 2008/04/06 21:21:12 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.902-enable_center_panel_fitting_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
+}