xf86-video-intel: Branch 'xf86-video-intel-2.4-branch' - 2 commits - configure.ac src/i830_display.c

Zhenyu Wang zhen at kemper.freedesktop.org
Fri Aug 22 00:36:06 PDT 2008


 configure.ac       |    7 ++++---
 src/i830_display.c |   20 +++++---------------
 2 files changed, 9 insertions(+), 18 deletions(-)

New commits:
commit 48d4b0ae50affd7fa442271046eefba74de7ff2c
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Wed Aug 20 15:06:36 2008 -0700

    Don't disable planes in i830_update_dsparb
    
    We need to program DSPARB with only one plane enabled at most, and that's
    guaranteed to be the case when we're called during mode set, so just assert
    that case but otherwise leave the planes alone to avoid flicker on active
    displays during output detection for example.
    
    Fixes bug #17050.
    (cherry picked from commit 5af504166f14f4401818f3b7c27ac2ccba7b9ff5)

diff --git a/src/i830_display.c b/src/i830_display.c
index 2f1e7ab..f81847b 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1102,21 +1102,15 @@ i830_update_dsparb(ScrnInfoPtr pScrn)
 {
    xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
    I830Ptr pI830 = I830PTR(pScrn);
-   uint32_t dspacntr, dspbcntr;
    int total_hdisplay = 0, planea_hdisplay = 0, planeb_hdisplay = 0;
    int fifo_entries = 0, planea_entries = 0, planeb_entries = 0, i;
 
-   dspacntr = INREG(DSPACNTR);
-   dspbcntr = INREG(DSPBCNTR);
+   if ((INREG(DSPACNTR) & DISPLAY_PLANE_ENABLE) &&
+       (INREG(DSPBCNTR) & DISPLAY_PLANE_ENABLE))
+       xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+		  "tried to update DSPARB with both planes enabled!\n");
 
-   /* Disable planes since DSPARB can only be updated when they're
-    * off.
-    */
-   OUTREG(DSPACNTR, dspacntr & ~DISPLAY_PLANE_ENABLE);
-   OUTREG(DSPBCNTR, dspbcntr & ~DISPLAY_PLANE_ENABLE);
-   i830WaitForVblank(pScrn);
-
-   /*
+  /*
     * FIFO entries will be split based on programmed modes
     */
    if (IS_I965GM(pI830) || IS_GM45(pI830))
@@ -1158,10 +1152,6 @@ i830_update_dsparb(ScrnInfoPtr pScrn)
 	      (planea_entries << DSPARB_AEND_SHIFT));
    else
        OUTREG(DSPARB, planea_entries << DSPARB_AEND_SHIFT);
-
-   OUTREG(DSPACNTR, dspacntr);
-   OUTREG(DSPBCNTR, dspbcntr);
-   i830WaitForVblank(pScrn);
 }
 
 /**
commit 7fbbafc8fc2b027ec12215ce13d814e339d01a68
Author: Julien Cristau <jcristau at debian.org>
Date:   Wed Aug 20 15:33:59 2008 +0800

    Don't skip the checks for DRI headers with --enable-dri
    (cherry picked from commit 5eccb5ec7ea78b5800f98decd4216d39b9ebe5ec)

diff --git a/configure.ac b/configure.ac
index 0e155ce..fcdd33c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -91,8 +91,7 @@ sdkdir=$(pkg-config --variable=sdkdir xorg-server)
 # Checks for header files.
 AC_HEADER_STDC
 
-AC_MSG_CHECKING([whether to include DRI support])
-if test x$DRI = xauto; then
+if test x$DRI != xno; then
         AC_CHECK_FILE([${sdkdir}/dri.h],
                       [have_dri_h="yes"], [have_dri_h="no"])
         AC_CHECK_FILE([${sdkdir}/sarea.h],
@@ -101,7 +100,9 @@ if test x$DRI = xauto; then
                       [have_dristruct_h="yes"], [have_dristruct_h="no"])
 	AC_CHECK_FILE([${sdkdir}/damage.h],
                       [have_damage_h="yes"], [have_damage_h="no"])
-
+fi
+AC_MSG_CHECKING([whether to include DRI support])
+if test x$DRI = xauto; then
         if test "$have_dri_h" = yes -a \
                 "$have_sarea_h" = yes -a \
                 "$have_dristruct_h" = yes; then


More information about the xorg-commit mailing list