Commit Graph

158 Commits

Author SHA1 Message Date
mycroft f487bc59aa Nuke bogus extra variable, too. 1999-03-29 13:40:41 +00:00
mycroft 85ad0d175c Fix bogons in previous change:
* The fact that IIR_NOPEND was not set on entry does *not* mean that no
  transmission was in progress.  Besides, we don't want to throw away receive
  interrupts either.
* In the !clearirq case, we didn't splx().
1999-03-29 13:21:15 +00:00
ross 6a228da053 Mods to com_common_putc(). When doing kprintf() or kgdb output:
1. don't clear the irq unless it was clear before transmitting
2. also do various bus_space_barrier() ops
Stops console from freezing when kprintf interrupts tty driver output.
1999-03-29 10:01:39 +00:00
explorer 3ebb419571 Update to slightly altered rnd_attach_source() api 1999-02-28 17:08:05 +00:00
drochner 525932e022 make the probe stricter to catch cases where the chipset doesn't pull
the data lines to "high" for not-existant devices
1999-02-12 12:45:48 +00:00
mycroft 0c7afe477d Separate the tiocm code into functions, like the z8530 code, and fix the same
DTR bug.
1999-02-03 23:57:27 +00:00
mycroft 9be96dda95 Fix an inconsistency: PPS was turned off on first open, but the mode may have
still claimed it was enabled.
1999-02-03 23:22:11 +00:00
mycroft 535f59cc81 Slight redux in PPS code. 1999-02-03 23:20:33 +00:00
drochner a7f50b8178 Debugger() -> console_debugger() to honour the ddb_fromconsole sysctl 1999-01-26 17:08:37 +00:00
thorpej 3e086bd63d Add support for detaching "com" instances. 1998-11-18 23:58:52 +00:00
is 95807e512a Garbage collect unused 3rd parameter to comprobe1(). 1998-09-16 21:30:58 +00:00
thorpej d1fba4e7e5 Don't use M_WAITOK to allocate the ring buffer; we could be in interrupt
context.  Reported by Lennart Augustsson.
1998-09-09 05:17:53 +00:00
mycroft d07b3639a4 Assign my copyrights to TNF. 1998-08-15 17:47:15 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
jonathan bbc2d1522a PPS support from April, reworked and extended to match the PPS-API
Internet Draft (draft-mogul-pps-api-02.txt).
1998-06-10 12:06:23 +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
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
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 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 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
enami 9d13bc6e0e Restore system priority level before return from comopen(). 1998-02-06 03:25:34 +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 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
thorpej 095c4c092d Adjust for config changes. 1998-01-12 09:23:08 +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
mycroft 13e9b38191 Slight optimization in soft input routine. 1997-11-03 08:20:35 +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
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 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
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
fvdl 37e4eea4a4 Make 16650 probe optional on COM16650 define. It breaks on some
multiport Startech chips.
1997-10-21 01:25:41 +00:00
mycroft 1bb75c1efa Initialize the IER to 0 in com_attach_subr(). 1997-10-19 20:01:08 +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
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
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
thorpej 1ccf0984c2 "com" driver files copied by repository copy magick to sys/dev/ic, and
adjusted for their new home.
1997-10-16 00:01:00 +00:00
mikel 20cf0e1cc1 fix missing com_kgdb_attached() argdecl, from Michael C. Richardson in PR 4196 1997-10-03 06:11:35 +00:00
christos a2512e8ec5 Add TIOCM{BI{C,S},{S,G}ET} from revision 1.98. As Charles says these
interfaces are slightly broken and should be obsoleted, but some programs
are using them and also they are useful for debugging.
1997-09-30 21:51:43 +00:00
enami 82625dc61e Cosmetic Changes; make coding style closer to other part of this file.
(This version is identical with version 1.109 except whitespace changes.)
1997-09-19 01:17:37 +00:00
is 718fb97e11 Support for the upcoming NetBSD/Amiga Hypercom driver family:
* support chip clocks != COM_FREQ, by introducing sc_frequency (for the
  mainline code) and adding a frequency parameter right after the rate
  parameter to comcnattach() and com_kgdb_attach().
- Make com_isa and com_multi initialize sc_frequency to COM_FREQ.
- Make i386/machdep.c and alpha/dec_xxx.c call com*attach() with the freq.
  parameter.
* supio_attach_args get two more fields: a sc_ipl and a sc_arg, both ints.
- com_supio uses the first for interupt establishment (all childs will, as
  soon as they exist) and the 2nd for sc_frequency.
- drsupio passes sc_ipl alway as 5, and for the "com"s, sc_arg as 16*115200
- hyper will pass sc_ipl as 6, and sc_arg as 16 * 460800
1997-09-16 20:34:23 +00:00