xf86-video-intel: Branch 'drm-gem' - 21 commits - configure.ac Makefile.am src/common.h src/i830_debug.c src/i830_display.c src/i830_dri.c src/i830_driver.c src/i830_hdmi.c src/i830_quirks.c src/i830_sdvo.c src/i830_sdvo_regs.h src/i830_tv.c src/i965_render.c src/Makefile.am

Jesse Barnes jbarnes at kemper.freedesktop.org
Tue Aug 5 13:06:49 PDT 2008


 Makefile.am          |    1 +
 configure.ac         |    2 +-
 src/Makefile.am      |    6 +++---
 src/common.h         |    2 ++
 src/i830_debug.c     |    2 --
 src/i830_display.c   |    7 ++++---
 src/i830_dri.c       |    2 +-
 src/i830_driver.c    |   22 +++++++++++++++-------
 src/i830_hdmi.c      |    2 +-
 src/i830_quirks.c    |    6 +++++-
 src/i830_sdvo.c      |    9 ++++++++-
 src/i830_sdvo_regs.h |    2 --
 src/i830_tv.c        |    1 +
 src/i965_render.c    |    2 +-
 14 files changed, 43 insertions(+), 23 deletions(-)

New commits:
commit c2f0df4dc97c87539b66525a277c7d1e2c421f61
Merge: 4f1f308... 750bd0b...
Author: Jesse Barnes <jbarnes at jbarnes-t61.(none)>
Date:   Tue Aug 5 13:03:46 2008 -0700

    Merge branch 'drm-gem' of ssh://git.freedesktop.org/git/xorg/driver/xf86-video-intel into drm-gem

commit 4f1f30854260e18b8b9c4103eebbad5dcf729ce6
Merge: e9e6b47... 2aaa207...
Author: Jesse Barnes <jbarnes at jbarnes-t61.(none)>
Date:   Tue Aug 5 13:02:47 2008 -0700

    Merge branch 'master' into drm-gem
    
    Conflicts:
    
    	src/i830_driver.c

diff --cc src/Makefile.am
index e3bbdce,382c0aa..2932233
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@@ -177,8 -174,9 +176,9 @@@ INTEL_G4B = 				
  	exa_wm_ca.g4b			\
  	exa_wm_ca_srcalpha.g4b		\
  	exa_wm_write.g4b 		\
+ 	exa_wm_yuv_rgb.g4b		\
  	exa_wm_xy.g4b
 -	
 +
  EXTRA_DIST = 		\
  	$(XMODE_SRCS)	\
  	$(INTEL_G4A)	\
diff --cc src/i830_driver.c
index dcbaa04,f5aa114..4cede90
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@@ -3368,20 -3298,18 +3376,20 @@@ I830LeaveVT(int scrnIndex, int flags
     if (I830IsPrimary(pScrn))
        i830_unbind_all_memory(pScrn);
  
 -   /* Tell the kernel to evict all buffer objects and block new buffer
 -    * allocations until we relese the lock.
 -    */
 -#ifdef XF86DRI_MM
 -   if (pI830->directRenderingOpen) {
 -      if (pI830->memory_manager != NULL && pScrn->vtSema) {
 -	 drmMMLock(pI830->drmSubFD, DRM_BO_MEM_TT, 1, 0);
 -      }
 +#ifdef XF86DRI
 +   if (pI830->memory_manager) {
 +      int ret;
 +
 +      /* Tell the kernel to evict all buffer objects and block GTT usage while
 +       * we're no longer in control of the chip.
 +       */
 +      ret = drmCommandNone(pI830->drmSubFD, DRM_I915_GEM_LEAVEVT);
 +      if (ret != 0)
 +	 FatalError("DRM_I915_LEAVEVT failed: %s\n", strerror(ret));
     }
 -#endif /* XF86DRI_MM */
 +#endif /* XF86DRI */
  
-    if (IS_I965G(pI830))
+    if (pI830->useEXA && IS_I965G(pI830))
        gen4_render_state_cleanup(pScrn);
  
     if (pI830->AccelInfoRec)
@@@ -3432,9 -3358,7 +3440,9 @@@ I830EnterVT(int scrnIndex, int flags
     /* Update the screen pixmap in case the buffer moved */
     i830_update_front_offset(pScrn);
  
 +   intel_batch_init(pScrn);
 +
-    if (IS_I965G(pI830))
+    if (pI830->useEXA && IS_I965G(pI830))
        gen4_render_state_init(pScrn);
  
     if (i830_check_error_state(pScrn)) {
commit 2aaa207db2cea03ba05c439b5074807689f2c5be
Merge: 2049ba2... 76eb8e6...
Author: Jesse Barnes <jbarnes at hobbes.lan>
Date:   Thu Jul 31 13:10:19 2008 -0700

    Merge branch 'master' of ssh://git.freedesktop.org/git/xorg/driver/xf86-video-intel
    
    Conflicts:
    
    	src/i830_display.c

diff --cc src/i830_display.c
index 2a267f1,2e1de41..e1dad03
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@@ -1477,8 -1477,6 +1477,9 @@@ i830_crtc_mode_set(xf86CrtcPtr crtc, Di
      /* Wait for the clocks to stabilize. */
      usleep(150);
  
-     i830_update_dsparb(pScrn);
++    if (!DSPARB_HWCONTROL(pI830))
++	i830_update_dsparb(pScrn);
 +
      OUTREG(htot_reg, (adjusted_mode->CrtcHDisplay - 1) |
  	((adjusted_mode->CrtcHTotal - 1) << 16));
      OUTREG(hblank_reg, (adjusted_mode->CrtcHBlankStart - 1) |
commit 2049ba211e7cdc383976c09f52c2b43acdd59481
Author: Jesse Barnes <jbarnes at hobbes.lan>
Date:   Thu Jul 31 13:07:20 2008 -0700

    Update DSPARB while planes are still off
    
    This avoids the flickering people reported in the 2.4.0 release.

diff --git a/src/i830_display.c b/src/i830_display.c
index 6176447..2a267f1 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1477,6 +1477,8 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
     /* Wait for the clocks to stabilize. */
     usleep(150);
 
+    i830_update_dsparb(pScrn);
+
     OUTREG(htot_reg, (adjusted_mode->CrtcHDisplay - 1) |
 	((adjusted_mode->CrtcHTotal - 1) << 16));
     OUTREG(hblank_reg, (adjusted_mode->CrtcHBlankStart - 1) |
@@ -1510,8 +1512,6 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
     
     i830WaitForVblank(pScrn);
 
-    i830_update_dsparb(pScrn);
-
     /* Clear any FIFO underrun status that may have occurred normally */
     OUTREG(pipestat_reg, INREG(pipestat_reg) | FIFO_UNDERRUN);
 }
commit 76eb8e6f1f0c6962b23550564f4273f392567857
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Thu Jul 31 16:59:43 2008 +0800

    Fix SDVO reg definition
    
    Remove wrong set tv resolution command, adding HDMI regs in dump.

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index d9b76d4..701aeaa 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -228,23 +228,30 @@ const static struct _sdvo_cmd_name {
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_SUPPORTED_POWER_STATES),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_ENCODER_POWER_STATE),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_ENCODER_POWER_STATE),
-    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_TV_RESOLUTION_SUPPORT),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_CONTROL_BUS_SWITCH),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_SDTV_RESOLUTION_SUPPORT),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_SUPPORTED_ENHANCEMENTS),
     /* HDMI op code */
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_SUPP_ENCODE),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_ENCODE),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_ENCODE),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_PIXEL_REPLI),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_PIXEL_REPLI),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_COLORIMETRY_CAP),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_COLORIMETRY),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_COLORIMETRY),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_AUDIO_ENCRYPT_PREFER),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_AUDIO_STAT),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_AUDIO_STAT),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_HBUF_INDEX),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_HBUF_INDEX),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_HBUF_INFO),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_HBUF_AV_SPLIT),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_HBUF_AV_SPLIT),
     SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_HBUF_TXRATE),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_HBUF_TXRATE),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_SET_HBUF_DATA),
+    SDVO_CMD_NAME_ENTRY(SDVO_CMD_GET_HBUF_DATA),
 };
 
 static I2CSlaveAddr slaveAddr;
diff --git a/src/i830_sdvo_regs.h b/src/i830_sdvo_regs.h
index 747f2cd..4d55555 100644
--- a/src/i830_sdvo_regs.h
+++ b/src/i830_sdvo_regs.h
@@ -503,8 +503,6 @@ struct i830_sdvo_enhancements_arg {
 # define SDVO_DITHER_ON						(1 << 0)
 # define SDVO_DITHER_DEFAULT_ON					(1 << 1)
 
-#define SDVO_CMD_SET_TV_RESOLUTION_SUPPORT		0x93
-
 #define SDVO_CMD_SET_CONTROL_BUS_SWITCH			0x7a
 # define SDVO_CONTROL_BUS_PROM				(1 << 0)
 # define SDVO_CONTROL_BUS_DDC1				(1 << 1)
commit 77ed3d7600c1d92bf4a3ef4f54405cde8c232986
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Thu Jul 31 13:13:45 2008 +0800

    Don't program dsparb on new Intel chip
    
    On new chip, DSPARB is controlled by hardware only.

diff --git a/src/common.h b/src/common.h
index 57db6cb..f2ae502 100644
--- a/src/common.h
+++ b/src/common.h
@@ -374,6 +374,8 @@ extern int I810_DEBUG;
 /* chipsets require status page in non stolen memory */
 #define HWS_NEED_NONSTOLEN(pI810) (IS_GM45(pI810) || IS_G4X(pI810))
 #define SUPPORTS_INTEGRATED_HDMI(pI810) (IS_GM45(pI810) || IS_G4X(pI810))
+/* dsparb controlled by hw only */
+#define DSPARB_HWCONTROL(pI810) (IS_G4X(pI810) || IS_GM45(pI810))
 
 #define GTT_PAGE_SIZE			KB(4)
 #define ROUND_TO(x, y)			(((x) + (y) - 1) / (y) * (y))
diff --git a/src/i830_display.c b/src/i830_display.c
index 6176447..2e1de41 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1510,7 +1510,8 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
     
     i830WaitForVblank(pScrn);
 
-    i830_update_dsparb(pScrn);
+    if (!DSPARB_HWCONTROL(pI830))
+	i830_update_dsparb(pScrn);
 
     /* Clear any FIFO underrun status that may have occurred normally */
     OUTREG(pipestat_reg, INREG(pipestat_reg) | FIFO_UNDERRUN);
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 4bb9b81..f5aa114 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2018,7 +2018,8 @@ SaveHWState(ScrnInfoPtr pScrn)
    }
 
    /* Save video mode information for native mode-setting. */
-   pI830->saveDSPARB = INREG(DSPARB);
+   if (!DSPARB_HWCONTROL(pI830))
+       pI830->saveDSPARB = INREG(DSPARB);
 
    pI830->saveDSPACNTR = INREG(DSPACNTR);
    pI830->savePIPEACONF = INREG(PIPEACONF);
@@ -2161,7 +2162,8 @@ RestoreHWState(ScrnInfoPtr pScrn)
    if (!IS_I830(pI830) && !IS_845G(pI830))
      OUTREG(PFIT_CONTROL, pI830->savePFIT_CONTROL);
 
-   OUTREG(DSPARB, pI830->saveDSPARB);
+   if (!DSPARB_HWCONTROL(pI830))
+       OUTREG(DSPARB, pI830->saveDSPARB);
 
    OUTREG(DSPCLK_GATE_D, pI830->saveDSPCLK_GATE_D);
    OUTREG(RENCLK_GATE_D1, pI830->saveRENCLK_GATE_D1);
@@ -2512,7 +2514,7 @@ I830BlockHandler(int i,
      * (except for mode setting, where it may occur naturally).
      * Check & ack the condition.
      */
-    if (pScrn->vtSema) {
+    if (pScrn->vtSema && !DSPARB_HWCONTROL(pI830)) {
 	if (xf86_config->crtc[0]->enabled &&
 		(INREG(PIPEASTAT) & FIFO_UNDERRUN)) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "underrun on pipe A!\n");
commit 42fb06f3f14fbec070350cf48361be4a0be0af04
Author: Tomas Carnecky <tom at dbservice.com>
Date:   Sun Jun 15 14:27:16 2008 +0200

    Reorder visuals reported by the intel driver
    
    The root window visual can not be changed. Neither at runtime nor
    through the configuration file. The xserver simply selects the first one
    that matches the class (usually TrueColor). I need a root window visual
    with stencil buffer because my compiz plugin uses the it for some
    operations. This patch reorders the visuals that the 3D driver reports
    and puts the one with stencil (and depth) bits as first.

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 57fb0a4..d38fef1 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -386,7 +386,7 @@ I830InitVisualConfigs(ScreenPtr pScreen)
 
       i = 0;
       for (accum = 0; accum <= 1; accum++) {
-	 for (depth = 0; depth <= 1; depth++) {	/* and stencil */
+	 for (depth = 1; depth >= 0; depth--) {	/* and stencil */
 	    for (db = 1; db >= 0; db--) {
 	       pConfigs[i].vid = -1;
 	       pConfigs[i].class = -1;
commit 1e90c82161789d1fd50b79db50edb7860b934639
Author: Julien Cristau <jcristau at debian.org>
Date:   Sun Jul 27 12:07:21 2008 +0200

    Link with -lm for sin/cos

diff --git a/src/Makefile.am b/src/Makefile.am
index 594416d..382c0aa 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -36,7 +36,7 @@ AM_CFLAGS = @WARN_CFLAGS@ @XORG_CFLAGS@ @DRI_CFLAGS@ @PCIACCESS_CFLAGS@ \
 intel_drv_la_LTLIBRARIES = intel_drv.la
 intel_drv_la_LDFLAGS = -module -avoid-version
 intel_drv_ladir = @moduledir@/drivers
-intel_drv_la_LIBADD =
+intel_drv_la_LIBADD = -lm
 if XSERVER_LIBPCIACCESS
 intel_drv_la_LIBADD += @PCIACCESS_LIBS@
 endif
commit 6ac352f146bafe3b4bb5832340eb0ccb730565d2
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Wed Jul 23 15:10:07 2008 +0800

    shut up gcc warning

diff --git a/src/i965_render.c b/src/i965_render.c
index 1cbfe24..8360be4 100644
--- a/src/i965_render.c
+++ b/src/i965_render.c
@@ -862,7 +862,7 @@ i965_set_picture_surface_state(ScrnInfoPtr pScrn, struct brw_surface_state *ss,
     memset(&local_ss, 0, sizeof(local_ss));
     local_ss.ss0.surface_type = BRW_SURFACE_2D;
     if (is_dst) {
-	uint32_t dst_format;
+	uint32_t dst_format = 0;
 	Bool ret = TRUE;
 
 	ret = i965_get_dest_format(pPicture, &dst_format);
commit 075cf7fce57da4e51acafb3bfd3d61ba1a8096d5
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Wed Jul 23 15:07:48 2008 +0800

    Fix distcheck for clean doltcompile

diff --git a/Makefile.am b/Makefile.am
index 8cbe4a9..b2398a8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,3 +22,4 @@ AUTOMAKE_OPTIONS = foreign
 SUBDIRS = src man
 
 EXTRA_DIST = README
+DISTCLEANFILES = doltcompile
commit 29d982c6bf873c6685bd0e395a8b0e5e3b1063e0
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Wed Jul 23 11:16:14 2008 +0800

    Fix HDMI output number
    
    Output 33 is confusing.

diff --git a/src/i830_hdmi.c b/src/i830_hdmi.c
index b738463..58d1c49 100644
--- a/src/i830_hdmi.c
+++ b/src/i830_hdmi.c
@@ -229,5 +229,5 @@ i830_hdmi_init(ScrnInfoPtr pScrn, int output_reg)
 
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 	       "HDMI output %d detected\n",
-	       1 + (output_reg - SDVOB));
+	       (output_reg == SDVOB) ? 1 : 2);
 }
commit fd060ce89d86f6e8ff742d5b287abe8ecea32927
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Tue Jul 22 15:29:34 2008 +0800

    Bug #16801: fix X crash when NoAccel on 965

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 5a06079..4bb9b81 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3307,7 +3307,7 @@ I830LeaveVT(int scrnIndex, int flags)
    }
 #endif /* XF86DRI_MM */
 
-   if (IS_I965G(pI830))
+   if (pI830->useEXA && IS_I965G(pI830))
       gen4_render_state_cleanup(pScrn);
 
    if (pI830->AccelInfoRec)
@@ -3356,7 +3356,7 @@ I830EnterVT(int scrnIndex, int flags)
    /* Update the screen pixmap in case the buffer moved */
    i830_update_front_offset(pScrn);
 
-   if (IS_I965G(pI830))
+   if (pI830->useEXA && IS_I965G(pI830))
       gen4_render_state_init(pScrn);
 
    if (i830_check_error_state(pScrn)) {
commit 577c4d1a0c753fb46d43be05a9781d2e204fac45
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Tue Jul 22 15:14:14 2008 +0800

    only check pipe underrun if vtSema is true.

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 390b5e7..5a06079 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2512,16 +2512,18 @@ I830BlockHandler(int i,
      * (except for mode setting, where it may occur naturally).
      * Check & ack the condition.
      */
-    if (xf86_config->crtc[0]->enabled &&
-	    (INREG(PIPEASTAT) & FIFO_UNDERRUN)) {
+    if (pScrn->vtSema) {
+	if (xf86_config->crtc[0]->enabled &&
+		(INREG(PIPEASTAT) & FIFO_UNDERRUN)) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "underrun on pipe A!\n");
 	    OUTREG(PIPEASTAT, INREG(PIPEASTAT) | FIFO_UNDERRUN);
-    }
-    if (xf86_config->num_crtc > 1 &&
-	    xf86_config->crtc[1]->enabled &&
-	    (INREG(PIPEBSTAT) & FIFO_UNDERRUN)) {
+	}
+	if (xf86_config->num_crtc > 1 &&
+		xf86_config->crtc[1]->enabled &&
+		(INREG(PIPEBSTAT) & FIFO_UNDERRUN)) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "underrun on pipe B!\n");
 	    OUTREG(PIPEBSTAT, INREG(PIPEBSTAT) | FIFO_UNDERRUN);
+	}
     }
 
     I830VideoBlockHandler(i, blockData, pTimeout, pReadmask);
commit 04bbed2248e3e8f86efd64225abf2db8eb552653
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Tue Jul 22 15:08:57 2008 +0800

    SSC is LVDS only
    
    Fix regression on my 855GM for VGA output.

diff --git a/src/i830_display.c b/src/i830_display.c
index 69bf7f7..6176447 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1249,7 +1249,7 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "clone detected, disabling SSC\n");
 
     /* Don't use SSC when cloned */
-    if (pI830->lvds_use_ssc && num_outputs < 2) {
+    if (is_lvds && pI830->lvds_use_ssc && num_outputs < 2) {
 	refclk = pI830->lvds_ssc_freq * 1000;
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 		   "using SSC reference clock of %d MHz\n", refclk / 1000);
commit 7defa4f1f0eba82f39e74f96d2ad7ed2481b537e
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Tue Jul 22 10:51:01 2008 +0800

    Check underrun on enabled pipe

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 84aedba..390b5e7 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2487,6 +2487,7 @@ I830BlockHandler(int i,
     ScreenPtr pScreen = screenInfo.screens[i];
     ScrnInfoPtr pScrn = xf86Screens[i];
     I830Ptr pI830 = I830PTR(pScrn);
+    xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
 
     pScreen->BlockHandler = pI830->BlockHandler;
 
@@ -2511,11 +2512,14 @@ I830BlockHandler(int i,
      * (except for mode setting, where it may occur naturally).
      * Check & ack the condition.
      */
-    if (INREG(PIPEASTAT) & FIFO_UNDERRUN) {
+    if (xf86_config->crtc[0]->enabled &&
+	    (INREG(PIPEASTAT) & FIFO_UNDERRUN)) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "underrun on pipe A!\n");
 	    OUTREG(PIPEASTAT, INREG(PIPEASTAT) | FIFO_UNDERRUN);
     }
-    if (INREG(PIPEBSTAT) & FIFO_UNDERRUN) {
+    if (xf86_config->num_crtc > 1 &&
+	    xf86_config->crtc[1]->enabled &&
+	    (INREG(PIPEBSTAT) & FIFO_UNDERRUN)) {
 	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "underrun on pipe B!\n");
 	    OUTREG(PIPEBSTAT, INREG(PIPEBSTAT) | FIFO_UNDERRUN);
     }
commit b7765b0837af4cc80f1257ba04495140ef5d536e
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Tue Jul 22 09:51:54 2008 +0800

    Thinkpad R60e TV quirk via DMI info

diff --git a/src/i830_quirks.c b/src/i830_quirks.c
index 164a70c..5ae2898 100644
--- a/src/i830_quirks.c
+++ b/src/i830_quirks.c
@@ -203,7 +203,8 @@ static void quirk_lenovo_tv_dmi (I830Ptr pI830)
 	ErrorF("Failed to load DMI info, X60 TV quirk not applied.\n");
 	return;
     }
-    if (!strncmp(i830_dmi_data[bios_version], "7B", 2))
+    if (!strncmp(i830_dmi_data[bios_version], "7B", 2) || /* X60, X60s */
+	    !strncmp(i830_dmi_data[bios_version], "7E", 2)) /* R60e */
 	pI830->quirk_flag |= QUIRK_IGNORE_TV;
 }
 
commit ed0fbd016b8fbcf01eddfd17fd25e745e7af2ba4
Author: Jesse Barnes <jbarnes at hobbes.lan>
Date:   Mon Jul 21 11:48:38 2008 -0700

    Add no LVDS quirk for Transtec Senyo 610 mini PC
    
    Fixes FDO #16757.

diff --git a/src/i830_quirks.c b/src/i830_quirks.c
index 3becf35..164a70c 100644
--- a/src/i830_quirks.c
+++ b/src/i830_quirks.c
@@ -222,6 +222,9 @@ static i830_quirk i830_quirk_list[] = {
     /* Apple Mac mini has no lvds, but macbook pro does */
     { PCI_CHIP_I945_GM, 0x8086, 0x7270, quirk_mac_mini },
 
+    /* Transtec Senyo 610 mini pc */
+    { PCI_CHIP_I965_GM, 0x1509, 0x2f15, quirk_ignore_lvds },
+
     /* Clevo M720R has no tv output */
     { PCI_CHIP_I965_GM, 0x1558, 0x0721, quirk_ignore_tv },
 
commit 62a037b0585d6ecb43daac9d4eb0927a4618a367
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 18 14:50:08 2008 -0700

    Fix distcheck.

diff --git a/src/Makefile.am b/src/Makefile.am
index 1e4ad28..594416d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -139,7 +139,6 @@ INTEL_G4A =				\
 	exa_wm_src_sample_argb.g4a 	\
 	exa_wm_src_sample_a.g4a 	\
 	exa_wm_src_sample_planar.g4a 	\
-	exa_wm_src_data.g4a		\
 	exa_wm_mask_affine.g4a 		\
 	exa_wm_mask_projective.g4a 	\
 	exa_wm_mask_sample_argb.g4a 	\
@@ -148,6 +147,7 @@ INTEL_G4A =				\
 	exa_wm_ca.g4a			\
 	exa_wm_ca_srcalpha.g4a		\
 	exa_wm_write.g4a 		\
+	exa_wm_yuv_rgb.g4a		\
 	exa_wm_xy.g4a
 
 INTEL_G4I =				\
@@ -166,7 +166,6 @@ INTEL_G4B = 				\
 	exa_wm_src_sample_argb.g4b 	\
 	exa_wm_src_sample_a.g4b 	\
 	exa_wm_src_sample_planar.g4b 	\
-	exa_wm_src_data.g4b		\
 	exa_wm_mask_affine.g4b 		\
 	exa_wm_mask_projective.g4b 	\
 	exa_wm_mask_sample_argb.g4b 	\
@@ -175,6 +174,7 @@ INTEL_G4B = 				\
 	exa_wm_ca.g4b			\
 	exa_wm_ca_srcalpha.g4b		\
 	exa_wm_write.g4b 		\
+	exa_wm_yuv_rgb.g4b		\
 	exa_wm_xy.g4b
 	
 EXTRA_DIST = 		\
commit 3cbfc6c76bcd2bc9194a944092f6ce0881ff9da2
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 18 14:56:18 2008 -0700

    Fix uninitialized-use warning in i830_debug.c ring dumping.

diff --git a/src/i830_debug.c b/src/i830_debug.c
index 7930346..a7f1683 100644
--- a/src/i830_debug.c
+++ b/src/i830_debug.c
@@ -1314,8 +1314,6 @@ i830_valid_command (uint32_t cmd)
 	if (!mi_cmds[opcode])
 	    return -1;
 	break;
-    case 1:
-	break;
     case 2:			    /* 2D */
 	count = (cmd & 0x1f) + 2;
 	opcode = (cmd >> 22) & 0x7f;
commit 1b1c4975768f63ed0f3933ec384d24c324a383b3
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 18 14:53:26 2008 -0700

    Get prototype for i830_bios_get_tv().

diff --git a/src/i830_tv.c b/src/i830_tv.c
index 651f77b..1022c46 100644
--- a/src/i830_tv.c
+++ b/src/i830_tv.c
@@ -36,6 +36,7 @@
 #include "xf86.h"
 #include "i830.h"
 #include "i830_display.h"
+#include "i830_bios.h"
 #include "X11/Xatom.h"
 #include <string.h>
 
commit 978abf84e8cf3ba3e915774981fe03610e15efeb
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 18 14:50:42 2008 -0700

    Bump version number past the 2.4 stable branch.

diff --git a/configure.ac b/configure.ac
index 2dabd4f..276fc1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-intel],
-        2.2.0,
+        2.4.99.0,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-intel)
 


More information about the xorg-commit mailing list