xf86-video-intel: src/i810_reg.h src/i830_driver.c

Jesse Barnes jbarnes at kemper.freedesktop.org
Wed May 28 15:49:12 PDT 2008


 src/i810_reg.h    |    2 ++
 src/i830_driver.c |   11 ++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

New commits:
commit bd137a19dc29dd466eac030e040f729ed0807e3f
Author: Jesse Barnes <jbarnes at hobbes.lan>
Date:   Wed May 28 15:47:47 2008 -0700

    Fixup DSPARB for 855 & 945
    
    It turns out 855 has a different DSPARB layout than 915+.  And 945+ have more
    FIFO entries, so we have to allocate things differently.  So on 855 split the
    FIFO evenly again between A & B planes, and do the same on 945, where we have a
    larger FIFO.  Fixes an issue reported by Daniel Stone with the previous default
    value.

diff --git a/src/i810_reg.h b/src/i810_reg.h
index d97780f..9da258a 100644
--- a/src/i810_reg.h
+++ b/src/i810_reg.h
@@ -2105,6 +2105,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define DSPARB			0x70030
 #define   DSPARB_CSTART_SHIFT	7
 #define   DSPARB_BSTART_SHIFT	0
+#define   DSPARB_BEND_SHIFT	9 /* on 855 */
+#define   DSPARB_AEND_SHIFT	0
 #define DSPFW1			0x70034
 #define DSPFW2			0x70038
 #define DSPFW3			0x7003c
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 1b07064..1041fe3 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1963,7 +1963,16 @@ SetHWOperatingState(ScrnInfoPtr pScrn)
     * we don't use plane C at all so we can allocate all but one of the 96
     * FIFO RAM entries equally between planes A and B.
     */
-   OUTREG(DSPARB, (95 << DSPARB_CSTART_SHIFT) | (48 << DSPARB_BSTART_SHIFT));
+   if (IS_I9XX(pI830)) {
+       if (IS_I915GM(pI830) || IS_I915G(pI830))
+	   OUTREG(DSPARB, (95 << DSPARB_CSTART_SHIFT) |
+		  (48 << DSPARB_BSTART_SHIFT));
+       else
+	   OUTREG(DSPARB, (127 << DSPARB_CSTART_SHIFT) |
+		  (64 << DSPARB_BSTART_SHIFT));
+   } else {
+       OUTREG(DSPARB, 254 << DSPARB_BEND_SHIFT | 128 << DSPARB_AEND_SHIFT);
+   }
 }
 
 enum pipe {


More information about the xorg-commit mailing list