Commit Graph

860 Commits

Author SHA1 Message Date
mycroft 44baed59ef Fix the mailbox unlock code for CF and CP. 1996-03-28 18:19:05 +00:00
cgd dbdbd735b8 Update these (as minimally as possible) to work with new PCI interfaces:
(1) make pci functions take as an argument a machine-dependent
	    cookie, to allow more flexibility in implementation.
(use of other PCI functions, etc., left unchanged.)
1996-03-27 04:03:05 +00:00
mycroft 8d60d04ffa Remove dead variables. 1996-03-25 07:11:12 +00:00
mycroft 3ab38e9ad4 Display the right sync period for fast devices. 1996-03-25 00:18:09 +00:00
mycroft dac7f9a885 Fix up a couple of printf()s. 1996-03-24 22:23:56 +00:00
mycroft e2f1ed6ef2 Various, including:
* Display as much revision info as we can get.
* Fix a race condition that could cause interrupts to be lost.
* Handle `out of mailbox' conditions (much) more gracefully.
* Schedule timeouts more safely.
* Add diagnostic code to (correctly) detect if a CCB times out before its
outgoing mailbox is emptied.
1996-03-24 22:20:41 +00:00
mycroft 78de5226a1 lto3b -> _lto3b 1996-03-19 03:28:45 +00:00
cgd b55176ea0c since this driver tries to block its interrupt with spltty(), it must
attach that interrupt with IPL_TTY.
1996-03-18 09:14:32 +00:00
cgd b5c1728e22 clean up <machine/bus.h> changes a bit; no real functional change.
prototype lpt_port_test().
1996-03-17 13:40:29 +00:00
cgd 179f65d15e Add #ifdef's at the right places, on NCOM_ISA and NCOM_COMMULTI, to
only include the relevant code in the probe & attach functions.  Still
one probe and one attach function, with #ifdefs, but this is a step
in the right direction and saves a few hundred bytes (ooh, ahh!).
1996-03-17 13:38:14 +00:00
cgd 94907fa254 adjust to deal with expression support for optional file specs 1996-03-17 13:21:09 +00:00
cgd 9d4db41a9f change the name of com's attachment to commulti, and provide flags
for that and the isa attachment in com.h (in addition to the flag for
the presence of 'com' itself).
1996-03-17 07:30:25 +00:00
thorpej de7c200585 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:53:54 +00:00
thorpej 6d9ea4cf59 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:43:52 +00:00
cgd 9f762df4e4 clean up a comment, delete unnecessary local variable in probe 1996-03-17 00:26:12 +00:00
cgd 88b335392c rename asic_addr and nic_addr to asic_base and nic_base, in softc, as
they're base I/O ports, not really addresses.  rather than using those
softc fields directly, assign local variables (asicbase, nicbase) to have
their values, and use those.  (consistency, plus better optimization
potential in some cases.)
1996-03-16 07:24:15 +00:00
cgd 87abc9cdc7 Move contents of edprobe() into ed_find() -- they'll be used by edattach()
eventually.  rename the probe functions for the various boards to 'find' for
consistency/correctness (but the generic8390 check is still a 'probe').
Add protos for ed_find(), ed_probe_generic8390(), ed_find_WD80x3(),
ed_find_3Com(), and ed_find_Novell().  Fix one minor space nit.
1996-03-16 06:41:20 +00:00
cgd 4beac8eab6 convert NIC_GET and NIC_PUT to take NIC base port address, rather than softc. 1996-03-16 06:18:39 +00:00
cgd f3bac4c1fb print out hardware type, and print firmware version more precisely.
Information about structures & commands to do this gleaned from
the FreeBSD bt driver.
1996-03-16 05:33:28 +00:00
cgd c3361cbc2c prototype bt_cmd(), using varargs/stdarg (ooh, ahh!). Fix up resulting
pointer warnings.
1996-03-16 04:37:40 +00:00
jtk 8b3873367f add MediaVision Jazz16 chipset support. It must be configured with
'flags 1' on the sb? kernel configuration file line (because it frobs a
noncontiguous IO port to configure the Jazz16 extensions).

Also, remove static sb_device structure and fill in user's buffer on
each request.
1996-03-16 04:00:09 +00:00
cgd 76f1f884eb convert to not assume existence of softc at probe time. 1996-03-16 03:20:25 +00:00
cgd 8b404fdede A foolish consistency... General cleanup: get rid of spaces and tabs at
ends of lines, turn aligned blocks of eight spaces into tabs, name all
softc elements with the "sc_" prefix, and call the softc by the commonly
used name, "sc", when passing it around.
1996-03-16 02:54:27 +00:00
cgd 6668fa09a3 Change register definitions to be offset from the I/O base, rather than
complete I/O addresses.  Access ports via "iobase + REGISTER."
1996-03-16 02:02:54 +00:00
cgd 2b96f0705b delete unused cruft (the 'software conventions' chunk). 1996-03-16 02:00:43 +00:00
cgd 85286bff2f convert these to use new <machine/bus.h> interfaces. This involved
substantial reworking of the multi-port drivers, as they need to frob
bits in the io-port spaces of their children.  As a result, the
commulti->com attachment interface is substantially more complex.
(This may be fixable in the future by making some of the code common,
but as long as io-port allocation checking is planned, it's necessary.)
1996-03-10 09:01:20 +00:00
cgd 5bfb840114 Fix copyright year 1996-03-09 23:37:14 +00:00
cgd 85288c6a61 Include comvar.h, for comprobe1() prototype and for commulti_attach_args.
Remove multiple identical definitions for the arg struct used by multiport
boards' to attach slave com ports.
1996-03-09 01:03:59 +00:00
cgd a7c6dfe1cd include comvar.h for comprobe1() prototype 1996-03-09 01:02:08 +00:00
cgd 56edbfc4f9 define the common structure used to attach 'com' units as slaves to
multiport cards.  prototype comprobe1(), which is used by multiport card
drivers.
1996-03-09 01:01:33 +00:00
cgd 645d83b763 minor cleanup. mostly: use COM_NPORTS and a new (driver-specific) NSLAVES
macro where appropriate.  No point in hard-coding numbers in multiple places.
At the very least, this makes the drivers slightly easier to diff/understand.
1996-03-09 00:09:04 +00:00
cgd 2c11ad408c convert to use I/O mapping/access macros in <machine/bus.h>.
Mostly mechanical changes, except for probe/attach, which have
to map (and, in the case of probe, unmap) the I/O space that the
chip will use.
1996-03-08 22:17:58 +00:00
cgd b1d3f7607c remember the bus_chipset_tag_t given by our parent, and pass it on to
children.
1996-03-08 20:36:21 +00:00
cgd 5087096150 pass a bus_chipset_tag_t (defined in <machine/bus.h>) to the bus when
attaching, and to the devices when attaching them.  #include <machine/bus.h>
to make this backward compatible with old #include requirements.
Also, clean up idempotency so that isa/eisa/pci "var.h" headers are
consistent (make them all idempotent).
1996-03-08 20:25:22 +00:00
cgd acabb62791 the i386 port no longer attaches isa, eisa, and pci at root. 1996-03-04 03:29:12 +00:00
mycroft d8026ad9ef Oops; switched two bits. 1996-03-01 04:35:27 +00:00
mycroft f3b29ca5d2 Remove two unneeded `if's. 1996-03-01 04:13:25 +00:00
mycroft 546ad9e88b Add support to the ISA DMA framework for auto-initialize mode.
Add experimental SB16 code, disabled for now.
1996-03-01 04:08:13 +00:00
cgd 3ca5707161 make ISA bus match/attach, and sub-device configuration machine-independent. 1996-02-28 01:43:45 +00:00
scottr 4005c5fd09 Fix typo (PR 2123, from Michael VanLoon) 1996-02-26 22:48:32 +00:00
mycroft 40d57df71a Switch byte order of ID and configuration registers for 14f and 34f. 1996-02-24 05:27:49 +00:00
mycroft 3ec5928403 Keep the terminal count information around, as it's self-clearing. 1996-02-22 06:21:48 +00:00
mycroft a35f0ac985 Add more debugging code. 1996-02-20 12:13:09 +00:00
mycroft 947cae817e Do not allow the gain to be changed on an original SoundBlaster. 1996-02-20 11:48:50 +00:00
mycroft 015ee926f6 Fix mono volume adjustment. 1996-02-20 11:15:15 +00:00
mycroft b5f3c5cbdc XXX This is a kluge.
Check to see if the DMA transfer is finished; if not, don't do interrupt
processing.
1996-02-20 04:19:24 +00:00
mycroft 4d6412e7bf Move the terminal count check into a separate function. 1996-02-20 04:17:05 +00:00
christos cd5249589d if_ep.c: Recognize 3c595 1996-02-19 20:18:40 +00:00
mycroft 5021ab87f1 Update copyright notice. 1996-02-19 15:23:25 +00:00
mycroft 5bc567b0d3 Set IER_ETXRDY before outputting any bytes, to prevent race condition. 1996-02-19 15:09:25 +00:00
mycroft c011a5eae4 Handle break more correctly.
Make IER_ETXRDY track TS_BUSY.  (Prevents a loop in comintr() if no output
is available.)
Add a bunch of debugging code.
1996-02-19 14:53:03 +00:00
mycroft 760b34026c Declare a variable... 1996-02-18 22:19:44 +00:00
mycroft ba2ac1b587 Clean this up a bit. 1996-02-18 22:17:37 +00:00
jtk 47286969ae Add bass/treble input filter adjustment controls to SB (Pro) driver 1996-02-18 16:36:44 +00:00
mycroft e5730c4a73 Fix a race condition where we might stop outputting if a write follows a
flush too closely.
1996-02-18 09:10:15 +00:00
mycroft 203f5d5329 Add some text describing the UART lossage worked around in the previous. 1996-02-17 04:51:41 +00:00
jtk 03f1e1432a fix compile error from gusprobe() cleanup 1996-02-17 04:49:50 +00:00
mycroft 121f6570d7 Drain the transmitter FIFO before changing the baud rate or FIFO depth
registers.  Fixes PR 2046.
Also, if COMCONSOLE is defined, expect CONSPEED to be the baud rate.
1996-02-17 04:04:28 +00:00
jtk 28feffd508 avoid panic'ing when driver gets confused--just spit out a message and
keep going.
Improve error messages to include device name.
use STATIC for function declarations/definitions so it's easier to get a
useful symbol table by flipping a switch.
1996-02-17 03:35:22 +00:00
mycroft 7847c9efee Various:
* Snap the sample rate when setting it, and remember only the time constant.
* Set the time constant when changing between play/record.
* Always return the actual sample rate with AUDIO_GETINFO.
1996-02-16 10:10:21 +00:00
mycroft 19f59bf3c2 Prototype the probe and attach functions. 1996-02-16 08:18:32 +00:00
mycroft 7af4edd731 Various, including:
* Add more delays while writing registers.
* Replace sc_dma{in,out}_inprogress with sc_dmadir.
* Eliminate the need for sc_locked.
* Add more DPRINTF()s.
1996-02-16 08:07:40 +00:00
christos 11d31f7ce7 Hayes ESP patches [from PR database] 1996-02-10 20:23:18 +00:00
mycroft 28bf676a23 Read the 14f/34f registers in 8-bit mode. 1996-02-09 17:38:09 +00:00
scottr 54c51d4393 Document this file better, mostly from John Vinopal
<banshee@gabriella.resort.com>.  Closes PR #1864.
1996-02-05 23:01:50 +00:00
scottr ae06fdb589 Allow blocksize of NBPG/2 to NBPG for higher sampling rates. From
Lennart Augustsson <augustss@cs.chalmers.se>, closes PR 2013.
1996-02-05 21:32:26 +00:00
jtc 3ae2aedf4d Fix error in copyright notice 1996-02-05 02:18:48 +00:00
jtc 240e22087c Received copyright assignment 1996-02-05 00:10:32 +00:00
thorpej 919f6728ab Accept DIOCEJECT as a synonym for CDIOCEJECT. Implement DIOCLOCK
separately from CDIOCALLOW and CDIOCPREVENT, even though they perform
basically the same function (with a different interface XXX).
1996-01-30 18:28:02 +00:00
mycroft 02317d25bb Make the panic message for ISA clone devices more informative. 1996-01-16 07:52:38 +00:00
christos d3427703db Hayes ESP support from Michael Van Loon, with minor cleanups. Tested on
a single port ESP card; works great!
1996-01-14 23:44:34 +00:00
thorpej f08d96426e Oops. Fix RCS id. 1996-01-13 02:06:30 +00:00
thorpej e422ebca1a Add the "ahe" driver, autoconfiguration support for the aic7xxx-based
Adaptec 2[78]4x SCSI controllers, from Michael Graff <explorer@flame.org>.
Fixes PR #1594 from Noriyuki Soda <soda@sra.co.jp> in a different way.
1996-01-13 02:05:14 +00:00
thorpej 48bb61e0d7 Use WTDBPRINT() instead of DEBUG() for driver debugging printf()s..
Fixes PR #1927, from Erik Bertelsen <erik@arhpc214.uni-c.dk>
1996-01-12 00:54:23 +00:00
hpeyerl 5e81dcd27a Make it a tad more obvious that this is a 3c505 driver. 1996-01-10 18:21:52 +00:00
chuck 75caa8c729 Imported from OpenBSD/FreeBSD:
Add support for the SMC8416 (EtherEZ) ISA ethernet card.
	The 8416 has an 8K shared mem (the old driver assumed 16K
	and failed at attach time).
1996-01-10 16:49:22 +00:00
mycroft 3441f118d5 Make sure we disk_busy() for every transfer we start. 1996-01-08 21:21:56 +00:00
thorpej 5b39541e48 New generic disk framework. Highlights:
- New metrics handling.  Metrics are now kept in the new
	  `struct disk'.  Busy time is now stored as a timeval, and
	  transfer count in bytes.

	- Storage for disklabels is now dynamically allocated, so that
	  the size of the disk structure is not machine-dependent.

	- Several new functions for attaching and detaching disks, and
	  handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
1996-01-07 22:01:38 +00:00
mycroft b9c37470a0 Fix Ultrastor 24f probe, per Andrew Gillham. 1995-12-26 17:16:55 +00:00
mycroft 3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
christos e159767fed Repeating my mistakes twice... I used sc-> in the pci probe routine
again, and it turned NetBSD in ostype[] to N^CtBSD... Thanks Charles (again)
Also call epstop() in the attach routine to make sure that the pci card
gets reset properly.
1995-12-05 03:30:15 +00:00
jtc 0cd793449e merge in changes from 1.1 release branch 1995-11-30 00:56:23 +00:00
cgd 0f7f390b49 allow bus-specific lance drivers to use machine-independent buffer/descriptor
copy functions, and convert isa and pmax drivers to do so.
1995-11-25 01:23:51 +00:00
christos d125a07adb My previous changes broke the pcmcia support. For now assume that all non
PCI cards look identical to ISA cards.
1995-11-13 20:50:22 +00:00
christos e4c4e9cb07 Add support for the 3c59x (pci) cards in the 3c5x9 driver. In addition
add the necessary bits for the 3c589 (pcmcia) card without adding any
of the pcmcia framework.
1995-11-10 19:39:21 +00:00
mycroft d3c61be30b Convert IRQ, DRQ, and port numbers to int. 1995-11-10 05:01:05 +00:00
mycroft 38a7c4b007 Correct the format of some diagnostics. 1995-11-10 04:41:58 +00:00
mycroft d8f6a1896b Convert IRQ, DRQ, and port numbers to int. 1995-11-10 04:30:36 +00:00
mycroft f096f370fb Use SET(), CLR(), and ISSET() macros.
Rename CFCR to LCR, and cache its value.
Check MSR before transmitting, for better flow control.
Preserve LCR_SBREAK inside comparam().
1995-10-15 19:43:04 +00:00
mycroft 3450507404 Make sure we only schedule one timeout to refill the mbuf queue. 1995-10-10 03:11:28 +00:00
mycroft 85285f6ead Add a shutdown hook. 1995-10-07 09:19:13 +00:00
mycroft 86939fd839 Fix typo. 1995-10-04 00:35:07 +00:00
mycroft 393a69d6db Modularize the CCB/MSCP/ACB/ECB handling a little. No functional changes. 1995-10-03 20:58:56 +00:00
thorpej a47ab73248 memcmp -> bcmp. Fixes PR #1518. 1995-09-26 22:56:54 +00:00
thorpej 26419c5a8b Don't declare Debugger(). It's handled in <sys/systm.h> 1995-09-26 19:31:15 +00:00
hpeyerl ddbb956f35 fixes a typo, the case where iomem is specified, but iosize is not, and
moves a couple of ee16 specific calls into a 'if ee16' protected block.
From Andrew Gillham <gillham@Digitron.COM>
1995-09-26 13:24:48 +00:00
pk 0fbf2ca04a Make *print() a message if no scsibus was attached. Also, return something
valid.
1995-09-14 20:43:09 +00:00
hpeyerl abe82a6680 Etherexpress-16 driver collision by Andrew Gillham <gillham@Digitron.COM>. 1995-09-14 12:41:32 +00:00
mycroft 8887de9230 opri --> s 1995-08-12 22:58:01 +00:00
mycroft 240560e9fd ia_irq has not been a power of 2 for a long time... 1995-08-12 22:37:58 +00:00
mycroft 80d7b0695a minphys() functions really should return void. 1995-08-12 20:30:45 +00:00
mycroft e4413d1a10 Fix another comment. 1995-08-07 14:26:51 +00:00
mycroft f657f5bf3e Make this interface simplex. It's more efficient, and sidesteps the
problem of receiving our own multicasts in promiscuous mode.  Also, fix
some outdated comments.
1995-08-07 14:16:26 +00:00
mycroft 6567855472 Count collisions and errors better. 1995-08-05 23:53:18 +00:00
mycroft 82b6eec41c Use an intermediate variable to shorten label initialization code.
Make wddump() work on more machines.
1995-08-05 23:50:23 +00:00
mycroft 24a5e56396 Use an intermediate variable to shorten label initialization code. 1995-08-05 23:47:52 +00:00
mycroft 60d2d483ca Turn off the mbi diagnostics completely. 1995-07-29 23:04:54 +00:00
mycroft a4fcbe857d Don't loop if we're out of CCBs/SCBs/MSCPs. 1995-07-28 22:49:56 +00:00
mycroft 38036ed16e Fix an oversight in the previous. 1995-07-27 05:01:08 +00:00
mycroft c9f7b2a185 Add PCI-specific configuration for PCnet-PCI. 1995-07-27 04:39:05 +00:00
mycroft 7ba8b413d9 Disable diagnostics related to expected mbi race condition. 1995-07-27 01:00:11 +00:00
mycroft e8c91e1129 Fix typos. 1995-07-25 05:11:11 +00:00
mycroft e413887539 Update to use dev/ic/am7990.c. 1995-07-24 18:04:21 +00:00
cgd 830a91b2e9 update SCSI minphys routines' definitions to match standard minphys()
definition and usage.
1995-07-24 07:16:44 +00:00
cgd a696e525b7 fix function prototypes, usages, to match what the code actually does 1995-07-24 05:54:52 +00:00
mycroft bdb9d41d7e Fix thinko in packet size diagnostic. 1995-07-24 04:12:45 +00:00
mycroft 2d37aba592 Add missing `break;'. 1995-07-24 02:46:47 +00:00
mycroft ff82158c19 Fix typo. 1995-07-24 02:43:11 +00:00
mycroft 4f36e42ff4 Various cleanup:
* Use standard function naming conventions.
* Only increment if_ipackets when a packet was actually received.
* Check for excessively large or small packets before trying to read them.
1995-07-24 02:40:38 +00:00
mycroft 413a5efc0c Pass a softc to leget(), not an ifnet. 1995-07-24 02:29:59 +00:00
mycroft 33292f0f88 Fix typos. 1995-07-24 02:08:13 +00:00
mycroft 7998e5ab4c Various cleanup:
* Use standard function naming conventions.
* Only increment if_ipackets when a packet was actually received.
* Check for excessively large or small packets before trying to read them.
1995-07-24 02:02:45 +00:00
mycroft b5699db68d Rename new xmit_busy back to txb_inuse. 1995-07-23 23:42:47 +00:00
mycroft 799910cb2c Remove txb_inuse. Other stylistic changes. 1995-07-23 22:12:16 +00:00
mycroft 1df91e03ca Remove a noop clearing of IFF_OACTIVE. 1995-07-23 22:09:11 +00:00
mycroft 1199b1b042 Exchange xmit_free for xmit_busy. Add BPF hook to iestart(). 1995-07-23 22:02:20 +00:00
mycroft 317db86dd3 Stylistic changes. 1995-07-23 21:37:51 +00:00
mycroft 9b2ae2a3cd Stylistic changes. 1995-07-23 21:26:48 +00:00
mycroft 4da9a5f814 Stylistic changes. 1995-07-23 21:14:31 +00:00
mycroft 644935b313 Slight rearrangement. Also, force eg_incount to 0 after a reset. 1995-07-23 20:54:23 +00:00
mycroft ecf259e342 Call epmbufempty() any time the board is stopped. 1995-07-23 20:46:49 +00:00
mycroft 57528ce346 Init functions are always called at splimp(). 1995-07-23 20:36:51 +00:00
mycroft 6bc1cc31f8 Push the copying of the output buffer further down, with the intent of
eliminating it and outputting the mbufs directly.  Make sure the queue drains
even if packets are not failing to transmit.
1995-07-23 20:27:48 +00:00
mycroft a8ce47fa44 Remove extra spls in el_init(). 1995-07-23 20:11:55 +00:00
mycroft 90da0e3a99 Kill return values in egstart(). 1995-07-23 19:45:42 +00:00
mycroft 3d1d0d928b Update prototypes. 1995-07-23 17:57:39 +00:00
mycroft a16702ce45 Various:
* Fix ugly looping constructs.
* Add a missing splx().
* Eliminate sc_pktbuf.
1995-07-23 17:50:56 +00:00
mycroft 8593f3a607 Recode elread() and elget() like other drivers. 1995-07-23 17:05:26 +00:00
mycroft a1a31f853c Fix pasto. 1995-07-23 16:43:40 +00:00
mycroft 9c26c4da18 Always use m_pkthdr.len on output. Panic if M_PKTHDR is not set. 1995-07-23 16:42:49 +00:00
mycroft 465cfd15f0 Always use m_pkthdr.len on output. Panic if M_PKTHDR is not set. 1995-07-23 16:32:33 +00:00
brezak 693043d786 GUS audio driver from John Kohl. 1995-07-19 19:58:09 +00:00
cgd 880567e771 fix from Onno van der Linden for large-file read timeouts on double-speed
drives.  A different read command must be used on double-speed drives.
It boggles my mind that people could design hardware this stupid.
1995-07-10 01:27:24 +00:00
cgd e574814605 insert missing call to splx() when {aha,bt}_send_mbo() returns null.
from enami@sys.ptg.sony.co.jp.
1995-07-08 00:34:16 +00:00
brezak 4b4b3ee81a Cleanup 1995-07-07 02:19:48 +00:00
brezak dd3d2e28ed Setup irq correctly (PR#1179) 1995-07-07 02:15:12 +00:00
brezak 0bdd4aa7c2 add support for cs4231 1995-07-07 02:11:45 +00:00
mycroft 9624704e02 Make each disk and tape driver define its own read and write functions.
Deprecate rawread() and rawwrite() completely.  Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-05 02:32:53 +00:00
mycroft 7263209ce6 Make each disk and tape driver define its own read and write functions.
Deprecate rawread() and rawwrite() completely.  Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +00:00
mycroft eb99dcc09a Fix a condition where ttywait() wouldn't be woken up. Also, short-circuit
the case of no pending input in compoll().
1995-07-04 06:47:18 +00:00