Commit Graph

6786 Commits

Author SHA1 Message Date
Josef Karthauser
ed98caba5f Merge from NetBSD:
uhci.c:	-r1.82
    uhcivar.h:	-r1.22

	date: 2000/01/26 10:04:39;  author: augustss;  state: Exp;
	Try to avoid accessing the HC if it is dead.  Suggested by mycroft.
2002-01-21 03:35:55 +00:00
Brooks Davis
01b8b9e983 Add support for Linksys WDT11 PCI adaptors.
Submitted by:	Eric Liedtke <eliedtke@apogeetelecom.com>
2002-01-21 00:59:59 +00:00
Josef Karthauser
a87935da55 Remove some unused code, in line with NetBSD's version. 2002-01-20 23:56:46 +00:00
Josef Karthauser
aeab0647e8 Merge from NetBSD:
revision 1.125
	date: 2000/09/23 21:00:10;  author: augustss;  state: Exp;  lines: +19 -3
	Avoid "bandwidth reclamation" for control transfers.  The kue device chokes
	on it.
2002-01-20 23:48:43 +00:00
Josef Karthauser
519461f843 Merge from NetBSD:
uhci.c:	-r1.124
    uhcireg.h:	-r1.13

	date: 2000/08/13 18:20:14;  author: augustss;  state: Exp;
	Fix race condition when unlinking xfers.  Thanks to IWAMOTO Toshihiro
	<iwamoto@sat.t.u-tokyo.ac.jp> for analyzing the problem and suggesting a fix.
	Fixes PR 10662.
2002-01-20 23:38:33 +00:00
Josef Karthauser
8e65c31988 Merge from NetBSD:
uhci.c:	-r1.123 (and a tiny bit of -r1.92)
    uhcivar.h:	-r1.32

	date: 2000/08/13 16:18:09;  author: augustss;  state: Exp;
	Implement what in Intel-speech is known as "bandwidth
	reclamation".  It means that we continously poll USB devices
	that have a pending transfer instead of polling just once
	every ms.  This speeds up some transfers at the expense of
	using more PCI bandwidth.
2002-01-20 20:12:25 +00:00
Josef Karthauser
a353e14e75 Merge from NetBSD:
uchireg.h:	-r1.12
    uchi.c:	-r1.121

    date: 2000/07/23 19:43:38;  author: augustss;  state: Exp;
    Be a little more explicit and careful about setting links in TDs and QHs.
2002-01-20 12:08:09 +00:00
Mike Smith
a245737c51 Add the 'iir' driver, for the Intel Integrated RAID controllers and
prior ICP Vortex models.  This driver was developed by Achim Leubner
of Intel (previously with ICP Vortex) and Boji Kannanthanam of Intel.

Submitted by:	"Kannanthanam, Boji T" <boji.t.kannanthanam@intel.com>
MFC after:	2 weeks
2002-01-20 08:51:08 +00:00
Orion Hodson
bd8e0aee01 Change ich_calibrate to busy wait on buffer fill level and use a more
likely looking rate calculation.

Install interrupt handler before calling ich_init as the initialization
occasionally generates spurious interrupts.

These changes are derived from cg's work in progress version of this
driver.
2002-01-18 18:44:41 +00:00
Joerg Wunsch
31f639ecdf Back out the hack from rev 1.13 that was done to initiate a bus rescan
at insert time.  When asking gibbs for approval for an MFC, this was
his reply:

1) It leaks memory if it can't allocate a path.

2) It defers allocation of aic->path until the call to scan the
   bus.  This means the path may be NULL when an interrupt occurs
   prior to the call to scan the bus (stray bus reset for instance),
   which will lead to a panic.

3) The driver in current doesn't recover from the failure to allocate
   aic->path.  The driver doesn't check during normal operation if
   the path is NULL, so again a panic will result.

4) aic_cam_rescan calls malloc with M_WAITOK.  aic_cam_rescan is called
   from attach where it isn't necessarily safe to sleep.

5) And most importantly, it co-opts the xpt_periph from the driver level.
   This was never part of the design (xpt_periph used to be static).  Making
   a call of this type may completely confuse the XPT if other XPT operations
   are ongoing.

In the long term, Justin and Warner agreed to implement solution where
CAM itself will initiate the bus rescan if a new bus is added.  For
the time being (and in particular in light of the upcoming 4.5
release), we now have camcontrol available on the boot floppy, and can
have pccardd initiate the rescan through it.
2002-01-17 20:34:58 +00:00
Bruce A. Mah
7f04152a10 Cosmetic fix: Not every machine that uses the sio driver has a BIOS.
Pointed out by:	imp
2002-01-17 20:05:47 +00:00
Warner Losh
ba24c8d971 While I'm not sure that I like the wording of the BIOS message in the
previous commit, it should always print due to lack of {} around the
second line in the if statement.  The message should likely say
something more like "There's no hardware responding at this IRQ.
Device not present (or disbaled)," but that is too long.  We generally
don't give elementary advise in device driver messages anyway.  Be
that as it may, the problem with it printing all the time should be
corrected.
2002-01-17 16:16:51 +00:00
Bruce A. Mah
ea9e3e8f9b Make sio device probe messages less misleading, for the case that
a port is either disabled or not responding.

PR:		33963
Submitted by:	Kevin Oberman <oberman@es.net>
MFC after:	2 weeks
2002-01-17 06:21:45 +00:00
Doug Ambrisko
45fe21a0a2 Forgot one part of the VLAN support for the dc(4) driver.
Pointed out by: Shin-ichi YOSHIMOTO <yosimoto@waishi.jp>
2002-01-16 21:34:11 +00:00
Doug Ambrisko
db40c1aef4 Add VLAN for the dc(4) driver (ie long frame). The patch is 2 parts.
One to notify the system that the MTU for VLAN can be 1500 so the vlan
will automatically be configured with a 1500 MTU the other is to ignore
the error case if the received frame is to long.

The frame size notification came from code in the SIS driver, and
the support for long frames derived from the NetBSD Tulip driver.

Tested on:	4 port D-Link adapter DFE-570TX 4 Intel 21143
		Netgear card with 82c169 PNIC 10/100BaseTX

Reviewed by:	ru (manpage), wpaul (not objected to), archie
Approved by:	imp
Obtained from:	NetBSD
2002-01-16 16:33:58 +00:00
Warner Losh
5d4be85d55 better namespsace of static functions 2002-01-15 20:41:39 +00:00
Warner Losh
2bef11b863 o Sync the device list with OLDCARD.
o Remove bogus flags that aren't used (if we need them in the future, we can
  add them back).
o Add support for the TI-1031.  This is the only YENTA compatible PCI-PCMCIA
  bridge that I'm aware of (all the others are PCIC on a PCI bus, which is
  different).
2002-01-15 20:21:43 +00:00
Warner Losh
7a852c22ce Make PCI_ALLOW_UNSUPPORTED_IO_RANGE an option until the ISA address
problem is fixed at the bridge level.  This is needed for some newer
laptops that have the cardbus bridge not on pci0.
2002-01-15 06:46:59 +00:00
Warner Losh
6015f06948 use bus_space(9) rather than the memory mapped register set. This is
the first step towrads merging pcic and pccbb for 16-bit cards.
2002-01-14 02:59:06 +00:00
Alfred Perlstein
a4db49537b Replace ffind_* with fget calls.
Make fget MPsafe.

Make fgetvp and fgetsock use the fget subsystem to reduce code bloat.

Push giant down in fpathconf().
2002-01-14 00:13:45 +00:00
Alfred Perlstein
9e209b124a Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution.
Requested by: jhb
2002-01-13 21:37:49 +00:00
Alfred Perlstein
426da3bcfb SMP Lock struct file, filedesc and the global file list.
Seigo Tanimura (tanimura) posted the initial delta.

I've polished it quite a bit reducing the need for locking and
adapting it for KSE.

Locks:

1 mutex in each filedesc
   protects all the fields.
   protects "struct file" initialization, while a struct file
     is being changed from &badfileops -> &pipeops or something
     the filedesc should be locked.

1 mutex in each struct file
   protects the refcount fields.
   doesn't protect anything else.
   the flags used for garbage collection have been moved to
     f_gcflag which was the FILLER short, this doesn't need
     locking because the garbage collection is a single threaded
     container.
  could likely be made to use a pool mutex.

1 sx lock for the global filelist.

struct file *	fhold(struct file *fp);
        /* increments reference count on a file */

struct file *	fhold_locked(struct file *fp);
        /* like fhold but expects file to locked */

struct file *	ffind_hold(struct thread *, int fd);
        /* finds the struct file in thread, adds one reference and
                returns it unlocked */

struct file *	ffind_lock(struct thread *, int fd);
        /* ffind_hold, but returns file locked */

I still have to smp-safe the fget cruft, I'll get to that asap.
2002-01-13 11:58:06 +00:00
Matt Jacob
975284da32 Add missing move of relative offset for CTIO2 updates. 2002-01-11 23:48:25 +00:00
Archie Cobbs
4fc53c229d Fix reversed definitions for the bits that select half vs. full duplex.
Submitted by:	Darren Croke <djc@packetdesign.com>
2002-01-10 18:06:41 +00:00
Matthew N. Dodd
ced8202c20 Implement 2 small helper functions:
pci_find_bsf() - Find a device_t by bus/slot/function.
	pci_find_device() - Find a device_t by vendor/device ID.
2002-01-10 00:56:02 +00:00
Mike Smith
5390e1bc8f Staticise the random_state array.
Reviewed by:	markm
2002-01-10 00:09:21 +00:00
Jake Burkholder
47a1c91514 Move the make_dev call from the cn_probe to a sysinit that runs at
SI_SUB_DRIVERS.  cnprobe is too early.
2002-01-09 04:03:55 +00:00
Mike Smith
e45bef2aa9 Staticise the aac devclass. 2002-01-09 03:32:40 +00:00
Warner Losh
7be18016b5 Regenerate from 1.26 pccarddevs 2002-01-08 20:52:57 +00:00
Warner Losh
e5c51b0548 Catch up to NetBSD:
1.156 pooka; Socket Low-Power CF WLAN
	1.155 ichiro; IBM Smart Capture Card II
	1.152-154 ichiro; Fujitsu CF EtherCard and FMV-181,182,182A
	1.151 christos; Symbol Spectrum24
2002-01-08 20:52:23 +00:00
Max Khon
eda6ecb22a - generic Arcnet framework
- device driver for SMC COM90cx6 Arcnet network adapters

Obtained from:	NetBSD
2002-01-08 20:03:13 +00:00
Mike Smith
1dd003ecf4 Staticise a couple of debugging variables. 2002-01-08 19:37:12 +00:00
Mike Smith
8265abbd64 Rename a variable that might accidentally be duplicated elsewhere. 2002-01-08 19:36:54 +00:00
Mike Smith
b6b6d662bc find_devclass -> devclass_find. 2002-01-08 19:14:59 +00:00
Warner Losh
94663a748c Revert change that breaks the joy module. joydevclass must not be static. 2002-01-08 18:27:49 +00:00
Josef Karthauser
46c8c4207d Staticise a couple of things that shouldn't be leaked into the
kernel namespace.

Submitted by:	msmith
2002-01-08 10:32:33 +00:00
Mike Smith
fe5d4a9fac Staticise the flash buffer, since it isn't needed anywhere else. 2002-01-08 10:25:12 +00:00
Mike Smith
172f13eb36 Staticise the con_bios and digi_devclass variables, since they aren't needed
by anything else.
2002-01-08 10:24:34 +00:00
Mike Smith
5b48f71694 Staticise the device node pointers. 2002-01-08 06:50:17 +00:00
Mike Smith
489da1e76a Staticise the joy devclass. 2002-01-08 06:49:06 +00:00
Mike Smith
4ce44e2302 Fix a couple of bogus enums. 2002-01-08 06:47:55 +00:00
Mike Smith
21550f28f8 Staticise the amr devclass. 2002-01-08 06:47:02 +00:00
Mike Smith
3273b00523 Staticise devclasses and some unnecessarily global variables. 2002-01-08 06:46:01 +00:00
Jonathan Lemon
0988236390 Explicitly reload the multicast filters when the hardware is reinitialized
instead of relying on the previous filters to be present.

Back out r1.125, as a reset is needed to unload any existing microcode,
(which clears the multicast addresses), as it is superceded by this change.
2002-01-07 15:08:54 +00:00
Maxim Sobolev
42b841a9c9 In the word selection mode don't append newline if the word ends at the
screen boundary.
2002-01-05 16:52:44 +00:00
John Baldwin
c86b6ff551 Change the preemption code for software interrupt thread schedules and
mutex releases to not require flags for the cases when preemption is
not allowed:

The purpose of the MTX_NOSWITCH and SWI_NOSWITCH flags is to prevent
switching to a higher priority thread on mutex releease and swi schedule,
respectively when that switch is not safe.  Now that the critical section
API maintains a per-thread nesting count, the kernel can easily check
whether or not it should switch without relying on flags from the
programmer.  This fixes a few bugs in that all current callers of
swi_sched() used SWI_NOSWITCH, when in fact, only the ones called from
fast interrupt handlers and the swi_sched of softclock needed this flag.
Note that to ensure that swi_sched()'s in clock and fast interrupt
handlers do not switch, these handlers have to be explicitly wrapped
in critical_enter/exit pairs.  Presently, just wrapping the handlers is
sufficient, but in the future with the fully preemptive kernel, the
interrupt must be EOI'd before critical_exit() is called.  (critical_exit()
can switch due to a deferred preemption in a fully preemptive kernel.)

I've tested the changes to the interrupt code on i386 and alpha.  I have
not tested ia64, but the interrupt code is almost identical to the alpha
code, so I expect it will work fine.  PowerPC and ARM do not yet have
interrupt code in the tree so they shouldn't be broken.  Sparc64 is
broken, but that's been ok'd by jake and tmm who will be fixing the
interrupt code for sparc64 shortly.

Reviewed by:	peter
Tested on:	i386, alpha
2002-01-05 08:47:13 +00:00
Seigo Tanimura
5ddd093d23 Add the system default timer engine. 2002-01-04 01:16:18 +00:00
Seigo Tanimura
995231304d - Provide toggles to show debug messages. Set new sysctl variables
hw.midi.debug and hw.midi.seq.debug to 1 to enable debug log.

- Make debug messages human-frendly.

- Implement /dev/music.

- Add a timer engine required by /dev/music.

- Fix nonblocking I/O.

- Fix the numbering of midi and synth devices.
2002-01-04 01:13:49 +00:00
Julian Elischer
cd3aa54df0 unbreak -current (at least on my cvsups all today) 2002-01-03 23:33:44 +00:00
Matt Jacob
2903b27203 Implement REDUCED INTERRUPT OPERATION usage form FC cards- this allows the
firmware to delay completion of commands so that it can attempt to batch
a bunch of completions at once- either returning 16 bit handles in mailbox
registers, or in a resposne queue entry that has a whole wad of 16 bit handles.

Distinguish between 2300 and 2312 chipsets- if only because the revisions
on the chips have different meanings.

Add more instrumentation plus ISP_GET_STATS and ISP_CLR_STATS ioctls.
Run up the maximum number of response queue entities we'll look at
per interrupt.

If we haven't set HBA role yet, always return success from isp_fc_runstate.

MFC after:	2 weeks
2002-01-03 20:43:22 +00:00