[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

X Strike Force XFree86 SVN commit: r2011 - in trunk/debian: . patches



Author: branden
Date: 2004-11-04 09:25:23 -0500 (Thu, 04 Nov 2004)
New Revision: 2011

Modified:
   trunk/debian/CHANGESETS
   trunk/debian/TODO
   trunk/debian/changelog
   trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff
Log:
Update patch #009 to improve the fix for the Rage128-specific problem with
engine lockups; because CCE idle commands may never finish, eventually
stop the engine altogether after a long enough period of inactivity.
Thanks to Daniel Jacobowitz for the original patch, this improved version,
and the real-world testing.  (Closes: #278654)


Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS	2004-11-03 19:05:41 UTC (rev 2010)
+++ trunk/debian/CHANGESETS	2004-11-04 14:25:23 UTC (rev 2011)
@@ -233,4 +233,11 @@
 description, per section 6.7.7 of the Debian Developers' Reference.
     2009
 
+Update patch #009 to improve the fix for the Rage128-specific problem with
+engine lockups; because CCE idle commands may never finish, eventually
+stop the engine altogether after a long enough period of inactivity.
+Thanks to Daniel Jacobowitz for the original patch, this improved version,
+and the real-world testing.  (Closes: #278654)
+    2011
+
 vim:set ai et sts=4 sw=4 tw=80:

Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO	2004-11-03 19:05:41 UTC (rev 2010)
+++ trunk/debian/TODO	2004-11-04 14:25:23 UTC (rev 2011)
@@ -55,8 +55,6 @@
   because validlocale is a Perl utility provided by base-config.)
 * #277699: apply NX kernel support to stop AMD64 kernel users from getting SEGVs
   from the XFree86 X server's ELF object loader [patch; BR]
-* #278654: apply Dan Jacobowitz's patch fixing a bad assumption in his previous
-  patch correcting the Rage 128 engine reset logic [patch; BR]
 * #279436: apply David Mosberger's PCI domain fix [patch; BR]
 
 4.3.0.dfsg.1-10

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2004-11-03 19:05:41 UTC (rev 2010)
+++ trunk/debian/changelog	2004-11-04 14:25:23 UTC (rev 2011)
@@ -116,6 +116,12 @@
     the short description, and "transitional package" in the extended
     description, per section 6.7.7 of the Debian Developers' Reference.
 
+  * Update patch #009 to improve the fix for the Rage128-specific problem with
+    engine lockups; because CCE idle commands may never finish, eventually
+    stop the engine altogether after a long enough period of inactivity.
+    Thanks to Daniel Jacobowitz for the original patch, this improved version,
+    and the real-world testing.  (Closes: #278654)
+
   Changes by Denis Barbier and Fabio M. Di Nitto:
 
   * Edit xc/programs/xkbcomp/symbols/pc/Imakefile so that the new pc/us_intl
@@ -198,7 +204,7 @@
     exiting upon encountering the first shell interpeter that fails on the
     script; instead, attempt all the interpreters and report all that fail.
 
- -- Branden Robinson <branden@debian.org>  Wed,  3 Nov 2004 12:47:55 -0500
+ -- Branden Robinson <branden@debian.org>  Thu,  4 Nov 2004 09:22:55 -0500
 
 xfree86 (4.3.0.dfsg.1-8) unstable; urgency=high
 

Modified: trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff
===================================================================
--- trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff	2004-11-03 19:05:41 UTC (rev 2010)
+++ trunk/debian/patches/009_ati_r128_retry_idle_until_timeout.diff	2004-11-04 14:25:23 UTC (rev 2011)
@@ -10,36 +10,21 @@
 
 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c~	2004-06-01 12:17:33.000000000 -0500
 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c	2004-06-01 12:21:37.000000000 -0500
-@@ -228,25 +228,34 @@
- void R128CCEWaitForIdle(ScrnInfoPtr pScrn)
- {
-     R128InfoPtr info = R128PTR(pScrn);
--    int         ret, i;
-+    int         ret, i, j;
- 
-     FLUSH_RING();
- 
-     for (;;) {
--        i = 0;
--        do {
--            ret = drmCommandNone(info->drmFD, DRM_R128_CCE_IDLE);
+@@ -236,17 +236,23 @@
+         i = 0;
+         do {
+             ret = drmCommandNone(info->drmFD, DRM_R128_CCE_IDLE);
 -        } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY );
-+	j = 0;
-+	do {
-+	    i = 0;
-+	    do {
-+		ret = drmCommandNone(info->drmFD, DRM_R128_CCE_IDLE);
-+	    } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY );
-+	} while ( ret && errno == EBUSY && j++ < R128_TIMEOUT );
++        } while ( ret && errno == EBUSY && i++ < (R128_IDLE_RETRY * R128_IDLE_RETRY) );
  
  	if (ret && ret != -EBUSY) {
  	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
  		       "%s: CCE idle %d\n", __FUNCTION__, ret);
  	}
  
-+	if (i != 0 || j != 0) {
++	if (i > R128_IDLE_RETRY) {
 +	    xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-+		       "%s: (DEBUG) CCE idle took j = %d\n", __FUNCTION__, j);
++		       "%s: (DEBUG) CCE idle took i = %d\n", __FUNCTION__, i);
 +	}
 +
  	if (ret == 0) return;



Reply to: