Re: Trouble with APM suspend in 5.3-R

Gleb Smirnoff <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
On Thu, Jan 27, 2005 at 12:31:38PM -0800, Dave Walton wrote:
D> It was on, now that you mention it.  Why do you ask?

Can you try the attached patch?

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
ata-all.patch (text/plain, 1016 B)
Index: ata-all.c
===================================================================
RCS file: /home/cvs/ncvs/src/sys/dev/ata/ata-all.c,v
retrieving revision 1.232
diff -u -u -r1.232 ata-all.c
--- ata-all.c	13 Oct 2004 15:16:35 -0000	1.232
+++ ata-all.c	19 Oct 2004 19:30:59 -0000
@@ -86,6 +86,7 @@
 static struct intr_config_hook *ata_delayed_attach = NULL;
 static int ata_dma = 1;
 static int atapi_dma = 1;
+static int ata_resuming = 0;
 
 /* sysctl vars */
 SYSCTL_NODE(_hw, OID_AUTO, ata, CTLFLAG_RD, 0, "ATA driver parameters");
@@ -364,8 +380,10 @@
     if (!dev || !(ch = device_get_softc(dev)))
 	return ENXIO;
 
+    ata_resuming = 1;
     error = ata_reinit(ch);
     ata_start(ch);
+    ata_resuming = 0;
     return error;
 }
 
@@ -838,7 +944,7 @@
 void
 ata_udelay(int interval)
 {
-    if (interval < (1000000/hz) || ata_delayed_attach)
+    if (interval < (1000000/hz) || ata_delayed_attach || ata_resuming)
 	DELAY(interval);
     else
 	tsleep(&interval, PRIBIO, "ataslp", interval/(1000000/hz));
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.