Saves about 280 butes of source per driver, 56 bytes in object size
and another 56 bytes moves from data to bss.
No functional change intended nor expected.
GENERIC should be about one k smaller now :-)
#ifdef DIAGNOSTIC case, and a warning only otherwise.
People who want them to break into the debugger can always set the
breakpoint explicitly. The existing behaviour was a misfeature from
the beginning, in the (wrong) assumption that the SCSI controller must
always be of essential importance to the entire system.
make it more intelligible, improve the partially bogus locking, and
allow for a ``quick re-acquiration'' from a pending release of timer 0
that happened ``recently'', so it was not processed yet by clkintr().
This latter modification now finally allows to play XBoing over
pcaudio without losing sounds or getting complaints. ;-) (XBoing
opens/writes/closes the sound device all over the day.)
Correct locking for sysbeep().
Extensively (:-) reviewed by: bde
of this patch, which had not actually been reviewed by Joerg or Paul!
(I'll better stop committing files after midnight ...)
I'm now commiting the latest code, which has been reported to work.
Minor correction to the previous commit message for this file:
The first PCI Lance in a system will get a name of lnc1, the second
will be known as lnc2 and so on. An arbitrary number of cards is
supported in a system ...
before attaching. Without this fix, 3c579(EISA) never make
any H/W inturrupt.
Reviewed by: "Justin T. Gibbs" <gibbs@freefall.freebsd.org>, nao@sbl.cl.nec.co.jp and owner-current on mailing list ;-)
Submitted by: amurai@spec.co.jp, nao@sbl.cl.nec.co.jp
This code applies to several systems with integrated Ethernet
chip, for example from HP or Compaq. It should also support
PCI Ethernet cards based on the AMD PCI Lance chip.
This code has been reviewed (visually) by Paul Richards and
tested (using an ISA Lance board) by Joerg Wunsch.
Since the parameters to nearly each and every single function
had to be changed (generally from unit number to lnc_soft*),
there is some potential for buglets having crept in ...
BEWARE: If you had lnc0 configured to have the ISA probe find
your PCI Lance, then it should now be found by the PCI probe,
and should be automatically configured as pci1 (!!! note the "1").
Reviewed by: paul, joerg
(author's explaination):
Bit 15 is the flag to request a transmit complete interrupt. The
driver was apparently written to minimize interrupts, and if not for a
3-COM design quirk, everything would be just ducky.
Prior to loading the outbound packet into the FIFO, the driver checks
to see if there's enough space to contain the packet. If not, the
driver requests a transmit-available interrupt when there is
sufficient room. Unfortunately, the card is continuing to process the
prior FIFO, and by the time the driver sets the threshold for a
transmit available interrupt, the space is already available. When
this occurs, the 3COM card ignores the interrupt request, and the
driver is hung waiting for an interrupt that will never occur.
There's probably a more elegant solution, but requesting the transmit
complete interrupt was the easiest to implement. An alternative fix
might be to check free FIFO space again, after requesting the transmit
available interrupt, but I haven't bothered pursuing this. Since the
patch, my 3C590 (PCI, same FIFO interface as 3C509) has been rock
solid.
Submitted by: mevans@candle.com (Mike Evans)
based on the HD64570 chip. Both the 1 and 2 port cards is supported.
Line speeds of up to 2Mbps is possible. At this speed about 95% of the
bandwidth is usable with 486DX processors.
The standard FreeBSD sppp code is used for the link level layer. The
default protocol used is PPP. The Cisco HDLC protocol can be used by
adding "link2" to the ifconfig line in /etc/sysconfig or where ever
ifconfig is run.
At the moment only the X.21 interface is tested. The others may need
tweaks to the clock selection code.
Testing with the high frequency of 20000 Hz (to find problems) only found
the problem that this frequency is too high for slow i386's.
Disable interrupts while setting the timer frequency. This was unnecessary
before rev.1.57 and forgotten in rev.1.57. The critical (i8254) interrupts
are disabled in another way at boot time but not in the sysctl to change
the frequency.
via an ioctl (MOUSE_ACTION).
Fixed a couple of bugs (destructive cursor, uncut, jitter).
Now applications can use the mouse via the MOUSE_MODE ioctl, its
possible to have a signal sent on mouseevents, makeing an event loop
in the application take over mouseevents.
things tend to work better if you write the settings to the correct
register.. (*blush*). This subtle bug has been haunting me for ages, and
will solve a few problems that have been reported to me.
Also, take a shot at fixing the serial BREAK processing, what was there
before never really worked. (There is a PR on this I think)
Real support for a Textmode mousecursor, works by reprogramming the
charset. Together with this support for cut&paste in text mode.
To use it a userland daemon is needed (moused), which provides
the interface to the various mice protokols.
Bug fixes here and there, all known PR's closed by this update.
is only used by the icu support modules and by a few drivers that know
too much about the icu (most only use it to convert `n' to `IRQn'). isa.h
is only used by ioconf.c and by a few drivers that know too much about
isa addresses (a few have to, because config is deficient).
to match (pc98/random_machdep.c probably requires a similar change). This
is a problem area for the PC98 merge - all PC98 ifdefs in <machine/*.h> are
kludges to work around incorrect layering.
Original version by John Hay.
Simplified timestamp code by reading the time exactly when necessary.
This may slow down the interrupt handler with extra calls to microtime(),
but only in bad configurations - the input fifo should normally be
disabled if timestamps on input are being used, since otherwise the
timestamp won't be precisely associated with any particular input event.
The interrupt handler remains slowed down by one test and branch for
each input (and now DCD change) event - avoiding this is not practical
yet.
The simplifications also fixed:
- timestamps for input sometimes being clobbered by output and modem
status interrupts.
- valid timestamps not being available unless the port is configured with
vector siointrts. siointrts no longer exists.
- compiler warnings about siointr* in some configurations.
Simplified timestamp and probe code by depending on recent changes in
microtime() and DELAY() to preserve the interrupt enable flag.
enable flag instead of enable_intr() to restore it to its usual state.
getit() is only called from DELAY() so there is no point in optimising
its speed (this wasn't so clear when it was extern), and using
enable_intr() made it inconvenient to call DELAY() from probes that need
to run with interrupts disabled.
parameters to printf() using the "D" format. (Why this even worked on
my box during testing I don't know, but as soon as I powered it on/off
it quite working.)
using the existing files using the existing PCCARD support. Now that
this is in place I would like to fixup the PCCARD hooks and remove the
if_zp driver. At this point, we support everything we used to support
*AND MORE* with the PCCARD code.
Submitted by: Naoki Hamada <nao@sbl.cl.nec.co.jp> (via the Nomad release)
[ This works on both my 3C589B and 3C589C ]
My 3C509B-COMBO works fine with the following patch. Switching between
UTP and BNC is quite easy. (Just type 'ifconfig ep0 link1 -link2' or 'ifconifg
ep0 link2 -link1'.)
[ I tested this with the additional PC-CARD patches and it works on both
connectors on my 3C589B and 3C589C ]
Reviewed by: nate
Submitted by: Naoki Hamada <nao@sbl.cl.nec.co.jp>
All new code is "#ifdef PC98"ed so this should make no difference to
PC/AT (and its clones) users.
Ok'd by: core
Submitted by: FreeBSD(98) development team
sometimes already been released at the time pcaclose() is called, but
this is now prevented from deadlocking by checking for a running timer
at the start of pca_wait().
At least, i can now play xboing again with pcaudio, this used to hang
the entire system previously within a few seconds.
wdp_fixedcyl) gives it directly. wdp_removedcyl is "reserved" except
in ancient ATA-1 drafts and shouldn't be added. This fixes PR 1288.
Changed some fields and comments in struct wdparams to match a less-
ancient ATA draft.
Fixed bit number for `rdy' in status string.