Commit Graph

942 Commits

Author SHA1 Message Date
thorpej 4ad627c09b Do the unaligned buffer fixup without copying data, more-or-less lifted
from the Shark CS8900 driver.
1998-06-10 01:15:50 +00:00
thorpej be62e9cb1b Nuke __BROKEN_INDIRECT_CONFIG. 1998-06-09 07:35:06 +00:00
thorpej e41f7ca1b8 Make this build w/ EGCS. 1998-06-08 07:11:51 +00:00
thorpej e12c6ddaf2 No need for an explicitly-sized type for sc_flags. 1998-06-08 07:06:41 +00:00
fair b91a2393c1 the AM7990 is a controller, not a "card"; repair a misleading diagnostic. 1998-06-07 08:08:20 +00:00
pk 573196b6ba Check for the ether broadcast address in promiscuous mode (PR#5527). 1998-06-04 20:35:44 +00:00
enami 770c4bfb9d Make this compile with WDDEBUG 1998-06-04 02:27:33 +00:00
thorpej 5852faaf84 Device driver for the SMC 83c170 Ethernet PCI Integrated Controller (EPIC/100)
used in the SMC EtherPower II.

Media control isn't yet supported, due to some MII infrastructure
problems which I hope to address soon.  This isn't a huge deal, since
the PHY defaults to auto-negotiate mode.

Also, the device just programs the multicast hash table to accept all
multicast, to avoid a hardware bug that causes the multicast address
filter to lose in 10Mb/s mode.  This bug will be fixed in a more sane
way once the media control issues are dealt with.
1998-06-02 01:29:41 +00:00
drochner b84dbbb37c Put definitions and subroutines needed for all PC display adapters
(MGA/GCA and compatibles) into global headers / source files.
Let the VGA driver use them.
1998-05-28 16:48:40 +00:00
matt 769e4e6e81 Another bug fix (clear transmit done before trying to queue more transmits). 1998-05-28 03:07:49 +00:00
matt dd77920e3e Only enable transmit done interrupts when output ring is full. 1998-05-27 14:01:02 +00:00
matt 5fb5017c94 Fix syncing of consumer block. 1998-05-27 01:17:53 +00:00
thorpej 5442fd5420 If we have an NCR53CF9x (indicated by the front-end by setting a flag
in the softc's new "features" word), set FSCSI bit in CFG3 if the sync
period is <= 200ns, or clear it otherwise.
1998-05-26 23:17:34 +00:00
matt 1f8a0caf0a Success! With these changes, the DEFTA now under NetBSD/pmax!! 1998-05-26 15:33:16 +00:00
matt 2d80e4786e Verify the driver work if PDQ_NO_BUS_DMA is defined. 1998-05-25 21:24:21 +00:00
matt 05f603434f More pmax coherency stuff. Getting close.. 1998-05-24 22:37:23 +00:00
matt 144c41e986 Fix dmamap leakages. fix transmit bug. fix receive bugs. fix mips
coherency problems.
1998-05-24 21:40:05 +00:00
matt 18319c0048 Changes so that these compile on NetBSD/alpha as well as NetBSD/i386. 1998-05-23 18:32:29 +00:00
matt 9eb77bf49a Change 21040 modes slightly. Prevent infinite autosense loop of 21143 that
is not connected.  Make TULIP_STS_LINFAIL only valid for chips with that
status bit defined.
1998-05-22 18:50:59 +00:00
matt cfbb5f3f21 Add bus_dma(9) support for the DEFxA FDDI driver 1998-05-21 20:44:02 +00:00
augustss 74545baf39 Add a Yamaha OPL3-SA3 driver and clean up all AD1848 drivers.
Submitted by Constantine Sapuntzakis <csapuntz@reeducation-labor.lcs.mit.edu>
and originally written for OpenBSD.
1998-05-20 16:19:41 +00:00
pk 11c8871c83 Erase spurious end-of-comment. 1998-05-20 16:06:56 +00:00
pk 9299239520 Cirrus Logic CD1190 parallel port chip definitions; from Iain Hibbert. 1998-05-20 14:47:36 +00:00
pk 9c1918e458 Add CD1400_PAR_FIFO_SIZE. 1998-05-20 00:03:11 +00:00
kml 051be14326 Correct copyright date. 1998-05-17 16:46:06 +00:00
drochner 7bd61ed6be needed for VGA text attributes 1998-05-14 23:11:03 +00:00
drochner 95bdb660ed Simple screen attribute handling for wscons.
The graphics device driver passes a "default attribute" for normal text
output to the wscons framework. If the emulation module needs more
attributes (for different "renditions") it can allocate them via a
callback.
For now, only the "sun" emulation makes use of it.
1998-05-14 20:49:55 +00:00
matt 1442b419df Fix alignment crashes on Alphas... 1998-05-14 18:24:00 +00:00
kml e72782a137 Driver for Essential Communications' RoadRunner HIPPI (800 Mb/sec network)
card.  With some modification, this could probably also work for their
Gigabit Ethernet card based on the same chipset...
1998-05-14 00:04:57 +00:00
kleink d2db996158 Fix some arithmetics lossage on typeless pointers. 1998-05-07 21:13:23 +00:00
mjacob 128cb933b4 there is an (unimportant) difference between 1020 && 1020A 1998-05-05 22:10:36 +00:00
enami 2eb37a4e87 When changing power, wait enough to keep timing constraint
described in PCMCIA specification.
1998-05-05 00:37:24 +00:00
pk 6ba2c64ae6 Eliminate the degenerate loop in `ncr53c9x_intr()'. Retain the delay heuristic
it implemented under the label `shortcut:' and only use it in these
cases: (1) after successful re-relection, (2) after receiving command-complete
status, and (3) during message-in handshake.
1998-05-04 14:47:48 +00:00
pk 0d3d41fa21 Allocate SCSI message buffers in ncr53c9x_attach(), with a provision
for front-ends to override the allocation to avoid alignment
handling in their DMA engines. Note that that ncr53c9x_msgout()
can request a 1 byte DMA transfer that would be difficult to break up.
1998-05-04 11:11:24 +00:00
thorpej 53d3aa940b Sync with recent change made to bha.c by mjacob:
Cute buglet: you can end up with zero CCBs if there were no targets
seen by the adapter. Always leave a minimum so the adapter can
finish attaching- it may be there w/o targets for a reason.
1998-04-29 01:02:44 +00:00
mjacob 1acc8b53b5 Cute buglet: you can end up with zero CCBs if there were no targets
seen by the adapter. Always leave a minimum so the adapter can
finish attaching- it may be there w/o targets for a reason.
1998-04-28 23:57:53 +00:00
thorpej 41d55197b4 In wdcintr(), add a catch-all case so that this will compile if no
children are configured.
1998-04-28 18:36:07 +00:00
mycroft 0b2694152f Update copyright. 1998-04-26 06:03:23 +00:00
mycroft eddaea2d53 In LBA mode, always use the `total capacity' count, rather than calculating
the capacity based on the c/h/s numbers.  In fact, don't use the c/h/s
numbers for much of anything.
For ATA-4 drives or later, always use LBA mode, since it's now required.

Collectively, this allows >8GB disks (like the 12GB Bigfoot) to work.
1998-04-26 05:28:23 +00:00
bouyer 68096acabd From Robert V. Baron:
Compute the disk block addr at command queing time rather than exec time.
This fix a bug which could lead to data corruption on disk: when a command
was reexecuted after an error condition (from wdcunwedge), the partition
offset was re-added to the block addr, leading to a transfert at the wrong
disk block.
This should fix the problem reported by some laptop's users, where the
first disk read after a suspend/resume returned garbage.
1998-04-23 13:30:39 +00:00
bouyer 7ba46a56e0 Correct defifintion of the WDCE_MCR and WDCE_ABRT bits: they have been
inverted since the begining.
This doesn't change anything, as these bits are not used in the driver.
1998-04-23 10:37:01 +00:00
augustss 9663e5f689 Make probe message more consistent with usual practice.
From "Soren S. Jorvang" <soren@t.dk>.
1998-04-20 20:58:05 +00:00
leo 112b5de402 Use a stream method for AHC_OUTSL when possible. 1998-04-16 07:13:57 +00:00
leo d3febbb5aa Do endian swaps where appropriate. This is currently dependent on 'BYTE_ORDER'
since the driver only supports little endian busses.
1998-04-16 07:12:43 +00:00
drochner eda73f204f The "mi" TGA driver. It's still not of much use on anything but alpha
because it depends on initialization by the firmware.
Further, an mi mmap() is needed...
1998-04-15 20:16:30 +00:00
leo fe60e74148 Add hooks to make exclusive hardware locking possible. This is necessary
to make the driver suitable for the atari falcon.
1998-04-07 19:51:57 +00:00
drochner 0391896c27 Avoid namespace pollution. 1998-04-07 16:35:42 +00:00
matt b80f703f77 Fix problem with promicuously received packets. (ie. give them to bpf
but not fddi_input).
1998-04-07 13:32:06 +00:00
pk be4108fec1 Replace direct `sparc_bus_map()' calls with bus space map method. 1998-03-30 14:21:38 +00:00
hannken b70a7e1752 Didn't compile: add variable `bit' removed by mycroft. 1998-03-30 10:35:03 +00:00
mycroft d4da63c6c3 Eliminate cs_heldchar. It is not necessary in my version of the driver. 1998-03-30 02:41:21 +00:00
mycroft 8f597a8744 Oops; make the table const. 1998-03-29 22:36:42 +00:00
mycroft a6b8b01d96 Use a 4-bit table to speed up the CRC even further, without increasing the
code size too much.
1998-03-29 22:34:27 +00:00
mycroft fe7f32954b Optimize the address CRC routines a bit. 1998-03-29 22:08:03 +00:00
cgd 9264961c87 add a short delay (5ms) after ATAPI software reset is done, suggested by
Soren S. Jorvang <soren@t.dk>.  Apparently some devices Really Want this.
1998-03-27 19:32:15 +00:00
mjacob 57ca254137 some minor debug printout changes 1998-03-24 23:37:53 +00:00
msaitoh 47d94e4676 fix typo 1998-03-23 16:57:21 +00:00
mjacob fc27ffd92c update some debugging stuff- also turn off possible ULTRA mode for 1020s 1998-03-22 22:02:29 +00:00
mycroft ff0635ab25 Fix error in previous change. 1998-03-22 19:36:52 +00:00
drochner 3a43fe7109 initial import of VGA driver backend for use with the new wscons code 1998-03-22 15:11:49 +00:00
enami 2b5f7351d2 Split Fujitsu MB9696x based ethernet card driver into bus
dependent/independent code and bus.h'fied.
1998-03-22 04:25:36 +00:00
mycroft f6dba67570 Read up to 32 bytes. The ESCC *needs* 8, and it doesn't hurt to leave some
slop in case there are clone chips with a deeper FIFO.
1998-03-22 02:36:02 +00:00
mycroft 2bb5067e13 Move the code to wait for carrier on a tty into a common function, since it
depends only on device-independent state bits.
Implement SunOS-style `dialout' devices.
1998-03-22 00:55:37 +00:00
mjacob 019508faee Well, I don't have a Cyclades board, but I needed the alpha kernels
to compile. I made the changes that seemed to make sense tracking the
shift from TS_WOPEN  to tp->t_wopen- but they may be wrong. I wasn't
subscribed to tech-kern so I missed the discussion, and C. Hannum
was not particularly enlightening. Sorry if this isn't quite right.
1998-03-21 23:26:15 +00:00
pk 69fe6f242f Account for changed bus attachment scheme. 1998-03-21 20:11:30 +00:00
mycroft 834a8ac07a Fix pasto. 1998-03-21 04:31:10 +00:00
mycroft fd620ebb32 Replace TS_WOPEN with t_wopen, per mail on tech-kern. 1998-03-21 04:29:29 +00:00
mycroft 16566cda09 Remove a bogus initializer. 1998-03-21 04:27:58 +00:00
mycroft 2ada4b4af1 Replace TS_WOPEN with t_wopen, per mail on tech-kern. 1998-03-21 04:02:47 +00:00
leo d2551d5b3f Use bus-dma functions. 1998-03-16 15:36:17 +00:00
wrstuden 6dcfc62169 KNF last change 1998-03-05 22:56:18 +00:00
wrstuden 84c6b9dbd7 Make zs_iflush not loop indefinitly. Some Mac PowerBooks lie about having
two SCC channels, and can get stuck in an infinite loop. This change
stops after flushing 4 bytes. Might need upping to 8 bytes if we support
85230 ESCC's.

Idea bounced off of scottr & gwr
1998-03-05 22:03:34 +00:00
augustss 713692a2b5 For the Rx:Tx split message change "(undefined)" to "3:5". 1998-03-04 18:10:03 +00:00
pk 5bc7459ebd Remove `NEW_I82586' 1998-02-28 01:14:57 +00:00
pk 472a1973af Remove `_NEW_I82586' tag; all drivers using this file have been converted. 1998-02-28 01:07:45 +00:00
mycroft 64812254d6 Remove some duplicate definitions. 1998-02-27 13:17:25 +00:00
ross 081231b1ad Add dummy }} after comsoft() to keep ctags(1) bashing on. 1998-02-25 08:32:35 +00:00
enami e12f85fbc1 Disable the device if we fail to open and nobody else has the device open.
(Thanks Charles and Marc for your advices).
1998-02-22 05:09:58 +00:00
mycroft 11b3fea04a Fix bonehead error in previous change. 1998-02-22 03:24:58 +00:00
mycroft 6ad2876b5a Similar changes to com driver:
Arrange to call com_break() and com_modem() at splserial().
It's simpler this way.  Really.
1998-02-19 21:26:10 +00:00
mycroft 84a72d6ff4 Remove stray label from last change. 1998-02-19 09:33:33 +00:00
mycroft 06ec9f646f Arrange to call com_break() and com_modem() at splserial().
It's simpler this way.  Really.
1998-02-19 09:23:38 +00:00
thorpej 4399060ec9 - Perform all necessary bus_dmamap_sync() operations.
- Greatly simplify allocation and DMA mapping of the mailbox and ccbs.
- Be more robust against resource shortage errors, and report errors better.
1998-02-17 03:02:30 +00:00
thorpej 018aa6e97e Don't include <dev/scsipi/scsipi_conf.h> twice. 1998-02-13 21:58:40 +00:00
mrg d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
thorpej eda74e6121 - Perform all necessary bus_dmamap_sync() operations.
- Greatly simplify allocation and DMA mapping of the mailbox and ccbs.
- Be more robust against resource shortage errors, and report errors better.
1998-02-09 10:53:07 +00:00
thorpej 5fe6759646 Fix serial console support, which was broken by the previous revision:
- In the console getc routine, block until a character becomes ready
  (no, really, we mean it).  This routine should _never_ time out.
- In the console putc routine, if the UART has trouble, do NOT proceed
  to print a diagnostic message, which would recursively invoke the
  console putc routine ad nauseum.
1998-02-09 10:22:45 +00:00
thorpej e08a44b196 - Perform all necessary bus_dmamap_sync() operations.
- Greatly simplify allocation and DMA mapping of the mailbox and ccbs.
- Be more robust against resource shortage errors, and report errors better.
1998-02-06 23:06:44 +00:00
enami 9d13bc6e0e Restore system priority level before return from comopen(). 1998-02-06 03:25:34 +00:00
mrg 1a8c7604f4 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly.  :-)
1998-02-05 07:59:28 +00:00
sakamoto a2b24d5571 Change "__BUS_SPACE_NEED_STREAM_METHODS" to "__BUS_SPACE_HAS_STREAM_METHODS". 1998-02-04 14:13:40 +00:00
thorpej 8abe76d2f0 Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
1998-02-04 05:12:46 +00:00
thorpej a7c5c1ef3c Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
1998-02-04 00:32:55 +00:00
sakamoto 7052e9949b Change the data access busification functions to
the "stream" busification functions.
In the architecture as the BeBox(CPU is big endian, have ISA bus),
These methods would be used where "raw" data needs to {read,write,set}
unchanged.

Add #ifndef __BUS_SPACE_NEED_STREAM_METHODS (define that on NetBSD/bebox),
if not define __BUS_SPACE_NEED_STREAM_METHODS,
define "stream" busification functions to normal busification functions.
1998-02-03 04:26:45 +00:00
cgd 9bffcfef75 change #ifdefs keying on "alpha" to key on "__NO_SOFT_SERIAL_INTERRUPT"
instead, and define that on NetBSD/alpha and NetBSD/arm32.
1998-02-02 23:01:02 +00:00
cgd c2f42b2213 Implement a flag to indicate that the driver attached correctly.
This is useful in the case where an attachment's probe routine
verifies that there is indeed hardware present but something goes
"wrong" in the attach causing the device to be unusable.  (Without
keeping track of this, in that case incorrect ports could be
accessed or uninitted pointers could be deferenced on open or at
other times.)
1998-02-02 22:54:55 +00:00
marc 5c17882e45 move pcic_wait_ready from i82365var.h to i82365.c 1998-02-01 23:36:23 +00:00
marc 63f5e2bbc3 move pcic_wait_ready to i82365.c 1998-02-01 23:33:51 +00:00
marc 1d4b77e754 split com_attach_subr into attach stuff and per-open initialization stuff
add timeouts to all splserial() while loops so bugs elsewhere don't cause
the com driver to wedge the machine
 add power management support
1998-02-01 23:33:01 +00:00
marc a71698f108 add power management hooks to softc 1998-02-01 23:30:49 +00:00
kleink fa75c2d647 Fix two harmless typographical errors in a comment. 1998-02-01 19:25:44 +00:00
pk f3ee364e31 * Make sure the `ECB_NEXUS' flag accurately reflects the existence of
an initiator/target nexus and thus mark the correct queue (if any) a
  command is on.

* If a disconnected command times out, just leave it on the nexus queue
  and do nothing (for now). I need yet to decide on the strategy to
  follow in this case.  Note: we used to move the command to the `ready'
  queue and then do nothing, which is worse.
1998-01-31 23:37:51 +00:00
thorpej 78650a8398 Use offsetof() from libkern.h 1998-01-30 01:26:51 +00:00
thorpej a7bc6bd92c In the NE2000 case, if we encounter an unaligned mbuf, copy it to an
aligned buffer so that we can do 16-bit PIO to the device without causing
an unaligned access fault.
1998-01-29 00:59:33 +00:00
mjacob 99139bc35a Fix for port-alpha/4903- always download f/w unless config flags say
no or we have no firmware to download.
1998-01-28 19:09:24 +00:00
thorpej 2538ed1062 Use offsetof() from libkern.h 1998-01-28 02:23:04 +00:00
thorpej cdec42b6a0 Fudge the start of the data pointer of the first mbuf in the chain when
reading a packet, ensuring that the data after the Ethernet header will
be aligned.  Part of PR #4595, from Andreas Johansson <ajo@wopr.campus.luth.se>
1998-01-27 23:26:21 +00:00
thorpej 243c218061 Update copyright. 1998-01-26 20:30:06 +00:00
thorpej 044add4253 If we're using these devices on a big-endian CPU, byte swap the "count"
field in the dp8390's packet header (because the dp8390 runs in little-endian
mode in these cases).  Inspired by an e-mail from Kazuki Sakamoto.
1998-01-26 19:21:36 +00:00
pk 09559070f7 * Do not remove ATN from the scsi bus if we have no messages queued but
the target still is in MSG OUT phase. We still send a message (a NO_OP)
  in this case and the chip will remove ATN at the appropriate time.
  Using the RSTATN command here induces a "illegal command" in some
  chip revisions.

  This situation only occurs if the target rejects a previous (multi-byte)
  message early (by switching to MESSAGE IN and sending a MESSAGE REJECT)
  before the chip has completed the entire MSG OUT transfer. ATN will
  remain asserted, and the target returns to MESSAGE OUT phase.

* Account for the events above when reporting "DMA not completed"
  diagnostic messages.

* Stream-line the selection code a bit, and make the DMA setup code
  more like the MSG OUT & DATA XFER setup.
1998-01-24 15:33:35 +00:00
mycroft 753e4909bb Assume a newline has already been printed in wdcattach(). 1998-01-23 01:06:45 +00:00
drochner 94343e637a define offsets into "register window" instead of absolute ISA addresses
for better use in a bus-ified environment
1998-01-19 11:38:00 +00:00
drochner 2562f77567 Don't define absolute ISA addresses here but offsets into the
"controller window".
1998-01-18 14:41:37 +00:00
pk 94072e56f6 Move "async command" state in here. 1998-01-15 16:08:32 +00:00
pk 47505a3b6f Elaborate on "receiver not ready" conditions; we don't need a full reset
in most cases.

Move "async command" state into the softc structure.
1998-01-15 16:07:34 +00:00
cgd 24972c51a4 #include a just-added scsipi header. 1998-01-15 02:23:43 +00:00
cgd 8540a31ee3 kill a couple of unnecessary #ifs 1998-01-15 01:26:13 +00:00
cgd aaede4d8d8 Various cleanups and bug fixes to the wdc/wd code:
* Fix bug in wdc that would overflow ATAPI transfer length.
* Improve wdc probe code so that 'wdc' is probed in if present
  even if there are no drives attached, and so that it works
  properly even if the only device is an ATAPI slave.
* bus_space-ify.
* split the ISA attachment from the wdc driver, and remove
  ISA dependencies from non-ISA files.
* claim that wd and wdc are now machine-independent (probably not
  completely true, but mostly so; they at least work on arm32 and
  i386).
* Various other minor fixups and cleanups, some of which were pointed
  out by Kazuki Sakamoto.
1998-01-14 23:41:59 +00:00
enami 4b62270f85 Don't include <machine/pio.h> and <dev/isa/isavar.h>. Instead,
include <machine/bus.h> directly.
1998-01-13 03:31:42 +00:00
thorpej 1adb4489a6 Update for changes to config. 1998-01-12 20:23:38 +00:00
thorpej 06ce220790 Update for config changes. 1998-01-12 09:39:57 +00:00
thorpej 095c4c092d Adjust for config changes. 1998-01-12 09:23:08 +00:00
pk 69487f1532 * Fix a train-load of bugs, mostly present in one of these categories:
- "out of resource" errors cause receive buffer chain corruption
	- resets can confuse the interrupt handler
	- multi-cast setup causes receive buffer chain corruption
	- shared memory setup incomplete

* Enhance effiency by avoiding unnecessary shared memory access,
  improved handling of receive frame & buffer descriptors, and
  introducing an `asynchronous' option when issuing 82586 commands.

* Exclusively use offsets relative to the bus handle representing the shared
  memory area to formulate accesses to the chip's data-structures.  The
  front-ends provide glue functions that cater to the chip's endian-
  sensitivity, to perform the actual device access (note: single-byte
  accesses are done here using `bus_space_{read,write}_1()').
  This concludes the transformation into a bus-independent driver module.
1998-01-10 02:35:31 +00:00
pk f041e52c7e * Rename a bunch of chip definitions for consistency.
* Abolish C structures to access chip data-structures; instead use macros
  that take indices and offsets relative to the bus handle representing
  the chip's resources.

* Include the old version of this file wholesale, until all drivers
  have been updated to use the MI 82586 code.
1998-01-10 01:46:32 +00:00
mikel c0d8293951 fix some typos in error messages & comments 1998-01-07 08:47:54 +00:00
perry 8a98e23a48 RCSID Police. 1998-01-06 04:55:52 +00:00
perry fff05a68ab RCSID Police. 1998-01-05 07:31:05 +00:00
fvdl ffb3eaa5ea Add extra delay after wdcreset() call in wdcprobe. Needed by at least
one controller, where registers otherwise will still be inaccesible
(even though the busy bit has been reset), making the probe fail.
1997-12-24 02:01:00 +00:00
mycroft f1170022ce Don't do anything in comparam() if the line speed and flags are the same. 1997-12-16 22:52:37 +00:00
pk a8c268918b Changes from Rafal Boni to accommodate ISA driver front-ends. 1997-12-13 21:18:01 +00:00
scottr dc89550a55 Fix typo in a trace message expression. 1997-12-12 22:44:26 +00:00
thorpej 0ac93f48ea Use malloc()/free(), not geteblk()/brelse(), for the device buffer. 1997-12-07 16:09:36 +00:00
chuck d76941843e fix mixer code that was clearly untested:
- allow get/set of enums SUNAUDIO_SOURCE and SUNAUDIO_OUTPUT rather
	than returning EINVAL
 - add missing SUNAUDIO_MONITOR_CLASS case in query_devinfo
 - convert SUNAUDIO_MONITOR case from a MIXER_CLASS to a MIXER_VALUE
	like it is supposed to be
 - the labels for outputs/record class were swapped: fix it

this patch allows "mixerctl" to work properly on a sparc
1997-12-06 03:20:56 +00:00
mjacob 5ff1a34bba Add a new async notification, and also fix a bug where the queue entry
wasn't getting fully zeroed as it should be.
1997-12-05 19:41:49 +00:00
mjacob 62ac2ff851 new async code defined 1997-12-05 19:40:35 +00:00
pk 39879b883e Use a 1-character queue so polled console output can be deferred if
regular I/O has been scheduled.
1997-11-12 22:17:07 +00:00
bouyer f7c6e141e6 Various bug fixes for atapi part:
- clean up debug code
- Don't check ATAPI signature when probing ATA drives, ATAPI devices were
  detected before
- Reset controller after disks probes. The probe, with some combinations of
  ATA/ATAPI device keep it in a mostly working, but strange state (with busy
  led on)
- The WDCF_IRQ_WAIT flag is now cleared by wdc_ata_intr and wdc_atapi_intr
  when appropriate (helps recover from failure conditions)
- In wdcunwedge, send ATAPI_SOFT_RESET to non-ata drives
  (helps recover from failure conditions)
- in wdctimeout be a bit more verbose when we missed an interrupt
- Always Increment xfer->c_skip where it should be
- Set the ITSDONE flag when a polled command completed.
1997-11-05 22:19:07 +00:00
thorpej 1713a9fb07 is790 u_char -> int. 1997-11-05 07:15:42 +00:00
thorpej 03a0c2d900 Implement a simple queueing mechanism that makes these drivers much
more robust in resource shortage situations, basically identical to
code I added to the "ahc" driver some time ago.

Thanks to Brad Spencer for the testing help.
1997-11-04 05:58:22 +00:00
mycroft 47c2d7502f Actually use TIOCFLAG_CDTRCTS. 1997-11-03 16:30:54 +00:00
mycroft 0e16ca013b Always leave DCD_IE and CTS_IE on for now. Needs more work in zsparam() to
make the optimization actually work right.
1997-11-03 16:15:47 +00:00
mycroft 37e260f4a6 Leave the console running with or without DDB. 1997-11-03 15:35:42 +00:00
mycroft 13e9b38191 Slight optimization in soft input routine. 1997-11-03 08:20:35 +00:00
mycroft ce29cdf2e7 Set the ring size back to 2k. 1997-11-03 06:56:28 +00:00
mycroft 9b9cce6084 Mostly cosmetic and performance changes:
* Make the ring buffer size and water marks patchable, and allocate the buffer
  separately.
* Do the ttymalloc() at attach time.
* Reorganize the receive buffer so the status and data pair are next to each
  other.  This is slightly faster.
* Make sure we actually do turn off interrupts in comclose() if we have DDB
  configured and it's not the console.  (D'oh!!!!)
* When we exhaust the current transmit run, turn off transmit interrupts in
  comintr(), so we're fairly sure we don't get another one.
* Nuke the silly lsrmap[] idea; it's slower in the normal case.
* Cache the l_rint pointer in the soft interrupt routine.
1997-11-03 06:55:54 +00:00
mycroft 7d7ecb9200 Bug fixes:
* Carrier detect (TS_CARR_ON) is based on the actual DCD bit, even if it's
  being ignored.
* Set TS_WOPEN early on in zsopen().
* Don't disable interrupts on the console during close if we have DDB.

Inert changes:
* Don't handle ZS_HWFLAG_NO_DCD here; the frontend does it.
* Deprecate `register'.
* Use SET(), CLR(), and ISSET().

More performance changes:
* Rototill receive handling; use a backpressure mechanism to prevent livelock.
* Output silo/ibuf overflow warnings at most once per minute, from a callout.
* When we exhaust the current transmit run, turn off transmit interrupts in
  zstty_txint(), so we're fairly sure we don't get another one.
1997-11-03 06:16:43 +00:00
mycroft 067898abb8 Mostly cosmetic and performance changes:
* Make the ring buffer size and water marks patchable, and allocate the buffer
  separately.
* Do the ttymalloc() at attach time.
* Reorganize the receive buffer so the status and data pair are next to each
  other.  This is slightly faster.
* Make sure we actually do turn off interrupts in comclose() if we have DDB
  configured and it's not the console.  (D'oh!!!!)
* When we exhaust the current transmit run, turn off transmit interrupts in
  comintr(), so we're fairly sure we don't get another one.
* Nuke the silly lsrmap[] idea; it's slower in the normal case.
* Cache the l_rint pointer in the soft interrupt routine.
1997-11-03 06:12:02 +00:00
gwr 762cc5a0fc Fix serial console support (did not turn on CLOCAL). 1997-11-03 04:34:18 +00:00
thorpej e7044069f6 Fix a think'o in ifmedia initialization. 1997-11-03 00:19:41 +00:00
mycroft 61bf289f3e Slight code rearrangement. 1997-11-02 09:31:49 +00:00
mycroft acb27fb42a Slight code rearrangement. 1997-11-02 09:24:51 +00:00
mycroft 5869b743c7 Rearrange *param() slightly to eliminate a spl.
Also fix another comment regarding DTR.
1997-11-02 09:15:41 +00:00
mycroft 76b7dd52df Add another splserial()/splzs(). 1997-11-02 08:55:52 +00:00
mycroft acd97c6676 Minimize some spl regions slightly. 1997-11-02 08:50:31 +00:00
mycroft 8914537568 If we lose HFC, assert RTS. 1997-11-02 08:29:51 +00:00
mycroft b000ee5105 Set the state of DCD_IE and CTS_IE based on what's in rr0_mask. 1997-11-02 08:02:40 +00:00
scottr c35524f0a1 Fix a serious problem in dp8390_write_mbuf(), noticed by Jason Thorpe:
after we've written out the contents of the mbuf, increment the transmit
buffer offset by m->m_len.
1997-11-02 06:18:27 +00:00
thorpej 7438e6c882 Adjust for ifmedia-related changes to dp8390 driver. 1997-11-02 00:25:11 +00:00
thorpej 18636a8934 Add ifmedia support via callbacks to the front-end. 1997-11-02 00:23:54 +00:00
mycroft 74df2cee60 Correct a comment regarding our behaviour with DTR. 1997-11-01 20:40:36 +00:00
mycroft d0df1f96f4 Add additional splserial()s in comopen() and comclose(). These are not
necessary on the i386 port, but may be on others.
1997-11-01 20:31:57 +00:00
mycroft 8475e6c0ba Fix minor omission; write back reg 1 earlier in zsopen(). 1997-11-01 20:23:50 +00:00
mycroft 386d55a1ca Need some additional splzs() in zsopen(), and nuke one that's no longer
needed.
1997-11-01 20:15:10 +00:00
mycroft 8ffb1f6b84 Nuke the special case of heldchange for reg 5. We don't use it for flow
control any more, and the speed of changing DTR isn't really an issue.  Also,
the old code created a bug where zsparam() might have failed to set some
registers.
1997-11-01 18:15:12 +00:00
mycroft 75dc31c41d Yet more changes imported from com driver:
Change the interface to zs_hwiflow(); just have it use zst_rx_blocked.
Make zs_modem() a tiny bit faster.
Do RTS updates immediately; do not allow them to be held.
1997-11-01 17:57:14 +00:00
mycroft eb0f6686d2 Make zst_tba a u_char *. 1997-11-01 17:12:54 +00:00
mycroft 4377152a4b More changes taken from com driver:
Stop output as fast as possible when DCD is deasserted.
Do *not* automatically drop DTR when DCD is deasserted.
Only check for rr0 bits that we care about (DTR and DCD).
1997-11-01 17:09:06 +00:00
mycroft deb1d9f40a GC some unused bits.
Also, part of the previous was copied from the com driver, so DTRT.
1997-11-01 15:59:26 +00:00
mycroft 8008239563 Rearrange open sequence to make sure we catch all line status changes.
Make sure we turn on DTR and/or RTS as appropriate during open.
Rearrange close sequence so the tty is flushed before turning off interrupts.
Deal with `softcar' and the console device by silently asserting CLOCAL and
|HUPCL, as in com driver.
Do *not* fiddle with DTR when changing the line speed.
Make sure we update the tty's carrier status when CLOCAL or MDMBUF is changed.
Only change rr1 when we actually need to turn on or off TIE.
1997-11-01 15:51:23 +00:00
drochner d52df86460 Print probe result after the LCR is restored. Otherwise, bad
things happen if we are the console.
Restore to the prevoius value (not to hardwired 8N1) because this
could be set by the serial console initialization.
Closed PR kern/4373 (Dave Huang)
1997-10-29 18:28:07 +00:00
thorpej 7964d4bd34 When probing for a dp8390 in ne2000_detect(), check for RST being set
in the ISR (from the ISA "ed" driver's generic 8390 probe routine).
Also, add a big comment describing exactly what we're checking when
probing for the dp8390 (also lifted from the ISA "ed" driver).

The RST check should help weed-out non-matches before they get to the
fairly invasive memory check.
1997-10-29 07:57:53 +00:00
thorpej b01dbb214c When creating mscps, be a little more informative about why we couldn't
should creation/initialization of a mscp fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one mscp what we can grab, and continue to hobble along.

Also, fix the mscp freelist fencepost error, similar to aha.c and bha.c
1997-10-28 23:46:49 +00:00
thorpej 6e8facbdcc When creating ccbs, be a little more informative about why we couldn't
should creation/initialization of a ccb fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one ccb what we can grab, and continue to hobble along.
1997-10-28 23:31:30 +00:00
thorpej 711fc71012 When creating ccbs, be a little more informative about why we couldn't
shoud creation/initialization of a ccb fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one ccb what we can grab, and continue to hobble along.
1997-10-28 23:06:21 +00:00
thorpej d1bfbc66c6 Syncronize with changes to aha.c:
Adjust the number of ccbs allocated during initialization.
Every ccb could potentially lock 64k of memory for dma buffers if bounce
buffers are used.  Instead of BHA_CCB_MAX ccbs using 2MByte, only
sc_link.openings ccbs per device are allocated.  Thus we now use only
256KByte per device present.
(hannken)

Fix a couple of errors in bha_create_ccbs():
- Don't ever let the number of CCBs be creater than BHA_CCB_MAX.
- Fix a fencepost that caused the last CCB allocated to never be put
  on the freelist.
(thorpej)
1997-10-28 19:13:36 +00:00
thorpej 1dfae448cd Reply from an INQUIRE DEVICES is a lun map. 1997-10-28 19:08:26 +00:00
thorpej 1bfea0bd23 Fix a couple of errors in aha_create_ccbs():
- Don't ever let the number of CCBs be creater than AHA_CCB_MAX.
- Fix a fencepost that caused the last CCB allocated to never be put
  on the freelist.
1997-10-28 18:40:07 +00:00
bouyer 917389821c Changes to the probe and attach routine:
- at end of attach, explicitely select an existing drive. This fixes hangs
  some users reported (such as the one reported in port-i386/4247).
- Some atapi cdrom drives (e.g. Nec 24x) don't enables their registers before
  a controller reset is issued. The controller probe routine is changed as
  follow: issue a controller reset. If fail, test atapi signature on slave.
  If fail, wait 5s and retry a reset. If the second reset fail, return(0).
  If the first reset succeed, test presence of a master drive:
  atapi signature, and if this fail RO/RW registers test. If no master, test
  atapi signature on slave. If no slave, return 0.
1997-10-27 14:09:23 +00:00
pk 233c534958 Apply patch from Michael L. Hitch (PR#4318):
"A sequence step of 0 after a select with ATN can be a selection
 timeout, or it can also indicate the target did not respond with
 a message out phase.  The latter will occur on very old SCSI
 devices which do not respond to the ATN signal and go directly to
 the command phase".
1997-10-26 16:45:24 +00:00
fvdl 37e4eea4a4 Make 16650 probe optional on COM16650 define. It breaks on some
multiport Startech chips.
1997-10-21 01:25:41 +00:00
is 4a8fcf4aed Dont waste time in delay()s... else we won't finish in time to get our first
lowwatermark interupt for AUDIO_BYPASS data.
1997-10-20 19:07:59 +00:00
is b266316bea Fix pasto in symbolic name for string 1997-10-19 20:46:32 +00:00
christos 7507e6a5e9 Make this compile again. 1997-10-19 20:34:54 +00:00
is eb1b51cac1 tav_write_word -> tav_write_short 1997-10-19 20:21:49 +00:00
mycroft 1bb75c1efa Initialize the IER to 0 in com_attach_subr(). 1997-10-19 20:01:08 +00:00
fvdl ab36c13e4b Add 16650 hardware flowcontrol support. Basically PR 3844 from
Dave Huang <khym@bga.com>, with added check for broken early versions
of the 16650, taken from the Linux driver.

This should be extended to use, for example, higher trigger levels for
the bigger 16650 FIFO, and its capability for using a smaller divisor
and thus higher speeds. But this patch is very useful for 16650 users
already.
1997-10-19 14:26:25 +00:00
fvdl 961e39030d Add 16650 hardware flowcontrol support. Basically PR 3844 from
Dave Huang <khym@bga.com>, with added check for broken early versions
of the 16650, taken from the Linux driver.

This should be extended to use, for example, higher trigger levels for
the bigger 16650 FIFO, and its capability for using a smaller divisor
and thus higher speeds. But this patch is very useful for 16650 users
already.
1997-10-19 14:26:16 +00:00
enami fe0c14e139 Fix typo; hang binary operator at the end of previous line. 1997-10-19 14:10:11 +00:00
enami 5c1050e68f Include locators.h and use symbolic name comes from it. 1997-10-19 14:07:19 +00:00
explorer ebf03fd00c Add hooks for entropy collection. Right now, you must place
options RND_COM
in your kernel config file (along with the
	pseudo-device rnd
line) to enable this.  If results are positive, I will make this enabled
by default.
1997-10-19 11:45:33 +00:00
augustss e7029fc0da Make the audio API (almost) SunOS compatible.
The changes is to allow some limited mixer manipulation through
the audio device (instead of the mixer device).
This rendered 4 methods in audio_hw_if unused so garbage collect these.
1997-10-19 07:41:33 +00:00
is 1083b2ab71 Use long long in bitrate tolerance computation, else we'll overflow for
higher than standard-pc chip clocks.
1997-10-18 23:11:45 +00:00
jonathan 8bb9a1ccb2 Protect #ifdef DEBUG printfs with a run-time teson a patchable variable
(epdebug), as per Jason Thorpe's comments.
1997-10-18 00:15:02 +00:00
gwr b4e346f85d Rename cs_pad to cs_spare1 (for future use by Bill Studenmund). 1997-10-17 23:02:37 +00:00
gwr b69fc1a7cf Move the ttychars() call below the if-not-raw block.
(from Bill Studenmund)
1997-10-17 22:55:09 +00:00
enami 801620373d Define width_names[] only when PCICDEBUG is defined. 1997-10-17 09:37:12 +00:00
matt 54a45a47c8 EN1207 definitions 1997-10-17 09:26:58 +00:00
enami 4eef29b72f No need to cast a generic pointer. 1997-10-17 07:59:39 +00:00
is 11446b9b6e TMS320AV110 (mpeg layer 2 decoder chip) and ZBUS Melody board, which uses it.
No optionboards yet for Melody, only audio driver.
MPEG data types for audio.c
1997-10-16 23:58:10 +00:00
thorpej 5345a8bef9 Pull marc-pcmcia branch down to trunk. 1997-10-16 23:21:46 +00:00