Subject: Laptop suspend/resume and hard drives.
To: None <port-i386@NetBSD.ORG>
From: None <rvb@IGW.TRUST.CS.CMU.EDU>
List: port-i386
Date: 10/04/1996 23:01:15
The only machine I have seen where suspend/resume does not work is the
Toshiba Porgege 610.  On 701C's, AST's and others it can be made to
work.

I am hoping that the APM stuff that will be soon making its way to
-current will make disk spin up and spin down work correctly.

What is currently going wrong with wd.c is in wcwait().  For reasons
unknown, after you return from resume, the WDCE_MCR bit is on in the
error register.  In the current code, wdcwait() will return a positive
error code (WDCS_ERR).  Normally, wdcwait() returns 0 on success and
-1 on error. The code else where in the driver gets confused as to
whether the return value of WDCS_ERR is an error or not.  Because
somecode tests !=0 to mean error and other code tests <0 to mean
error.  The bottom line is that if the wdcwait() and its callers are
fixed to report and use errors consistently most of these problems 
vanish.