xserver-xorg-video-intel: Changes to 'debian-lenny'
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 <jcristau@debian.org>
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 <jcristau@debian.org> Thu, 05 Aug 2010 17:46:43 -0400
+ -- Julien Cristau <jcristau@debian.org> 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 <jcristau@debian.org>
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 <jcristau@debian.org>
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 <jcristau@debian.org> 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 <jcristau@debian.org>
+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
Reply to: