Commit Graph

654 Commits

Author SHA1 Message Date
briggs
0884490297 KERNEL -> _KERNEL. 1995-03-29 21:56:46 +00:00
jtc
71ab4ed9dc KERNEL -> _KERNEL 1995-03-28 18:13:48 +00:00
mycroft
aff93b44b4 Remove unused variable. 1995-03-27 21:44:11 +00:00
mycroft
657ddd6fde Remove a tiny bit of redundant code. 1995-03-27 18:08:34 +00:00
mycroft
0a3d4f358a It's not necessary to do a GETSTAT before each read. 1995-03-27 16:48:45 +00:00
mycroft
c61cb27f9c Small garbage collection, and turn off debugging info by default. 1995-03-27 16:04:07 +00:00
mycroft
306af9bd89 Largely rewritten by me, with some input from Dave Burgess. Implement most of
the CDIOC* calls correctly, improve performance by 10x when interrupts work,
and implement the same generic disk framework as other drivers.
Needs some more work.
1995-03-27 15:45:20 +00:00
jtc
7c04233887 KERNEL -> _KERNEL 1995-03-26 20:23:52 +00:00
mycroft
b51403f60d Remove the write protect check altogether, and rely on the drive to do it. 1995-03-25 19:45:18 +00:00
mycroft
ff6c206c3f Use void* rather than caddr_t in many places. 1995-03-25 00:00:53 +00:00
mycroft
06d0a67a07 Check for read-only media in open(), not write(). 1995-03-23 12:11:07 +00:00
mycroft
02df08a47e Allow DIOCWDINFO even if label is not `writable'. 1995-03-23 11:33:18 +00:00
brezak
331f0252c6 Fix probing of slave devices and remove unneeded ffs()'s 1995-03-21 14:05:28 +00:00
brezak
8193ffc379 Add support for PAS 16 basic 1995-03-15 18:45:58 +00:00
glass
af46d07f24 fix compilation error. don't bother checking for IRQ2 1995-03-15 16:43:09 +00:00
brezak
36fa07bde5 Fixes defect port-i386/860 from John Woods (jfw@jfwhome.funhouse.com) with
supplied patch. Kernel will not link with only ProAudio Spectrum driver
specified.
1995-03-14 18:43:19 +00:00
brezak
f3226ad49e Fixes defect port-i386/864 from John Woods (jfw@jfwhome.funhouse.com) with
supplied patch. pas.c doesn't recognize ProAudio Spectrum 16 Basic card.
1995-03-14 18:41:36 +00:00
mycroft
37c67f3481 Turn off two diagnostic printfs by default. 1995-03-14 02:35:11 +00:00
brezak
7ce1465911 Fix SB8 playback. From David Gluss <david@pure.com> 1995-03-13 14:37:12 +00:00
brezak
1c9582b63e Add IRQ 9 as a valid IRQ 1995-03-13 14:29:11 +00:00
brezak
83fffa3985 Cleanup for SB16 (From Jan Sparud) 1995-03-08 18:27:35 +00:00
brezak
63d3904bce Use irq directly not as a mask 1995-02-28 21:47:42 +00:00
glass
48b5b94c4f fix some typos. from frank@fwi.uva.nl (Frank van der Linden) 1995-02-27 09:10:24 +00:00
cgd
2c0f263ee7 use wdc_softc in wdccd, rather than wd_softc; from chuck cranor. (pr 828) 1995-02-27 01:08:01 +00:00
brezak
559df5705c PSS driver; needs testing with config.new 1995-02-21 04:15:03 +00:00
brezak
39b8de8e12 Driver for Windows sound system; not extensively tested 1995-02-21 02:28:42 +00:00
brezak
32eec53a2d SoundBlaster driver for SB, SB16 and SBPRO 1995-02-21 02:28:06 +00:00
brezak
a70ae7273c PAS driver; uses SB emulation for now 1995-02-21 02:27:18 +00:00
brezak
977594d1a9 Driver for ad1848 codec 1995-02-21 02:26:39 +00:00
mycroft
8b834a58ca Display more information when we get bogus data off the card. 1995-02-19 18:05:45 +00:00
mycroft
0f894be19c Rearrange epintr() to insure proper edge-trigger of the interrupt latch. 1995-02-19 06:13:53 +00:00
mycroft
a36de19f90 Make some guesses about how to properly configure the interrupt masks. Back
out part of the previous change until I get some documentation on these boards.
1995-02-10 01:37:57 +00:00
mycroft
e9c2b98c11 Comment a potential bit of lossage. 1995-02-02 21:08:42 +00:00
mycroft
8abb91e18d Various:
* Make synchronous negotiation work.
* Use the bitbucket when the target requests too much data.
* Loop in aicintr() until we get to a state where we have to wait.
1995-02-01 21:49:37 +00:00
mycroft
ab5662014f Correct some more of the synchronous stuff, and omit it completely if
AIC_USE_SYNCHRONOUS is 0.
1995-02-01 16:56:42 +00:00
mycroft
4653b28a42 Various:
* Always enable disconnection.
* Add some more per-controller variables: initiator ID, clock frequency,
min and max sync period.
* Correct sync period calculations.
* Remove sc_progress.
* Move most of the reselection handling into a separate function.
* Remove some outdated comments.
* Remove message bytes from FIFO even when dropping them on the floor.
* Some cosmetic cleanup.
1995-02-01 16:11:43 +00:00
mycroft
16e77e7281 Fix path to if_lereg.h. 1995-02-01 09:54:36 +00:00
cgd
3a7bbb1acd lip service to making ISA support machine-independent. This is the first
round: moving the drivers into a machine-independent directory.
Some drivers (e.g. fd.c) not moved because they use other pc features (e.g.
CMOS settings), and none of the non-driver files moved, because they're
still pretty much PC specific.  eventually (when other ports with ISA
busses really start using this code), more 'high-level' ISA support will
live here.
1995-01-29 07:36:54 +00:00
cgd
f11e7e33fe use chip headers in /dev/ic 1995-01-29 02:58:20 +00:00
mycroft
c5d5ca8150 Don't check the control port at all; too unreliable. 1995-01-26 07:35:49 +00:00
mycroft
c0e2bd26f1 Initialize the new xmit state correctly. From Rafal Boni. 1995-01-26 04:13:23 +00:00
mycroft
57f2c598c7 Various changes from Rafal Boni to improve performance and reliability. Also,
clean up the formatting a little more.
1995-01-23 04:50:08 +00:00
mycroft
01ce8db055 Fix the problem with identifying cards on warm boot. Partly from Greg Hudson. 1995-01-22 07:37:28 +00:00
mycroft
3dddacd1ce Rearrange tests so offline' has higher priority than out of paper'. 1995-01-22 00:12:39 +00:00
mycroft
fcdbd2bd7b Remove outdated comment. 1995-01-16 10:36:26 +00:00
mycroft
87d587e640 Simplify some sanity checks. 1995-01-13 14:46:44 +00:00
mycroft
1e5cd9212d (Almost) allow sector sizes other than 512 bytes. Reduce some expensive operations. 1995-01-13 12:30:59 +00:00
mycroft
7650bd97fc Always boundary check I/O. 1995-01-13 10:46:32 +00:00
mycroft
0033c975c6 Fix another bug in the DMA code. 1995-01-13 10:22:58 +00:00
mycroft
4abdb375bc Minor rearrangement. 1995-01-13 09:40:21 +00:00
mycroft
c2bc310a37 Change the way sc_skip is used. Fix a bug in the (incomplete) DMA code. Add a
new sc_blkno (which will be useful later).
1995-01-13 08:58:16 +00:00
pk
0a22930d97 Explicitly test the RXRDY status bit on incoming characters. 1995-01-11 09:56:40 +00:00
mycroft
06b0414491 Actually, do the ID reset in elink_reset(). 1995-01-07 21:37:54 +00:00
mycroft
37e16c5747 Don't print line numbers in most of the diagnostics. 1995-01-07 06:49:35 +00:00
mycroft
d4f91d51a9 Fix a race condition between normal I/O and wd_get_parms(). 1995-01-07 03:07:22 +00:00
mycroft
7f61bec5cd Cosmetic changes, to look more like the new esp.c will. 1995-01-07 01:51:07 +00:00
mycroft
ba288b4ae1 Do the reset in the individual drivers, not in elink_idseq(). 1995-01-06 21:41:26 +00:00
mycroft
6125e1b551 Fix oversight in previous. 1995-01-04 00:47:53 +00:00
mycroft
9e499d41b3 \
These files have been 99% rewritten from the original ast driver.  Add an
appropriate copyright notice.
1995-01-03 22:38:54 +00:00
mycroft
0349c5b9e0 Add a multiplexer for BOCA serial boards. 1995-01-03 22:26:36 +00:00
hpeyerl
09834a5bd3 This is correct according to the docs on both cards.
Doesn't seem to make any difference to the known problems though.
1995-01-03 05:04:04 +00:00
mycroft
b6c8a9a4e9 Update intr_establish() prototype. 1995-01-03 03:14:35 +00:00
mycroft
b5cf1b5ddd Add interrupt sharing types. 1995-01-03 01:30:14 +00:00
mycroft
326830c1ba Use direct config for subdevices. 1995-01-02 22:27:46 +00:00
mycroft
e148dc7a64 Move setting of sc_maddr so soft config works. 1995-01-02 22:01:05 +00:00
mycroft
a774fa6fe5 Use soft configuration when possible. 1995-01-02 21:57:04 +00:00
mycroft
3a967fcbb6 More cleanup. 1995-01-02 21:27:27 +00:00
mycroft
72dec3b548 Various cleanup. 1995-01-02 20:54:01 +00:00
mycroft
3a74796b3e Need isareg.h. 1995-01-02 20:39:35 +00:00
mycroft
894bb9145f Use soft configuration where possible. 1995-01-02 20:32:55 +00:00
mycroft
2d5b04744a Don't assume ia_maddr is in the hole. 1995-01-02 20:06:29 +00:00
mycroft
76b0b02cc3 Fix non-serious typo. 1994-12-31 05:34:00 +00:00
mycroft
8fd135209c Numerous changes. Many bugs fixed, better autoconfig, a few new features. 1994-12-28 19:42:47 +00:00
hpeyerl
262b425866 temporary warning until I get new docs. 1994-12-28 16:47:50 +00:00
mycroft
ce06e718ad Fix flags to isa_dmastart(). 1994-12-17 18:45:11 +00:00
mycroft
ca65f2ce5d Remove dkbad.h. 1994-12-14 15:17:22 +00:00
mycroft
e694663b46 Make the diagnostics less cryptic. 1994-12-12 04:43:51 +00:00
mycroft
3e4a358e28 Patch from Thomas Eberhardt to make PCnet-32 chips work. 1994-12-12 04:39:52 +00:00
christos
303841c92e 3c509 fixes to avoid adapter getting stuck in high traffic conditions.
I don't particularly like the fixes, but at least now the 3c509 never
gets stuck. On the other hand, performance still sucks in some cases.
1994-12-10 14:52:02 +00:00
mycroft
793e542f89 Fix format of attach message. 1994-12-10 05:55:26 +00:00
mycroft
211b002017 Ignore ERR during diagnostics. 1994-12-01 10:45:26 +00:00
mycroft
867ebf1d84 Clear the controller active flag after a timeout. 1994-11-30 02:32:03 +00:00
mycroft
5584ff927f Don't stall the queue on CHECK SENSE if we get a reselect while selecting. 1994-11-30 02:08:01 +00:00
mycroft
639a64de08 Fix a null pointer reference. 1994-11-29 21:35:13 +00:00
mycroft
51bed8d804 Add an assertion mechanism to check for more abnormal conditions. 1994-11-29 21:29:56 +00:00
mycroft
58cb5339d6 For consistency... 1994-11-29 20:57:28 +00:00
mycroft
41b26a6dfd Handle BUS FREE phase a little differently, to get better error detection. Other
cleanup.
1994-11-29 20:08:27 +00:00
mycroft
bb90feebac Disable debugging breakpoints by default. 1994-11-29 17:56:49 +00:00
mycroft
5ac2484d95 * Redo most of the message and phase state machines. Multiple pending
message outs should now work correctly (including retransmissions).
Multiple messages ins should be more efficient.  Missing REQ after
reselection phase should now (correctly) cause a wait with ENREQINIT
set.

* Abstract out the reselection out sequence, and use it directly to
get sense info.  (This is somewhat faster than the generic done/sched
sequence.)

* If there are no ACBs available, wait interruptibly for one.

* Leave the interrupt registers alone during message in/out; just
watch for phase change.  Don't (incorrectly) reenable interrupts
during data in/out; defer that to aicintr().

* Handle command pointer per SCSI 2 spec.

* Other minor coding improvements.
1994-11-29 17:50:39 +00:00
christos
6a2c060851 fix unary plus typo :-) 1994-11-25 23:19:03 +00:00
mycroft
cba32aa25f Minor update for new autoconfig. 1994-11-25 08:17:21 +00:00
mycroft
0649f37219 Officially credit Onno. 1994-11-23 22:00:08 +00:00
mycroft
2058abab15 Forgot to commit this as part of the LBA changes. 1994-11-23 07:56:52 +00:00
mycroft
cc44b4600c There's no point in bothering to unlock what we didn't lock. 1994-11-23 07:54:15 +00:00
mycroft
6dda55519e Fix an outdated comment. 1994-11-23 03:11:01 +00:00
mycroft
a3fc466734 Use logical block addressing if available. Be a little more careful about
maintaining timeouts.  Clean up wddump() a bit.
1994-11-23 01:35:43 +00:00
mycroft
525fc36e19 Implement 32-bit reads and writes, but for now assume 16-bit mode. 1994-11-22 10:20:16 +00:00
mycroft
3a99ddf172 Add a missing newline in some error messages. 1994-11-22 09:36:56 +00:00
mycroft
db3bde9525 Implement EIDE multi-sector PIO and DMA modes, based on code from Onno van
der Linden.  Also, various structural cleanup, and fix two bogons that crept
in, and remove all of the old clustering nonsense.
1994-11-22 09:33:59 +00:00
mycroft
1e01855683 Minor fix to debugging code. 1994-11-22 05:50:48 +00:00
mycroft
85826f0fbe Fudge a couple more fields for ancient disks. 1994-11-22 05:39:16 +00:00
mycroft
e1a7bac628 Change some constant names, etc., to better match the ATA spec. 1994-11-22 05:34:49 +00:00
mycroft
95edd299b0 Add still more locking. 1994-11-22 03:23:49 +00:00
mycroft
5bd4115690 Add some missing locking, and some general cleanup. 1994-11-20 22:36:43 +00:00
mycroft
9a3840f2f0 Stylistic changes. 1994-11-18 22:25:12 +00:00
mycroft
61800cfa25 Convert port, IRQ, and DRQ numbers to ints. 1994-11-18 22:07:32 +00:00
mycroft
35cdd801e6 Convert port, IRQ, and DRQ numbers to ints. 1994-11-18 21:57:40 +00:00
mycroft
a2727ec558 Check IRQ 9, not IRQ 2. 1994-11-15 00:00:24 +00:00
mycroft
b341f7a8c0 Map IRQ 2 to IRQ 9. 1994-11-14 23:58:56 +00:00
mycroft
21e911d911 Update for new autoconfig. 1994-11-07 09:03:48 +00:00
mycroft
2a9b6f7959 Fix stupid bug in last change. 1994-11-04 23:30:15 +00:00
mycroft
4ec6774e12 Add a simplified version of wdcommand() that can be used in some cases.
Avoid needing a wd_softc inside wdprobe().
1994-11-04 23:18:06 +00:00
mycroft
3df6bf0c0e Trivial stylistic changes. 1994-11-04 21:32:23 +00:00
mycroft
854d8d96dc Rearrange slightly. 1994-11-04 19:25:34 +00:00
mycroft
cfc4633919 Remove outdated comment. 1994-11-04 19:17:47 +00:00
mycroft
b7acf321cd No longer needs icu.h. 1994-11-04 18:59:34 +00:00
mycroft
29414c5a0a Change all of the uses of IRQ{0-15} and bit masks to use plain numbers
rather than bit shifting.
1994-11-04 18:34:50 +00:00
mycroft
9af4fee97d Use kvtop() rather than address arithmetic in a couple of places. 1994-11-04 08:55:53 +00:00
mycroft
1948fcb3fa Add a new function config_scan(), which just calls a particular function
with each plausibly cfdata, ignoring the priority mechanism completely.
1994-11-04 06:40:11 +00:00
mycroft
2e8ae560f6 Commit incest with the config system for this one specific case. 1994-11-04 03:57:32 +00:00
mycroft
fa769b0e97 Set ia_irq correctly. 1994-11-04 02:55:32 +00:00
mycroft
7773b21b74 Correct an oversight. 1994-11-04 00:53:06 +00:00
mycroft
d4dd538296 Oops; forgot isacd. 1994-11-04 00:07:39 +00:00
mycroft
3fca7e771a New version using standard config_*() functions. 1994-11-03 23:53:19 +00:00
mycroft
ebbdd6473b Update to match autoconfig code. 1994-11-03 23:26:03 +00:00
mycroft
19fc9d55c8 *intr() arg does not need to be void*. 1994-11-03 23:23:38 +00:00
mycroft
d0163400d1 Update to match autoconfig code. 1994-11-03 23:21:24 +00:00
mycroft
54cc63645d Update to match autoconfig code. 1994-11-03 23:08:27 +00:00
mycroft
d23d1e83dc Use indirect config for subdevices, and add dkdrivers where missing. 1994-11-03 22:55:58 +00:00
mycroft
283745574f Commit this, though it really does need work. 1994-11-03 16:55:57 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
mycroft
9769a6a6f7 Various:
* Forget all cached info when opening a new disc.
* If the disc is removed, flush the buffer queue rather than stalling it.
* Set the default label after getting the disc size, and fill in the info
for RAW_PART also.
* Change another use of the unit number to a softc pointer.
* Use a dkdevice to hold the label and open partition masks.
* Force the partition offset to 0 for RAW_PART, regardless of the label.
* Nuke MCDPHYS() and MCDREADRAW; they had a silly bug that caused the code
to not work, and they aren't useful anyway.
Some other minor cleanup.
1994-10-28 23:39:59 +00:00
cgd
022ee8f7fe new RCS ID format. 1994-10-27 04:14:23 +00:00
mycroft
556a119342 Implement *cnpollc(). 1994-10-26 18:06:30 +00:00
mycroft
260ddbefb7 Rearrange ed_init() slightly, to better correspond to the National manual.
Optimize ed_rint() slightly in the case of multiple packets.  (Avoid an outb
and an inb for each packet).
1994-10-23 23:24:56 +00:00
mycroft
603fe7b5a6 Slight optimization. 1994-10-23 21:38:00 +00:00
mycroft
0114159848 Fix the packet length correction for buggy chips so that it actually works,
and always use it (otherwise short packets could still be corrupted).  Also
produce a diagnostic message if DIAGNOSTIC, since it *is* a hardware bug.
Add an ED_PAGE_SHIFT constant, and use it, to avoid GCC doing horrendous
things with divides and multiplies.
1994-10-23 21:22:13 +00:00
mycroft
3e30a415ae Be careful not to stack multiple timeouts. 1994-10-20 19:22:01 +00:00
mycroft
4d072c5435 Remove the local timeout mechanism, and just use explicit timeout()/untimeout()
calls.
1994-10-20 18:37:45 +00:00
mycroft
c11a06cbc2 Always set d_secsize to 512 for now. 1994-10-20 17:03:09 +00:00
mycroft
0862d07daf Don't switch to single-sector mode just because we got a corrected error. 1994-10-20 16:36:21 +00:00
mycroft
d4153fff4d Rearrange wdcstart() in a more logical fashion, and eliminate many redundant
calculations.  Also, speed up bad block searching a little.
1994-10-20 16:19:08 +00:00
mycroft
cd66683989 openpart -> openmask 1994-10-20 14:08:07 +00:00
mycroft
cae71ba91d Various changes:
* Add a dkdevice; move sc_*openpart, sc_label, and sc_cpulabel into it.
* Turn sc_wlabel into a flag, and don't set it automatically in DIOCWLABEL.
* If there is no label, disallow all I/O except to the raw partition.
* Don't allow I/O to `unused' partitions.
* Beginnings of support for block sizes other than 512 bytes.
Other minor changes.
1994-10-20 13:44:46 +00:00
mycroft
8ae8b4ab29 Bug fixes from Rafal Boni:
* Set promiscuous mode flag before configuring card, so it actually works.
* Handle failed TDR commands correctly.
* Remove some apparently defunct and bogus code.
(This driver needs more work.)
1994-10-18 13:40:30 +00:00
cgd
320359f8e2 change, requested by Jarle Greipsland 1994-10-17 00:08:29 +00:00
cgd
49c34d3337 move arch dependence to archs. clean up a bit. deal with weird MAXPARTITONS. 1994-10-14 18:26:22 +00:00
mycroft
6f5794ecba Fix bugs in dealing with odd-length mbufs in ed_pio_write_mbufs(). From
John Hood.
1994-10-14 13:05:13 +00:00
mycroft
7c01f7ce51 Changes from DG to deal with some old chips that corrupt the packet length. 1994-10-12 13:42:00 +00:00
mycroft
4252ca6644 Correct multicast filter calculation. 1994-10-09 21:19:04 +00:00