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: