Commit Graph

2454 Commits

Author SHA1 Message Date
Bill Paul
727c88e9da Tweak the Macronix driver to hopefully make it more reliable:
- Change to the same transmit scheme as the PNIC driver.
- Dynamically set the cache alignment, and set burst size the same as
  the PNIC driver in mx_init().
- Enable 'store and forward' mode by default. This is the slowest option
  and it does reduce 100Mbps performance somewhat, but it's the most
  reliable setting I can find. I'm more interested in having the driver
  work reliably than trying to squeeze the best performance out of it.
  The reason I'm doing this is that on *some* systems you may see a lot
  of transmit underruns (which I can't explain: these are *fast* test
  systems) and these errors seem to cause unusual and decidedly
  non-tulip-like behavior. In normal 10Mbps mode, performance is fine
  (you can easily saturate a 10Mbps link).

Also tweak some of the other drivers:

- Increase the size of the TX ring for the Winbond, ASIX, VIA Rhine
  and PNIC drivers.
- Set a larger value for ifq_maxlen in the ThunderLAN driver. The setting
  of TL_TX_LIST_CNT - 1 is too low (the ThunderLAN driver only allocates
  20 transmit descriptors, and I don't want to fiddle with that now
  because the ThunderLAN's descriptor structure is an oddball size
  compared to the others).
1999-05-06 15:32:52 +00:00
Bill Paul
c49713fde1 Fix some byte ordering problems; I was storing string lengths wrong,
which was causing wicontrol to crash when reading string parameters
from the WaveLAN.

Patches submitted by: Brad Karp <karp@eecs.harvard.edu>
1999-05-06 03:34:02 +00:00
Bill Paul
31a08ab08e Add device driver support for the Lucent WaveLAN/IEEE 802.11 PCMCIA
adapter (and some workalikes). Also add man pages and a wicontrol
utility to manipulate some of the card parameters.

This driver was written using information gleaned from the Lucent HCF Light
library, though it does not use any of the HCF Light code itself, mainly
because it's contaminated by the GPL (but also because it's pretty gross).
The HCF Light lacks certain featurs from the full (but proprietary) HCF
library, including 802.11 frame encapsulation support, however it has
just enough register information about the Hermes chip to allow someone
with enough spare time and energy to implement a proper driver. (I would
have prefered getting my hands on the Hermes manual, but that's proprietary
too. For those who are wondering, the Linux driver uses the proprietary
HCF library, but it's provided in object code form only.)

Note that I do not have access to a WavePOINT access point, so I have
only been able to test ad-hoc mode. The wicontrol utility can turn on
BSS mode, but I don't know for certain that the NIC will associate with
an access point correctly. Testers are encouraged to send their results
to me so that I can find out if I screwed up or not.
1999-05-05 07:37:11 +00:00
Bill Paul
113a394c06 Add device driver support for the Lucent WaveLAN/IEEE 802.11 wireless
network adapters. These are all PCMCIA devices (the ISA version is a
PCMCIA to ISA bridge with a PCMCIA card plugged into it). Also add a
wicontrol utility to read and write some of the card's parameters.

Note: I do not have access to a WavePOINT access point, so I have only
been able to test this driver in ad-hoc (point to point) mode. The
wicontrol utility allows programming the desired service set name (SSID)
and enabling BSS mode, but I can't tell for sure if it works (I know the
card switches modes, but I can't verify that it joins a service set
correctly).

This driver was written using information gleaned from the Lucent HCF Light
library, which is an API library designed to simplify driver development
for devices based on the Lucent Hermes chip. Unfortunately, the HCF Light
is missing certain features (like 802.11 frame encapsulation!) which are
available only in the proprietary complete HCF code, which is not available
to the public. This driver uses none of the HCF Light code: it's very ugly
and contaminated by the GPL. IP and ARP packets are encapsulated as 802.11
frames, everything else is encapsulated as 802.3.

(It would be easier to just get the Hermes programming manual, but that's
not publically available either. For those who are wondering, the Linux
WaveLAN/IEEE driver uses the proprietary HCF code, which is provided in
object code form only. So much for supporting open source sofware.)

Multicast filter support is implemented, however it appears that the
filter doesn't work: programming in one IP mutlicast group enables them
all.
1999-05-05 07:11:38 +00:00
Warner Losh
ed7b35c79d Remove bt_softcs. It is no longer used. 1999-05-05 06:45:10 +00:00
KATO Takenori
8d0e6b1696 Replace misused FE_D6_BBW with FE_D6_SBW.
Submitted by:	chi@bd.mbn.or.jp (Chiharu Shibata)
Reminded by:	Takahashi Yoshihiro <nyan@dd.catv.ne.jp>
1999-05-04 12:59:59 +00:00
Jordan K. Hubbard
d4fb5cb1e8 Add missing copyright. 1999-05-04 12:58:56 +00:00
Jordan K. Hubbard
cc611a43c2 Add "fire" screen saver.
Submitted by:	Brad Forschinger <retch@flag.blackened.net>
1999-05-04 12:23:32 +00:00
Nick Hibma
139559717b Descriptors can be delivered with short transfers. 1999-05-03 23:21:28 +00:00
Nick Hibma
a13cdf0c74 Add a load of definitions 1999-05-03 23:20:37 +00:00
Nick Hibma
42be55493c Remove disconnected method 1999-05-03 23:19:55 +00:00
Nick Hibma
561a70bd94 Replace UE_GET_IN with UE_GET_DIR
Remove freeind of description. Is done by subr_bus.c.
1999-05-03 23:19:32 +00:00
Nick Hibma
0bf8525354 Replace UE_GET_IN with UE_GET_DIR 1999-05-03 23:18:11 +00:00
Nick Hibma
f99abb25a6 Change '#if UKBD_DEBUG' to '#ifdef...'
Remove freeing of description on detach. Is done by subr_bus.c.
1999-05-03 23:16:05 +00:00
Nick Hibma
6fed05b974 Remove double removal of children of a hub. (remove disconnected method)
This was introduced when merging a patch for the newbus people.

And change the debugging flag from USB_DEBUG to UHUB_DEBUG.
1999-05-03 23:14:46 +00:00
Nick Hibma
808844911f Add URL to HID spec 1999-05-03 23:13:14 +00:00
Nick Hibma
f018dbb4d9 Clean up parts of struct shared between NetBSD and FreeBSD 1999-05-03 23:12:49 +00:00
Nick Hibma
7b3849971a Clean up debugging output 1999-05-03 23:11:41 +00:00
Bill Paul
6263933e7a Upgrade firmware images Alteon's latest release (12.3.10). This fixes a
bug in the stats accounting (nicSendBDs counter was bogus when TX ring was
configured to be in host memory).

Update if_tireg.h to look for new firmware fix level.
1999-05-03 17:44:53 +00:00
Doug Rabson
84b399de51 Changes to support diskless booting on the alpha:
* Make the network code in the bootstrap more chatty (helps debugging)
* Add nfs root stuff to cpu_rootconf(). I also added a check to make sure
  it really was netbooting which allows the use of the same kernel for local
  and network boots.
* Tweak the de driver so that it takes the speed setting from the console
  for the alpha (some PWSs have broken de chipsets). This is the same
  behaviour as NetBSD/alpha.

Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
1999-05-03 09:36:29 +00:00
Brian Somers
67fb73e4b4 Add an additional probe, hopefully allowing me to distinguish
between the PC/Xi and PC/Xem boards.  Now all I need is for
someone with a PC/Xem to tell me what the probe says....
1999-05-03 09:32:31 +00:00
Peter Wemm
87f0e52bec Set ifq_maxlen to default value. (This should be safe, it's not clear
if there's benefit to setting it to the exact amount, it appears the
card has 32K of ram, and 8K is used for outgoing packets, that would
be something like a queue limit of 5 packets.  I don't think that's
useful...)

PR:		11456
Submitted by:	Stephen J. Roznowski <sjr@home.net>
1999-05-02 22:01:24 +00:00
Nick Hibma
b7b075a2a2 Add driver for the Iomega Zip 100 drive. 1999-05-02 21:54:05 +00:00
Peter Wemm
f79cfdd928 Operator precedence bug
PR:		11411
Submitted by:	Christopher Peterson <cpeterso@cs.washington.edu>
1999-05-02 21:51:17 +00:00
Peter Wemm
025fd878ff Operator precedence bug
PR:		11410
Submitted by:	Christopher Peterson <cpeterso@cs.washington.edu>
1999-05-02 21:41:20 +00:00
Peter Wemm
6ecf0f85fc s/size == 0;/size = 0;/
PR:		11409
Submitted by:	Christopher Peterson <cpeterso@cs.washington.edu>
1999-05-02 21:39:52 +00:00
Peter Wemm
dacc95aa33 Make this compile with CY_PCI_FASTINTR again. 1999-05-02 20:42:13 +00:00
Peter Wemm
edfdec1910 Disable FDC_YE - it's broken at present (breaking LINT) and awaiting some
pccard fixups.
Make DEVFS compile, it breaks LINT.
1999-05-02 20:38:08 +00:00
Peter Wemm
741640aac6 These two drivers have not been converted for newbus eisa yet. 1999-05-02 20:35:44 +00:00
Greg Lehey
417f97c954 Get extern declarations right.
Change DEBUG_EXITFREE to DEBUG_WARNINGS.
1999-05-02 07:59:04 +00:00
Greg Lehey
a2d8e114f4 close_drive:
If a drive has gone down and has dirty buffers associated with it,
  we'll get a panic when we try to vn_close it.  Check for this
  situation and discard any buffers; they're toast anyway.

  Only complain about usage count if DEBUG_WARNINGS is set.

check_drive:
  Change parameter name from drivename to devicename.

  Get the check for a referenced drive right.

  If the partition isn't a vinum drive, set the last error to ENODEV.

vinum_scandisk:
  Change parameter name from drivename [] to devicename [].
1999-05-02 07:51:20 +00:00
Greg Lehey
3041dc10ba vinum_mallocinfo:
Set the entry number correctly.
1999-05-02 07:50:38 +00:00
Greg Lehey
b3a717f1a8 set_sd_state:
Don't change state from reborn to reborn.  This caused a silly
  warning message.
1999-05-02 07:50:09 +00:00
Greg Lehey
a894c77db1 sizespec:
Implement scaling letter 's' to mean 'sectors' (of 512 bytes).
1999-05-02 07:49:13 +00:00
Greg Lehey
9f8115fd0c Remove some dead variables.
Change DEBUG_EXITFREE to DEBUG_WARNINGS.
1999-05-02 07:48:00 +00:00
Nick Hibma
5801da881d Oops. Introduced a typo in one of previous commits. 1999-05-01 23:59:09 +00:00
Nick Hibma
4933978a5f Clean up uhci_intr. Avoid acknowledging mutliple interrupts with
multiple writes.
1999-05-01 23:46:02 +00:00
Nick Hibma
e017ab4741 Correct maximum error count in TD initialisation for transfer from 2 to 3. 1999-05-01 23:38:46 +00:00
Nick Hibma
146a3db349 Clean up debugging output, rename printf to DPRINTF and set some
debugging levels to more sensible values.
1999-05-01 23:35:41 +00:00
Nick Hibma
1a7cfd07a3 Move the disabling of interrupts right before the allocation of the
resource. Avoids useless interrupts occurring between the allocation
of the interrupt resource and the final initialisation of the
kernel. Cause of these interrupts is unknown (a resuming device?).
1999-05-01 23:30:09 +00:00
Nick Hibma
9deb189ddc Z direction was upside down.
Submitted By: MAEKAWA Masahide
1999-05-01 13:17:47 +00:00
Nick Hibma
04f5d6d7a2 Added vendor OmniVision and camera 1999-05-01 13:16:35 +00:00
Roger Hardiman
541157e3ac My last commit accidentally undid the changes made in rev 1.68
regarding COMPAT_PCI_DRIVER. Put them back.
1999-04-30 11:16:30 +00:00
Bill Paul
737267b891 Add a test to ti_encap() to try and prevent the transmit producer index
from ever catching up to the transmit consumer index. We can't let this
happen because ti_txeof() depends on the assumption that producer == consumer
means the ring is empty, and producer != consumer means the ring has some
number of active descriptors in it.
1999-04-29 16:27:51 +00:00
Roger Hardiman
f677e15fe8 Added initial code for VBI capture based on work by
Hiroki Mori <mori@infocity.co.jp> and reworked by myself.
This allows software decoding of teletext, intercast and
subtitles via /dev/vbi.
1999-04-29 10:15:55 +00:00
Roger Hardiman
26da6e9453 Add support for VBI capture from /dev/vbi.
This will allow software teletext/intercast/subtitles decoding
while watching a TV station.

Based on code from Hiroki Mori <mori@infocity.co.jp> but reworked by
myself.
1999-04-29 10:01:28 +00:00
Roger Hardiman
ea2052d226 Added new cards: NEC PK-UG-X017 and I/O DATA GV-BCTV2/PCI
Added new tuner: ALPS_TSBH1 (plus FM Radio for ALPS_TSCH5)
Added support for BCTV audio mux.

Submitted by Hiroki Mori <mori@infocity.co.jp>
1999-04-29 09:57:47 +00:00
Roger Hardiman
c8f810a76e Fix crashes caused by rows=0 or columns=0.
Add new #ifdef. By defining BKTR_NO_MSP_RESET you can prevent the
MSP34xx being reset by the bt848 driver. This is handy
if you pre-initialise the MSP34xx stereo audio chip in another
operating system first (eg MS Windows).
Suggested by:  Randal Hopper<aa8vb@ipass.net>
Suggested by:  Yuri Gindin <yuri@xpert.com>
1999-04-29 05:48:32 +00:00
Dmitrij Tejblum
604359cf9b s/static foo_devsw_installed = 0;/static int foo_devsw_installed;/.
(Edited automatically)
1999-04-28 10:54:24 +00:00
Poul-Henning Kamp
f711d546d2 Suser() simplification:
1:
  s/suser/suser_xxx/

2:
  Add new function: suser(struct proc *), prototyped in <sys/proc.h>.

3:
  s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/

The remaining suser_xxx() calls will be scrutinized and dealt with
later.

There may be some unneeded #include <sys/cred.h>, but they are left
as an exercise for Bruce.

More changes to the suser() API will come along with the "jail" code.
1999-04-27 11:18:52 +00:00
Kenneth D. Merry
5007fcb30f Fix from Justin for transfer negotiations for targets up to target ID 7. 1999-04-26 22:03:44 +00:00
Poul-Henning Kamp
477f9db33d Allow multiple opens. 1999-04-25 08:58:10 +00:00
Bill Fumerola
98e32b1820 Add $Id: $ 1999-04-24 20:26:12 +00:00
Peter Wemm
96b3554e5c Use COMPAT_PCI_DRIVER() for registration if it exists. This shouldn't
hurt the driver portability to 3.x too much for where drivers are shared.
1999-04-24 20:17:05 +00:00
Peter Wemm
46f40af052 Replace the pcidevice_set linker set based configuration mechanism for old
style pci drivers with a simple one-line change to use a module that
registers itself under new-bus and should in theory enable just about all
of the pci drivers to be loadable (kldload and loader(8)) but without
having the impact of converting the APIs yet.

This also fixes the problem of having undefined variables when only
new-style pci drivers are present.
1999-04-24 19:59:20 +00:00
Dmitrij Tejblum
b079102dc5 Modify the non-i386 version of disable_intr() and enable_intr() so that they
don't produce a warning on every use.
1999-04-24 10:41:21 +00:00
Peter Wemm
8e51a153aa Revert part of 1.9; we don't need to reset the port after release now that
the isa bus doesn't clear the hints at that point.
1999-04-24 06:48:27 +00:00
Peter Wemm
0483b5b696 Typo, use SYS_RES_IRQ when releasing the irq resource, not SYS_RES_IOPORT. 1999-04-24 06:46:10 +00:00
Justin T. Gibbs
1d28309371 ahc_pci.c:
Convert to new bus and bus dma.
	Use latest PCI API.

bt_pci.c:
	Fix a few bugs in how resourses are released left over from
	when this driver was converted to new bus.
1999-04-23 23:30:22 +00:00
Justin T. Gibbs
74ed7047aa staticize. 1999-04-23 23:29:23 +00:00
Justin T. Gibbs
6d6f090033 ahb.c:
Synchronize malloc types for our softc.

ahc_eisa.c:
	Sync to aic7xxx driver bus dma and new bus changes.
1999-04-23 23:29:00 +00:00
Justin T. Gibbs
047a1fb181 bt.c:
Simplify some inline functions.
btreg.h:
	Correct a comment.
1999-04-23 23:28:20 +00:00
Justin T. Gibbs
00fa2b1fa7 Complete conversion to bus dma. This driver now works on the alpha.
aicasm_symbol.c:
	Correct an unaligned access problem.  You can't rely on DB to
	store your data in an aligned fashion.
1999-04-23 23:27:31 +00:00
Justin T. Gibbs
b5aedf623a Kill a compiler warning. 1999-04-23 23:26:10 +00:00
David Nugent
a09d51d0a5 Fix so that this driver works again when compiled with EGCS (which
apparently has a much better optimiser, requiring 'volatile' memory
to be declared as such).
1999-04-22 15:19:37 +00:00
Peter Wemm
9d0e5f96b0 Return the port size from the probe.
"ppc0 at port 0x378 irq 7 drq 3 on isa0" becomes
"ppc0 at port 0x378-0x37f irq 7 drq 3 on isa0"
1999-04-22 13:10:43 +00:00
Søren Schmidt
3bbf78853f Fix the promise_intr function, it should use 'lun' not 'unit'
to get the offset into ata_devices.
1999-04-22 08:07:44 +00:00
Nick Hibma
63b6d959ae Forgot one.
Original log message:

Remove feature creep: STAILQ_REMOVE_HEAD_UNTIL added it for convenience
but we can do without it.

Obtained from:	Peter Wemm
1999-04-21 12:08:07 +00:00
Peter Wemm
ab64f2390c Merge a diff that Soren sent me to resolve some lun / unit problems.
While here, also fix my additions to use naming that's more consistant
with Sorens.  (ie: s/softc/scp/)
1999-04-21 10:58:07 +00:00
Peter Wemm
54a8c69347 Stage 1 of a cleanup of the i386 interrupt registration mechanism.
Interrupts under the new scheme are managed by the i386 nexus with the
awareness of the resource manager.  There is further room for optimizing
the interfaces still.  All the users of register_intr()/intr_create()
should be gone, with the exception of pcic and i386/isa/clock.c.
1999-04-21 07:26:30 +00:00
Nick Hibma
38a3a046fc Remove feature creep: STAILQ_REMOVE_HEAD_UNTIL added it for convenience
but we can do without it.
1999-04-20 22:37:18 +00:00
Nick Hibma
42b8d61161 1) Change printf's into DPRINTF.
2) rename variables to be more conclusive.
3) fix a problem in uhci_ii_done. Avoid collecting all the status's of the
TD's, we only need to one from the last inactive one.
4) Change the errorcount from 2 to 3 (see UHCI spec.).
1999-04-20 21:35:27 +00:00
Nick Hibma
272bc74e12 Add defines for Mass Storage Bulk-Only and COmmun. Class devices. 1999-04-20 21:25:29 +00:00
Nick Hibma
157ddd9539 Enclose .hcidebug in '#ifdef N.HCI' 1999-04-20 21:10:43 +00:00
Doug Rabson
c2974efdbe Make bt driver work on eisa again.
Submitted by: Matthew N. Dodd <winter@jurai.net>
1999-04-20 09:53:05 +00:00
Justin T. Gibbs
b19a4814fc Preserve termination settings across the card reset in our shutdown hook. 1999-04-19 21:28:15 +00:00
Justin T. Gibbs
d72b216c5b Handle the case when auto sense retrieval fails.
Give automatic request sense operations a 5 second timeout.
1999-04-19 21:27:36 +00:00
Nick Hibma
49ae25e811 1) Add Rockfire vendor and gamepad product (MAEKAWA Masahide)
2) Sort the list again (Roger Hardiman)
3) Reinstate a piece of code to look for a name for a device
   if none is found in the device itself.
1999-04-19 20:25:18 +00:00
Peter Wemm
5f5a2519b4 Fix a braino from last commit. 1999-04-19 14:01:42 +00:00
Peter Wemm
896de22812 GC some now unused (and #if 0) code. 1999-04-19 13:34:25 +00:00
Peter Wemm
e51d99dc81 EISA can (or will) be a child of the i386 nexus on non-PCI systems. 1999-04-19 07:58:34 +00:00
Peter Wemm
bed56f7f4d Set the bus description for EISA, like it is for ISA. 1999-04-19 06:57:33 +00:00
Søren Schmidt
f1cb6ca392 Update to use the new-bus framework. No functional changes.
Mostly done by Doug Rabson, minor fixes by me.
1999-04-18 20:48:15 +00:00
Peter Wemm
0f6bc47029 Make the bt isa driver work..
- fix cut/paste problem. :-)
- don't forget to call isa_dmacascade()
- reset the port after we release resources.

That last one is a trap to watch out for..  The isa bus driver uses the
same port/irq/mem/etc variables for the initial probe hints as it does
for allocation/deallocation tracking.  Releasing a resource clears the
variable and then you loose the hint during attach.. (ouch!)
1999-04-18 19:08:28 +00:00
Peter Wemm
d6a592e099 Check bus_setup_intr() as a seatbelt... 1999-04-18 19:03:50 +00:00
Peter Wemm
a49a3d4433 Implement an EISA new-bus framework. The old driver probe mechanism
had a quirk that made a shim rather hard to implement properly and it was
just easier to convert the drivers in one go.  The changes to the
buslogic driver go beyond just this - the whole driver was new-bus'ed
including pci and isa.  I have only tested the EISA part of this so far.

Submitted by:	 Doug Rabson <dfr@nlsystems.com>
1999-04-18 15:50:35 +00:00
Peter Wemm
25f4337454 Merge revs 1.57 and 1.60 of i386/isa/psm.c 1999-04-18 15:12:11 +00:00
Peter Wemm
f3a865fb76 Merge missing changes from i386/isa/sioreg.h (PC98 related) 1999-04-18 14:37:47 +00:00
Peter Wemm
0dd2ac5462 Tidy up a few things left over from the conversion from i386/isa/sio.c.
Leave two #if 0'd notes about the way things used to be done for reference.
1999-04-18 14:35:28 +00:00
Doug Rabson
e2117e478b Register sio interrupts as fast (fixing some silo overflow messages). 1999-04-18 14:11:01 +00:00
Paul Richards
3a129cf3d9 Set ifq_maxlen to IFQ_MAXLEN 1999-04-18 01:49:16 +00:00
Paul Richards
0fde788552 Set ifq_maxlen to number of transmit descriptors. 1999-04-18 01:37:19 +00:00
Paul Richards
195f63e808 The changes to vm_page.c have broken the assumption that mallocing
early will result in memory below 16M so now we need to explicitly use
contigmalloc to get low physical memory.
1999-04-18 01:03:46 +00:00
Nick Hibma
921a038ad5 UHCI_DEBUG should of course be OHCI_DEBUG
Reported by: MAEKAWA Masahide <bishop@rr.iij4u.or.jp>
1999-04-17 21:48:03 +00:00
Peter Wemm
e91896117b Well folks, this is it - The second stage of the removal for build support
for LKM's..
1999-04-17 08:36:07 +00:00
Greg Lehey
cbeab55980 free_vinum: clear up a warning message. 1999-04-17 04:15:50 +00:00
Peter Wemm
007e69315a Merge up to rev 1.234 (nice revision number!) of i386/isa/sio.c. 1999-04-17 01:02:27 +00:00
Peter Wemm
c976cd3849 Merge up to rev 1.226 of i386/isa/sio.c 1999-04-17 00:37:01 +00:00
Peter Wemm
c2c75d780e As a temporary anti-foot-shooting measure, don't let the user attach
the atkbd device to isa, as was in the old (and 3.x) GENERIC config.
1999-04-16 23:39:15 +00:00
Peter Wemm
6182fdbda8 Bring the 'new-bus' to the i386. This extensively changes the way the
i386 platform boots, it is no longer ISA-centric, and is fully dynamic.
Most old drivers compile and run without modification via 'compatability
shims' to enable a smoother transition.  eisa, isapnp and pccard* are
not yet using the new resource manager.  Once fully converted, all drivers
will be loadable, including PCI and ISA.

(Some other changes appear to have snuck in, including a port of Soren's
 ATA driver to the Alpha.  Soren, back this out if you need to.)

This is a checkpoint of work-in-progress, but is quite functional.

The bulk of the work was done over the last few years by Doug Rabson and
Garrett Wollman.

Approved by:	core
1999-04-16 21:22:55 +00:00