Commit Graph

69 Commits

Author SHA1 Message Date
mycroft
119f3ea688 Various:
Put WDF_ERROR in the wdc_softc, to avoid gratuitously forcing non-active drives
into single-sector mode on the next transfer.  Arrange to wait for an interrupt
after wdsetctlr(); this avoids long busy-wait delays, and gets rid of the
`extra interrupt' messages (except for one immediately after autoconfig on some
machines).  Replace some uses of wdsetctlr() with simply lowering wd->sc_state;
no point in forcing this immediately.  Allow control operations to time out.
Enable the warnings for long busy-wait delays by default.  Some other minor
things not worth mentioning.
1994-03-11 23:29:12 +00:00
mycroft
99dbc0692d Add a heuristic for detecting old config(8)s. This is very temporary. 1994-03-10 22:30:06 +00:00
mycroft
390f5990bb Now that the disk probe routines are actually called, they need to return
something.
1994-03-10 21:52:07 +00:00
mycroft
0c19458c6f More updates for new config. 1994-03-10 20:05:30 +00:00
mycroft
aa45779df7 Update for new config. 1994-03-10 19:57:20 +00:00
mycroft
e4102b8797 Cleanup to fit standard coding conventions, and *many* bugs fixed. 1994-03-10 05:18:33 +00:00
mycroft
5a17003403 Some changes inspired by Bruce Evans's driver:
Consolidate error reporting in one function.  Actually use the dk_status and
dk_error fields, and pass around only the error bit to avoid lots of unneeded
assignments and tests.  No functional differences.
1994-03-07 05:54:44 +00:00
mycroft
991225bfc8 Remove DKFL_QUIET. 1994-03-07 03:18:35 +00:00
mycroft
0c082bcaf8 DELAY() --> delay(). This is not a macro. 1994-03-06 17:18:43 +00:00
mycroft
87ed28e74e Move the drive select and various other things into wdcommand(), to avoid
duplicating code.
1994-03-05 08:17:06 +00:00
mycroft
3e02952c52 Make sure we clear the interrupt when necessary. Why this isn't needed on
my hardware is a mystery.
1994-03-04 23:43:14 +00:00
mycroft
652712272f Add another missing splx(). 1994-03-04 17:51:10 +00:00
mycroft
0f92f76ceb Remember to splx() on some error conditions. 1994-03-04 17:45:22 +00:00
mycroft
ef3c1bf7e6 Start the timeout loop *after* we've decided there is a disk there. 1994-03-04 04:15:24 +00:00
mycroft
220512c2a8 De-ANSIfy. Move the timeout counter into struct disk. Remove unneeded args
to wd[gs]etctlr().  Other minor changes.
1994-03-04 03:43:48 +00:00
mycroft
fa396ad402 Watch `seek complete' bit per IBM documentation. Clean up wdioctl(). Other
minor cleanup.
1994-03-03 01:58:21 +00:00
mycroft
7b734f94ec Be more careful about clearing the controller and drive active flags. 1994-03-02 23:27:13 +00:00
mycroft
21118b1bc4 Don't busy-wait for read or write completion. 1994-03-02 22:07:00 +00:00
mycroft
e9326b3ba7 Make wdc_wait() do an implicit wait_for_unbusy(). Pass structure pointers
rahter than unit numbers where appropriate.  Fix conflict if two drives have
I/O pending at the same time.  Add some more sanity checks.  Some other minor
cleanup.
1994-03-02 21:42:31 +00:00
mycroft
8ba740e6ab Get the residual count right. 1994-02-26 19:49:25 +00:00
mycroft
060ee7dbab Clean up busy-wait code a little, and we need a special disksort() to skip
over bufs in a combined transfer.
1994-02-26 19:00:51 +00:00
mycroft
969cea2357 Fix bug from 1.43 correctly. 1994-02-26 17:59:46 +00:00
mycroft
4299a2baec Fix typo. 1994-02-26 17:13:44 +00:00
mycroft
aeae0fd5e3 Various cleanup, and fix last night's bug. 1994-02-26 17:10:12 +00:00
mycroft
fa83b6f469 Fix typo. 1994-02-26 00:08:01 +00:00
mycroft
a7cdc040ec Some more stylistic cleanup. 1994-02-26 00:00:17 +00:00
mycroft
7f6bce365b Fix an obvious bug that could stall the queue. 1994-02-25 18:30:37 +00:00
mycroft
2c3b28e0f9 Remove some redundant code. 1994-02-25 18:17:30 +00:00
mycroft
7e6ee0b562 Increase polling delay. 1994-02-25 18:08:21 +00:00
mycroft
9091e07409 Generalize busy-wait loops. 1994-02-25 17:45:28 +00:00
mycroft
faf08f7262 Don't bother #ifdefing things that are needed and always enabled. 1994-02-25 16:54:41 +00:00
mycroft
f6cee22427 Don't reimplement disksort(). 1994-02-25 16:43:48 +00:00
mycroft
373782a3af `We are the KNF. You will be assimilated.' 1994-02-25 16:40:47 +00:00
mycroft
2f62d06c05 Back pointers are not useful for disksort(). 1994-02-10 15:17:34 +00:00
mycroft
bbb3e7618c All ioctl routines take a struct proc * now. 1994-02-09 21:06:46 +00:00
mycroft
57892d4faf Remove another use of b_actl. 1994-02-06 17:39:48 +00:00
mycroft
adeebc448e Use b_actf, not av_forw. 1994-02-06 10:00:30 +00:00
mycroft
664f968d53 Inline all the [lr]cr[023]() `functions' in cpufunc.h. 1994-01-03 16:23:06 +00:00
mycroft
c0e772492e Inline all the [lr]cr[023]() `functions' in cpufunc.h. 1994-01-03 16:21:48 +00:00
ws
778a3db3d0 Correct dumping to WD (was destroyed by MACHINE_NONCONTIG code) 1993-12-24 13:56:14 +00:00
mycroft
f2a0b4b335 Canonicalize all #includes, and add pio.h where appropriate. 1993-12-20 09:05:17 +00:00
mycroft
8ab45ada42 Eliminate reference to Maxmem. 1993-12-16 20:22:56 +00:00
cgd
55a9a547a2 from Soeren Schmidt <sos@login.dkuug.dk>:
Basically it does a timeout on lost interrupts, starting the operation
again and logging and error message on the console.
additionally fixes some of the (newer ending) while loops
(that made it work with two IDE disks !)
1993-12-13 10:16:56 +00:00
mycroft
4862b84c92 Add RCS identifiers (this time on the correct side of the branch), and
incorporate recent changes in netbsd-0-9 branch.
1993-08-01 19:22:24 +00:00
cgd
7b2afa7fe6 incorporate changes from 0-9-base to 0-9-ALPHA 1993-07-28 02:20:34 +00:00
deraadt
80dc38edb3 documentation error 1993-07-08 08:22:17 +00:00
deraadt
9bff90a5c1 added a timeout debugging mode to wd.c so that people can see how slow
their controllers really are. Look for the WDCNDELAY_DEBUG definition.
1993-07-07 05:50:35 +00:00
deraadt
d670635e8b ok, 5 second command timeouts.. 1993-07-07 01:05:42 +00:00
deraadt
86999439b2 number of changes:
1. controller reset code moved into one function, called from more places now.
2. more places now do timeouts. TIPCAT code turned on.
3. blew away the unused WDOPENLOCK test code.
4. delay is now done using WDCNDELAY repetitions of DELAY(25). Up to 2.5 second
   pause accepted from controller (some controllers have some commands that are
   actually this slow)
5. some of the old timeout code was really whacked.
1993-07-06 00:42:43 +00:00
deraadt
2cb34d6d65 added a missing {/} pair that barsoom seems to have taken out, but
which the standard 386bsd 0.1 driver did have. This is for a piece of
code in the bad block handling. found/fixed by hpeyerl.
1993-07-05 04:44:48 +00:00