CURRENT patchset for Thinkpad T20

Gleb Smirnoff glebius at freebsd.org
Mon Nov 8 06:46:39 PST 2004


  Since APM related things are broken too often, I decided
to post patches I use for normal work with my notebook to
this list. I hope someone will find iy useful.

At this moment I use:

- patch to enable csa hack (Attached as csa.hack.enable)
- patch to fix ATA resume (Attached as ata-all.patch)
- reverted sched_ule.c to revision 1.135

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
-------------- next part --------------
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));
-------------- next part --------------
Index: csa.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/sound/pci/csa.c,v
retrieving revision 1.30
diff -u -r1.30 csa.c
--- csa.c	16 Jul 2004 03:59:27 -0000	1.30
+++ csa.c	20 Oct 2004 22:34:21 -0000
@@ -366,7 +366,7 @@
 static int
 csa_resume(device_t dev)
 {
-#if 0
+#if 1
 	/*
 	 * XXX: this cannot possibly work
 	 * needs to be properly implemented


More information about the freebsd-mobile mailing list