diff options
author | 2008-04-06 21:21:13 +0000 | |
---|---|---|
committer | 2008-04-06 21:21:13 +0000 | |
commit | 94439924b3434ca8507675dcbfa99e8b437afd43 (patch) | |
tree | 4d1a3cedcc132ca8fb1d5f43d587790e2f5657ab /x11-drivers/xf86-video-i810 | |
parent | amd64 stable, bug #214771 (diff) | |
download | gentoo-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')
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 +} |