debian/changelog | 8 debian/patches/02_965_no_exa_composite.diff | 6 debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff | 111 ++++++++++ debian/patches/series | 1 4 files changed, 123 insertions(+), 3 deletions(-)
New commits: commit 01255d2fbff394639b6e75e02c9fa0cd9f81bf57 Author: Julien Cristau <[email protected]> Date: Fri Aug 27 22:48:48 2010 +0200 Upload to stable diff --git a/debian/changelog b/debian/changelog index 7e96416..a29d3a0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,10 @@ -xserver-xorg-video-intel (2:2.3.2-2+lenny8) UNRELEASED; urgency=low +xserver-xorg-video-intel (2:2.3.2-2+lenny8) stable; urgency=low * Enable low power render writes on GEN3 hardware. Backported from a kernel - fix by Dave Airlie. + fix by Dave Airlie. This should fix a number of issues (hangs in + particular) on 915/945-class hw. - -- Julien Cristau <[email protected]> Thu, 05 Aug 2010 17:46:43 -0400 + -- Julien Cristau <[email protected]> Fri, 27 Aug 2010 22:47:56 +0200 xserver-xorg-video-intel (2:2.3.2-2+lenny7) stable; urgency=low commit 4807c19fe811e0aa455463dd983d248fcd015df2 Author: Julien Cristau <[email protected]> Date: Thu Aug 5 23:01:49 2010 -0400 Refresh diff --git a/debian/patches/02_965_no_exa_composite.diff b/debian/patches/02_965_no_exa_composite.diff index 2a79c7a..860ff01 100644 --- a/debian/patches/02_965_no_exa_composite.diff +++ b/debian/patches/02_965_no_exa_composite.diff @@ -21,7 +21,7 @@ Index: xserver-xorg-video-intel/src/i830_driver.c =================================================================== --- xserver-xorg-video-intel.orig/src/i830_driver.c +++ xserver-xorg-video-intel/src/i830_driver.c -@@ -317,6 +317,7 @@ +@@ -319,6 +319,7 @@ #ifdef INTEL_XVMC OPTION_XVMC, #endif @@ -29,7 +29,7 @@ Index: xserver-xorg-video-intel/src/i830_driver.c } I830Opts; static OptionInfoRec I830Options[] = { -@@ -345,6 +346,7 @@ +@@ -347,6 +348,7 @@ #ifdef INTEL_XVMC {OPTION_XVMC, "XvMC", OPTV_BOOLEAN, {0}, TRUE}, #endif @@ -37,7 +37,7 @@ Index: xserver-xorg-video-intel/src/i830_driver.c {-1, NULL, OPTV_NONE, {0}, FALSE} }; /* *INDENT-ON* */ -@@ -1583,6 +1585,17 @@ +@@ -1594,6 +1596,17 @@ pI830->useEXA ? "EXA" : "XAA"); } diff --git a/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff b/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff index 81891e4..3af27b0 100644 --- a/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff +++ b/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff @@ -10,11 +10,11 @@ Ported from kernel commits 45503ded966c98e604c9667c0b458d40666b9ef3 and src/i830_driver.c | 12 ++++++++++ 2 files changed, 76 insertions(+), 0 deletions(-) -diff --git a/src/i810_reg.h b/src/i810_reg.h -index f71fe9b..e78a715 100644 ---- a/src/i810_reg.h -+++ b/src/i810_reg.h -@@ -388,6 +388,70 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Index: xserver-xorg-video-intel/src/i810_reg.h +=================================================================== +--- xserver-xorg-video-intel.orig/src/i810_reg.h ++++ xserver-xorg-video-intel/src/i810_reg.h +@@ -388,6 +388,70 @@ #define MI_MODE 0x209c #define MI_DISPLAY_POWER_DOWN 0x20e0 #define MI_ARB_STATE 0x20e4 @@ -85,11 +85,11 @@ index f71fe9b..e78a715 100644 #define MI_RDRET_STATE 0x20fc /* Start addresses for each of the primary rings: -diff --git a/src/i830_driver.c b/src/i830_driver.c -index a9f4478..b6671ed 100644 ---- a/src/i830_driver.c -+++ b/src/i830_driver.c -@@ -3051,6 +3051,19 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +Index: xserver-xorg-video-intel/src/i830_driver.c +=================================================================== +--- xserver-xorg-video-intel.orig/src/i830_driver.c ++++ xserver-xorg-video-intel/src/i830_driver.c +@@ -3064,6 +3064,19 @@ if (!vgaHWMapMem(pScrn)) return FALSE; @@ -109,6 +109,3 @@ index a9f4478..b6671ed 100644 i830_disable_render_standby(pScrn); DPRINTF(PFX, "assert( if(!I830EnterVT(scrnIndex, 0)) )\n"); --- -1.7.1 - commit 0fd8e8fc8a890b67c911181c8a75ef5f8e160c5e Author: Julien Cristau <[email protected]> Date: Thu Aug 5 23:00:02 2010 -0400 Enable low power render modes on GEN3 hardware diff --git a/debian/changelog b/debian/changelog index 4f30420..7e96416 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xserver-xorg-video-intel (2:2.3.2-2+lenny8) UNRELEASED; urgency=low + + * Enable low power render writes on GEN3 hardware. Backported from a kernel + fix by Dave Airlie. + + -- Julien Cristau <[email protected]> Thu, 05 Aug 2010 17:46:43 -0400 + xserver-xorg-video-intel (2:2.3.2-2+lenny7) stable; urgency=low * Backport from upstream git support for SDVO LVDS outputs, as found on asus diff --git a/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff b/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff new file mode 100644 index 0000000..81891e4 --- /dev/null +++ b/debian/patches/04_Enable-low-power-render-writes-on-GEN3-hardware.diff @@ -0,0 +1,114 @@ +From b50d7d47dd52649b25df514fc0e4c0a004881ce1 Mon Sep 17 00:00:00 2001 +From: Julien Cristau <[email protected]> +Date: Thu, 5 Aug 2010 17:43:19 -0400 +Subject: [PATCH] Enable low power render writes on GEN3 hardware + +Ported from kernel commits 45503ded966c98e604c9667c0b458d40666b9ef3 and +944001201ca0196bcdb088129e5866a9f379d08c. +--- + src/i810_reg.h | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/i830_driver.c | 12 ++++++++++ + 2 files changed, 76 insertions(+), 0 deletions(-) + +diff --git a/src/i810_reg.h b/src/i810_reg.h +index f71fe9b..e78a715 100644 +--- a/src/i810_reg.h ++++ b/src/i810_reg.h +@@ -388,6 +388,70 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + #define MI_MODE 0x209c + #define MI_DISPLAY_POWER_DOWN 0x20e0 + #define MI_ARB_STATE 0x20e4 ++#define MI_ARB_MASK_SHIFT 16 /* shift for enable bits */ ++ ++/* Make render/texture TLB fetches lower priorty than associated data ++ * fetches. This is not turned on by default ++ */ ++#define MI_ARB_RENDER_TLB_LOW_PRIORITY (1 << 15) ++ ++/* Isoch request wait on GTT enable (Display A/B/C streams). ++ * Make isoch requests stall on the TLB update. May cause ++ * display underruns (test mode only) ++ */ ++#define MI_ARB_ISOCH_WAIT_GTT (1 << 14) ++ ++/* Block grant count for isoch requests when block count is ++ * set to a finite value. ++ */ ++#define MI_ARB_BLOCK_GRANT_MASK (3 << 12) ++#define MI_ARB_BLOCK_GRANT_8 (0 << 12) /* for 3 display planes */ ++#define MI_ARB_BLOCK_GRANT_4 (1 << 12) /* for 2 display planes */ ++#define MI_ARB_BLOCK_GRANT_2 (2 << 12) /* for 1 display plane */ ++#define MI_ARB_BLOCK_GRANT_0 (3 << 12) /* don't use */ ++ ++/* Enable render writes to complete in C2/C3/C4 power states. ++ * If this isn't enabled, render writes are prevented in low ++ * power states. That seems bad to me. ++ */ ++#define MI_ARB_C3_LP_WRITE_ENABLE (1 << 11) ++ ++/* This acknowledges an async flip immediately instead ++ * of waiting for 2TLB fetches. ++ */ ++#define MI_ARB_ASYNC_FLIP_ACK_IMMEDIATE (1 << 10) ++ ++/* Enables non-sequential data reads through arbiter ++ */ ++#define MI_ARB_DUAL_DATA_PHASE_DISABLE (1 << 9) ++ ++/* Disable FSB snooping of cacheable write cycles from binner/render ++ * command stream ++ */ ++#define MI_ARB_CACHE_SNOOP_DISABLE (1 << 8) ++ ++/* Arbiter time slice for non-isoch streams */ ++#define MI_ARB_TIME_SLICE_MASK (7 << 5) ++#define MI_ARB_TIME_SLICE_1 (0 << 5) ++#define MI_ARB_TIME_SLICE_2 (1 << 5) ++#define MI_ARB_TIME_SLICE_4 (2 << 5) ++#define MI_ARB_TIME_SLICE_6 (3 << 5) ++#define MI_ARB_TIME_SLICE_8 (4 << 5) ++#define MI_ARB_TIME_SLICE_10 (5 << 5) ++#define MI_ARB_TIME_SLICE_14 (6 << 5) ++#define MI_ARB_TIME_SLICE_16 (7 << 5) ++ ++/* Low priority grace period page size */ ++#define MI_ARB_LOW_PRIORITY_GRACE_4KB (0 << 4) /* default */ ++#define MI_ARB_LOW_PRIORITY_GRACE_8KB (1 << 4) ++ ++/* Disable display A/B trickle feed */ ++#define MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE (1 << 2) ++ ++/* Set display plane priority */ ++#define MI_ARB_DISPLAY_PRIORITY_A_B (0 << 0) /* display A > display B */ ++#define MI_ARB_DISPLAY_PRIORITY_B_A (1 << 0) /* display B > display A */ ++ + #define MI_RDRET_STATE 0x20fc + + /* Start addresses for each of the primary rings: +diff --git a/src/i830_driver.c b/src/i830_driver.c +index a9f4478..b6671ed 100644 +--- a/src/i830_driver.c ++++ b/src/i830_driver.c +@@ -3051,6 +3051,19 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + if (!vgaHWMapMem(pScrn)) + return FALSE; + ++ if (IS_I915G(pI830) || ++ IS_I915GM(pI830) || ++ IS_I945G(pI830) || ++ IS_I945GM(pI830) || ++ IS_G33CLASS(pI830)) { ++ CARD32 tmp = INREG(MI_ARB_STATE); ++ if (!(tmp & MI_ARB_C3_LP_WRITE_ENABLE)) { ++ /* arb state is a masked write, so set bit + bit in mask */ ++ tmp = MI_ARB_C3_LP_WRITE_ENABLE | (MI_ARB_C3_LP_WRITE_ENABLE << MI_ARB_MASK_SHIFT); ++ OUTREG(MI_ARB_STATE, tmp); ++ } ++ } ++ + i830_disable_render_standby(pScrn); + + DPRINTF(PFX, "assert( if(!I830EnterVT(scrnIndex, 0)) )\n"); +-- +1.7.1 + diff --git a/debian/patches/series b/debian/patches/series index 8362dbe..45f2503 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 01_gen_pci_ids.diff 02_965_no_exa_composite.diff 03_sdvo_lvds.diff +04_Enable-low-power-render-writes-on-GEN3-hardware.diff -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

