Subject: Anyone know a good place to unwedge the IDE controller after a portable resume ?
To: None <port-i386@NetBSD.ORG>
From: Gary Henderson <garyh@wet.sbi.com>
List: port-i386
Date: 05/24/1995 09:52:49
I'm running the May netbsd-current snapshot on a 486 DX4/100 portable
which has a suspend and resume feature to stop you having to quit out
of netbsd/ms-dross every time the train arrives at the station.

The suspend/resume works great except for two problems:
1) After a resume, the first time netbsd tries to access the IDE drive
   it hangs for ~10 seconds and then says "timeout waiting for drq" on the
   console.

2) While suspended netbsd's unix clock isn't ticking so when you resume
   netbsd's idea of the time/date is wrong (the battery-backed clock is
   still ok).

So, finially back to my question in the subject line - where is a good place
in the kernel to call wdcunwedge to fix the IDE problem and also reload the
kernel's idea of the time from the battery-backed clock ?

Does anyone know how the bios interrupts a running program to implement
suspend ? Does it use an non-maskable interrupt or something and if so
could the kernel trap it and set a flag to say it is about to be suspended ?
The kernel's 'main-loop' could look for this flag being set and then reset
the IDE controller and time/date. My only clue is the portable's suspend
button doesn't work while some ms-dross games are running.

Thanks for any suggestions

Gary.