Commit Graph

9700 Commits

Author SHA1 Message Date
Justin T. Gibbs
e46bab9aea aic79xx.seq:
Remove an old comment that no longer applies.

	Fix a jump in our unexpected non-packetized phase
	handler to use an explicit lable.  The old code
	had a hardcoded jump offset that was off by one
	instruction.
2003-06-28 04:40:46 +00:00
Justin T. Gibbs
c8ee71777e aic79xx.h:
Add a 7901A specific feature definition.

aic79xx_pci.c:
	Split out the general aic790X setup into it's own
	setup handler that works on single and dual controllers.
	Adjust all other PCI setup handlers to initialize the
	chips basic features and type before calling the generic
	handler.

	Turn off a few Rev B workarounds that are not required
	on the 7901B.
2003-06-28 04:39:49 +00:00
Peter Wemm
f472527c95 Fix pointer/int warnings so this compiles on amd64. The driver wants
to store an int in the bio->bio_driver1 (a void *).  It is big enough,
but you have to match the int sizes first before doing the cast.

Glanced at by:  scottl
2003-06-27 23:10:58 +00:00
Nate Lawson
464c662efa Whitespace cleanups (verified with MD5 1832ce5ede6c58c844dfb53fd48f0eea).
Also clarify a macro expansion with an XXX.  I will be fixing access to
Acpi Global Lock in a subsequent commit.
2003-06-27 21:57:42 +00:00
Sam Leffler
07d0c94a46 Add support to eliminate a context switch per crypto op when using the
software crypto device:

o record crypto device capabilities in each session id
o add a capability that indicates if the crypto driver operates synchronously
o tag the software crypto driver as operating synchronously

This commit also introduces crypto session id macros that cleanup their
construction and querying.
2003-06-27 20:07:10 +00:00
John Baldwin
fcccbacd7e Sort the list of PCI ID's in numerical order and fix a whitespace bogon. 2003-06-27 18:17:06 +00:00
Peter Grehan
09bf574a28 Prevent probing the secondary channel on CMD646 controllers if the
channel has been disabled by BIOS. This prevents a bus timeout
machine check on B&W G3 PowerMacs, which have a primary-only CMD646
on the motherboard.

Approved by: sos
Obtained from: NetBSD
2003-06-27 10:11:54 +00:00
Warner Losh
60c64b939b Remove check to see if the get resource for the second resource
succeeds.  There is a difference between how OLDCARD and NEWCARD deal
with their resources, and this code exposes that difference.  I'm not
sure which behavior is correct, and will need to look into that in
more detail.  However, it appears that we go ahead and allocate the
right thing in both cases that I have access to (CF cards, CDROM, and
external ata enclosures), so go ahead and ignore the failure to get
the resource for the other rid.  There's already another check to make
sure that the actual allocation works correctly, and that should be
sufficient to catch cases that don't work.

Submitted by: wpaul and iedowse
2003-06-27 03:25:43 +00:00
Sam Leffler
3cd0b4fd09 Return support needed by dstumbler:
o add back rx monitor support
o make WI_RID_SCAN_RES DTRT
o fix a bug handling zero-length RID requests (used by dstumbler to set
  a zero-length SSID)
o make RID_SCAN_REQ DTRT
o add back WI_RID_OWN_SSID
o fix wi_scan_ap to take a channel mask and txrate (for prism cards)

These changes fix dstumbler -o (monitor mode).  A minor change to dstumbler
is needed to get normal AP scanning mode to work right; this is preferred to
modifying the driver.

PR:		kern/53187
Reviewed by:	Bruce M Simpson <bms@spc.org>
2003-06-27 00:49:04 +00:00
Hidetoshi Shimokawa
740b10aaa9 - Use fwohci_poll() instead of fwohci_intr() to process the first bus reest.
- Wait 2 cycles before starting the process for fast machines.
2003-06-27 00:27:33 +00:00
Maxime Henrion
e542f156cc Other minor style nits I missed in ep_if_start() in my previous
commit.
2003-06-26 17:02:52 +00:00
Maxime Henrion
52eec71b80 Make if_ep_start() look a bit more like other if_start() functions,
by calling the first mbuf in the chain m0 and fixing a few nearby
style bugs, mostly s/0/NULL/.
2003-06-26 14:28:35 +00:00
Maxime Henrion
c7d24cc1a2 Fix a race condition that was introduced since pccbb interrupts are
flag'ed INTR_MPSAFE.  In ep_if_start(), use the IF_DEQUEUE macro to
grab the next mbuf to send, and use IF_PREPEND if the card is busy
and we actually can't handle it right now.

The old code was first getting the mbuf by taking it from the queue
without using the macros, thus without locking, and without removing
it from the queue either.  It was later assuming that IF_DEQUEUE would
give him this same mbuf.

Tested by:	mich
2003-06-26 13:27:44 +00:00
Matthew N. Dodd
f1e875be01 Set a lower bound on fragment size rather than returning a failure
when the user specifies a maximum fragment size < 2.

This is the behavior that Linux provides and fixes the problem I've
observed in Tribes2 where sounds effects are delayed by 1/2 a second.
2003-06-26 13:13:18 +00:00
Paul Saab
be241f79bb Give the correct size for the command map to busdma. 2003-06-26 04:01:34 +00:00
Peter Wemm
098f057be8 Add amd64 support. 2003-06-26 01:10:24 +00:00
Scott Long
dea4622d59 - Zero the buffers used to hold configuration data from the card. Not doing
so can leave stale data in the buffer and confuse the driver.
- enable the ability to set the 'disable' hint for the driver to keep it
  from attaching.  i.e. 'hw.ips.0.disable=1' will prevent the driver from
  attaching.
- Only detach if attach suceeded.

Submitted by: mjacob
2003-06-26 00:03:59 +00:00
Josef Karthauser
3305fa5359 Regen. 2003-06-25 22:56:13 +00:00
Josef Karthauser
59f2899384 Added some new devices and made slight changes to some existing ones.
Submitted by:	Andre Guibert de Bruet <andy@siliconlandmark.com>
2003-06-25 22:50:57 +00:00
Matthew N. Dodd
17d7127c64 Set pointers to NULL after free() to prevent multiple free().
PR:		 kern/48808
Submitted by:	 Eugene Grosbein <eugen@grosbein.pp.ru>
2003-06-25 19:58:38 +00:00
Sam Leffler
e61a4ae50c o correct mib spelling: reset -> retest
o add #ifdef's needed to share code directly with -stable
2003-06-25 14:46:01 +00:00
Olivier Houchard
995df2fc9f Fix some style bugs. 2003-06-25 13:33:41 +00:00
Poul-Henning Kamp
85cefd1dc0 /dev/null and /dev/zero does not need Giant 2003-06-24 19:50:48 +00:00
Nate Lawson
05fb8c3f73 Drop locks before calling if_input() since it may re-enter fxp_start()
in the netisr case. This would result in a lock reversal.  This
fixes the net.isr.enable=1 case.  Better performance might be
obtained by chaining all packets received, dropping the lock, and
then calling if_input() on each one.

Reported by:	hmp
2003-06-23 23:23:49 +00:00
Justin T. Gibbs
f5db59f9d6 Add parenthesis so that we get all of the bits all
of the contents of the CCSCBCTL register into our
local varaible.  The other bits are used in later tests.
This avoids a potential deadlock in ahd_run_qoutfifo()
if we happen to catch the DMA engine in just the right
state.
2003-06-23 22:06:34 +00:00
Sam Leffler
5591b2131a Atheros 802.11 driver. Requires Atheros Hardware Access Lay (HAL).
Supported by:	Atheros Comunications
2003-06-23 17:01:19 +00:00
Hartmut Brandt
1232acdba3 Check compatibility partitions on all archs. This makes vinum
work on sparc64 again, because on sparc i386-compatibility
partitions just happen to have the same name as sparc native partitions.

Okay-ed by: grog@
2003-06-23 14:49:57 +00:00
Hartmut Brandt
fb24f088ae This is a driver for Fore PCA200E cards that uses busdma and works on
little endian and big endian and with 32 and 64 bit pointers. It already
has the hooks to be used for HARP, NATM and ngATM.
2003-06-23 14:46:12 +00:00
Matthew N. Dodd
829ecb807f Add a PCI ID for the Apollo Pro 133A.
PR:		 kern/46983
Submitted by:	 David Holm <david@realityrift.com>
2003-06-23 11:15:22 +00:00
Matthew N. Dodd
b02d3a97f8 Add PCI IDs for the i82855 and i82875P AGP bridges.
PR:		 i386/53136, i386/51802
Submitted by:	 Kyunghwan Kim <redjade@atropos.snu.ac.kr>, Norikatsu Shigemura <nork@FreeBSD.org>
2003-06-23 11:09:45 +00:00
John-Mark Gurney
e3f932de5a prevent the number of patterns from exceeding the number of pci devices.
Submitted by:	rwatson
2003-06-23 03:17:03 +00:00
John-Mark Gurney
d08239c1f7 cleanup /dev/pci code some:
read permision only required for listing, read/write required for
		read/write to registers
	fix a possible memory leak
	clean up error handling a bit

Reviewed by:	silence
2003-06-23 02:11:16 +00:00
Poul-Henning Kamp
8198a1a472 Remove 256 unit limit, there is no evil minor number encoding to
deal with any more.

Spotted by:	"Darren Freestone" <df@cops.org>
2003-06-22 11:31:38 +00:00
Yoshihiro Takahashi
403579314a Re-enabled PCI irq routing on pc98. 2003-06-22 06:09:14 +00:00
John-Mark Gurney
e3ee6a27a9 use a REG macro that was already defined.
Reorder how the pci probing in handled.  before adding devices, check to
see if the slot is a multi-function device to see if we should probe all
the functions.

Original idea by:	imp
2003-06-22 02:26:17 +00:00
John-Mark Gurney
b9d3718a18 fix another LP64 problem. READ_IVAR takes a pointer to an uintptr_t, not
an int.
2003-06-20 07:22:54 +00:00
Søren Schmidt
d72d63c03e Add support for the HighPoint HPT302 & HPT371
HW sponsored by:	Martin Blapp <mbr@FreeBSD.ORG>
2003-06-19 15:11:04 +00:00
John-Mark Gurney
9c77e81b5d make iicbb_devclass and iicbb_driver globally visible. This will let
drivers that implemnt the i2c bit banging bus interface not have to
recompile iicbb in order to add an attachment for it.

This will mean the bktr and other definitions can go back to their
respective drivers.
2003-06-19 02:50:08 +00:00
Alan Cox
f873ed0327 Add vm object locking. 2003-06-19 02:01:33 +00:00
Scott Long
ed3392975b Fixing some glaring problems with aac_disk_dump().
- Mark that it cannot handle greater than 4GB of RAM at this time.  Fixing
   that will come later.  Fail any attempts to dump above thati limit.
 - If a call to aac_disk_dump() needs to be split into multiple i/o's,
   increment the virtual offset after each i/o instead of just dumping the
   same offset over and over again.
 - Bail out if bus_dmamap_load() returns an error.  Error recovery is likely
   not possible.
2003-06-19 01:49:04 +00:00
Jake Burkholder
1de46e12a3 Add a solaris compatible ofw interface for third party software that
expects one to use.  Only the functions used by XFree86 are actually
implemented.

Glanced at by:	tmm
2003-06-19 01:40:11 +00:00
Poul-Henning Kamp
7c2d2efd58 Initialize struct fileops with C99 sparse initialization. 2003-06-18 18:16:40 +00:00
Hartmut Brandt
1329537b7a Style: __FBSDID(). 2003-06-18 09:31:37 +00:00
Hartmut Brandt
c594298bee This is a driver for Fore/Marconi HE155 and HE622 ATM cards. It is full
busdma and has extensively been tested on i386 and sparc64.
2003-06-17 16:12:50 +00:00
Paul Saab
fe5c322931 Fix bge at 10Mbit. The defines for 10-Half and 10-Full were swapped.
Shamed into fixing by:	John Cagle <john.cagle@hp.com>
2003-06-17 15:02:28 +00:00
Warner Losh
04fd143fa8 Add FREECOM PCCARD-IDE to the mix. It doesn't have a manufacturer or
product ID, so we have to use the CIS strings to ID it.

dmesg by: Christian Laursen
2003-06-17 12:33:53 +00:00
Warner Losh
6da5aafdda Sync to 1.53 2003-06-17 12:29:49 +00:00
Warner Losh
bd65adef88 Add FREECOM PCCARD-IDE 2003-06-17 12:29:20 +00:00
Frank Durda IV
5f3ee7fe32 Re-introduction of the matcd CD driver.
This version of the driver code is compatible with near-release FreeBSD 5.1
kernel/driver interfaces.

modules/Makefile, man page and other bindings to follow shortly, once I get
this part of the check-in right.

Approved by:	markm(mentor)
2003-06-17 01:20:03 +00:00
Hidetoshi Shimokawa
88e7cb59f4 Bound check for broken Configuration ROM. 2003-06-16 08:43:22 +00:00
Yaroslav Tykhiy
62cc1e0584 Force media autodetection if the device has lost its parameter table.
Previously, any normal I/O on an fdc(4) device would fail with ENXIO
if the device had been opened in non-blocking mode and then closed
prior to the conventional access; that would last until the floppy
disk was ejected and re-inserted to raise the unit attention condition.

Add a clarifying comment.
2003-06-16 08:42:20 +00:00
Hidetoshi Shimokawa
e47e35e61b Fix for big endian. 2003-06-16 08:29:24 +00:00
Yaroslav Tykhiy
f79981aca8 If in non-blocking mode, return EAGAIN instead of ENXIO
on an I/O attempt.  This is needed for consistency with
the concept of the half-opened state of fdc(4).

PR:		kern/52338
2003-06-16 07:50:17 +00:00
Hidetoshi Shimokawa
0d3432eca7 Revert previos change for prior release/branch. 2003-06-16 03:44:36 +00:00
Bill Paul
20ea6dd580 In the device attach routine, don't depend on uaa->iface being
populated. Apparently, if you use an ehci controller, it's not.
Use usbd_device2interface_handle() to retrieve the interface handle.
NOTE: uaa->iface is populated in the probe routine, so I suspect the
fact that it's NULL in the attach routine is a bug in the ehci driver.

Also, don't depend on the PHY addresses returned by the AXE_CMD_READ_PHYID
command. The address is correct for my LinkSys NIC, but a user has
reported that with a D-Link NIC, the PHYID command returns address 4
while the attached Broadcom PHY is in fact strapped for address 0.
Instead, latch onto the first PHY address that returns valid data
during a readreg operation.
2003-06-15 21:45:43 +00:00
Yaroslav Tykhiy
83efe35a66 Always set bio_resid properly in fdstrategy(),
as should every block device strategy routine.
There was at least one evil consequence of not doing so:
Some errors returned by fdstrategy() could be lost (EAGAIN,
in particular.)

PR:		kern/52338 (in the audit-trail)
Discussed with:	bde
2003-06-15 18:13:17 +00:00
Yaroslav Tykhiy
29ec21d1e3 Check whether the floppy type pointer has been set before trying
to access floppy parameters through it.

Note: The DIOCGSECTORSIZE and DIOCGMEDIASIZE handlers withing
fdioctl() couldn't be just moved to below the existing check
for blocking mode because fd->ft can be non-NULL while still
in non-blocking mode (fd->ft can be set with the FD_STYPE ioctl.)

PR:		kern/52338
No MFC:		Not applicable to STABLE
2003-06-15 16:18:58 +00:00
Ian Dowse
688514ced0 If the device goes away during ulpt_reset(), make sure not to call
ulpt_status() afterwards. This fixes a crash that can occur if a
USB printer is power-cycled when printing is just starting. The
problem is similar to that fixed in revision 1.33, but it is much
less likely to occur.

MFC after:	1 week
2003-06-15 11:55:50 +00:00
Hidetoshi Shimokawa
0bc666e09b - Enable support for building Configuration ROM.
- Improve probe message for S800 chips.
2003-06-15 04:09:26 +00:00
Hidetoshi Shimokawa
b83977f0a4 Fix crom_add_simple_text().
Bytewap Configuration ROM image.
2003-06-15 03:22:30 +00:00
Hidetoshi Shimokawa
19fc8e7c05 Add CSRVAL_VENDOR_PRIVATE. 2003-06-15 03:19:55 +00:00
Greg Lehey
be05126e24 check_drive: If the partition isn't a Vinum drive, release it again
and return NULL.

vinum_scandisk: Don't handle NULL device pointers.
	        Only look at compatibility partition for i386.  This
	        is a kludge which should go away once I have adequate
	        documentation for the New World Order.

Together, these fixes remove occasional error messages about
non-existent drives.  They may also fix a number of problems that have
been reported without a PR.

PRs: None
2003-06-15 01:42:01 +00:00
Hidetoshi Shimokawa
ec3fab0e0c White space fix. 2003-06-15 00:17:38 +00:00
Nate Lawson
c7bbca402a Merge common XPT_CALC_GEOMETRY functions into a single convenience function.
Devices below may experience a change in geometry.

* umass(4) drives exactly 1 GB in size now no longer use extended geometry.
2003-06-14 22:40:08 +00:00
Nate Lawson
2813692cc2 Merge common XPT_CALC_GEOMETRY functions into a single convenience function.
Devices below may experience a change in geometry.

* Due to a bug, aic(4) never used extended geometry.  Changes all drives
  >1G to now use extended translation.
* sbp(4) drives exactly 1 GB in size now no longer use extended geometry.
* umass(4) drives exactly 1 GB in size now no longer use extended geometry.

For all other controllers in this commit, this should be a no-op.

Looked over by:	scottl
2003-06-14 22:17:41 +00:00
Bernd Walter
6ca4cf4dce Fix alignment requirements of tulip_rombuf by further increasing
tulip_boardid size.
Add a comment to tulip_rombuf about this requirement.
I have had panics on alpha while probing a de card.
2003-06-13 22:34:03 +00:00
Warner Losh
309971e12e Add a comment about the MPSAFEness of this pccard_intr handler. Given
how we registered pccard_intr, it is MPSAFE.  However, since we
register the pccard_intr handler with the flags of the ISR we call,
that is the gating factor.  We need do nothing specific here.

Prompted by: seeing pccard_intr in a panic.
2003-06-13 21:30:29 +00:00
Maxime Henrion
d07c19e566 Remove code that tries to detect if the MCLSHIFT and MSIZE macros
are the same that those of the kernel in the KLD_MODULE case.  If
we ever want to detect that kind of problems, this is not the right
place to do this since every network driver would be affected by
such desynchronisation.
2003-06-13 20:46:34 +00:00
Hartmut Brandt
8789c0e019 Implement the ioctl that returns a list of currently open VCCs. 2003-06-13 13:50:38 +00:00
Hartmut Brandt
1ba46a03b7 Make the midway driver use the new ATM phy driver. This allows one to
toggle several media options (sonet/sdh, for example) with ifconfig and
to see the carrier state in ifconfig's output. It gives also read/write
access (given the right privilegs) to the S/Uni registers to user space
programs.
2003-06-13 12:08:09 +00:00
Josef Karthauser
7ced6062bf Regen. 2003-06-13 11:24:45 +00:00
Josef Karthauser
62db9d4d27 Allow the EPSON USB scanner 1250 to be recognised as a uscanner device.
Submitted by:	Cristiano Deana <deana@bmm.it>
By way of:	n_hibma
MFC after:	3 days
2003-06-13 11:20:26 +00:00
Alan Cox
d7ae6bd221 Add vm object locking. 2003-06-13 08:11:14 +00:00
Warner Losh
9b1b4524e6 As a workaround for the latest problems, don't init hermes cards more
than once.  This appears to work around the hanging issues, at the
expense of warnings about bad RID allocations.  I'm not sure this is a
permanant workaround, but does appear to help in the tests that I've
done here.
2003-06-13 00:40:37 +00:00
Matt Jacob
a96c0ef246 Add change that allows PAE to work.
Submitted by:	Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
2003-06-12 17:10:00 +00:00
Hartmut Brandt
591f4054cb This is a driver for the physical layer chips used in ATM interfaces.
It currently supports the PMC Sierra Lite, Ultra and 622 chips and
the IDT 77105. The driver handles media options and state in a consistent
manner for ATM drivers. The next commit to the midway driver will make
it use utopia.
2003-06-12 14:28:32 +00:00
Maxime Henrion
62c0d1bf0e Add a new device ID.
Submitted by:	Tom Alsberg <alsbergt@cs.huji.ac.il>
2003-06-12 11:21:06 +00:00
Greg Lehey
ed0a525e09 Silence a warning. 2003-06-12 06:17:12 +00:00
Warner Losh
2b8c22f66c Unlock after ISR.
Noticed by: njr
Pointy hat to: the impable one.
2003-06-12 06:06:14 +00:00
Greg Lehey
de52a6f7a6 Remove "raw" and "label" keywords. 2003-06-12 05:45:45 +00:00
Warner Losh
9b6df37a1a s/BURN_THE_BOATS/BURN_BRIDGES/g to adopt to new world order 2003-06-12 05:44:30 +00:00
Greg Lehey
bfe670eec4 vinum_bounds_check: Don't check the label sector if the architecture
doesn't have one.  The test was bogus on these architectures, but
recent changes broke it altogether.

Prompted by:  phk

This should fix the recent SPARC 64 build problems.
2003-06-12 05:34:42 +00:00
Greg Lehey
98142e711a Remove VINUM_LABEL ioctl. It has been deprecated since December 1998,
and recent changes broke it altogether.

Prompted by:  phk
2003-06-12 05:32:31 +00:00
Greg Lehey
00ee3bf535 Remove write_volume_label, the implementation of VINUM_LABEL ioctl.
It has been deprecated since December 1998, and recent changes broke
it altogether.

Prompted by:  phk
2003-06-12 05:32:00 +00:00
Warner Losh
078f2f3123 Enable bus mastering in the attach routine. This appears to fix the
USB 2.0 cardbus cards that have been floating around.

Submitted by: Craig Boston
2003-06-12 05:29:15 +00:00
Greg Lehey
295cb8611f Remove kw_raw. I've forgotten what it was intended for, and it was
probably obsoleted by some changes a couple of months ago.
2003-06-12 05:28:18 +00:00
Warner Losh
de5059db1c Make cbb interrupts MPSAFE:
o Register ISR INTR_MPSAFE.
o Loop on KTHREAD_DONE == 0 in the thread.
o Safe the INTR_MPSAFE flag for client drivers (don't know if there are any
  CardBus/PCI drivers that are INTR_MPSAFE)
o Read status after acquiring mtx_lock(Giant) rather than before so that we
  catch state changes that happen while Giant is being acquired.
o Turn off the CD bit when we see a CD interrupt, and turn it back on after
  we've attached/detached the card.
o On suspend, actually set the CBB_SOCKET_MASK to zero rather than oring
  in '0' to turn it off on suspend.
o If the ISR that's registerd is MPSAFE, don't acquire Giant around call to
  client ISR.
o Fix comments to reflect these changes.
2003-06-12 03:37:28 +00:00
Thomas Moestl
933c9a14ed - Add an OFIOCGETPROPLEN ioctl() to get the length of a property.
- Do not use a fixed major.
- Minor cleanups.
2003-06-11 18:33:03 +00:00
Warner Losh
c88a674b8d ARtem ONAIR card
Submitted by: Ben Gras
2003-06-11 16:56:02 +00:00
Warner Losh
cb8af9e613 regen for 1.52 2003-06-11 16:53:47 +00:00
Warner Losh
e8abadefcc Add ARtem ONAIR wi card.
Submitted by: Ben Gras
Forgotten by: imp
2003-06-11 16:53:26 +00:00
Warner Losh
7988ce93e8 Minor tweaks that are effectively all style tweaks. 2003-06-11 16:51:27 +00:00
Warner Losh
729a248d63 Call wi_free() in all the relevant error cases. 2003-06-11 16:41:07 +00:00
Warner Losh
459caa871c Call wi_free on the failure cases of pccard.
Tested by: scottl
2003-06-11 16:39:20 +00:00
David E. O'Brien
f4636c5959 Use __FBSDID(). 2003-06-11 06:34:30 +00:00
David E. O'Brien
8c9bbf484a Use __FBSDID(). 2003-06-11 00:34:37 +00:00
Hidetoshi Shimokawa
0b1739465d Fix typo in the previous revision. 2003-06-10 12:08:58 +00:00
Justin T. Gibbs
a9fe95487e Sync perforce IDs. 2003-06-10 03:25:24 +00:00
Hidetoshi Shimokawa
97aad8deb4 Fix struct bus_info on big-endian machines. 2003-06-10 02:29:10 +00:00
Hidetoshi Shimokawa
efd4a0c1ec Add tx_speed sysctl variable. 2003-06-10 02:27:39 +00:00
Scott Long
87947cad18 Track the resource id of the memory port instead of just assuming that
it is 0x0.  Cardbus-based sio/modem cards can now be ejected without
panic'ing.
2003-06-09 21:25:14 +00:00
Poul-Henning Kamp
df622d54f8 GEOMification of CCD.
You need your kernel and ccdconfig(8) to be in sync, particularly if your
source tree is on a ccd device.
2003-06-09 19:25:07 +00:00
Max Khon
3ba993a100 Merge NetBSD bktr_core.c rev. 1.26:
Fix broken programming of VSCALE_HI registers in yuv422_prog().

PR:		46521
Obtained from:	NetBSD
MFC after:	3 days
2003-06-09 19:13:38 +00:00
Max Khon
46e0ffba9b Add two more Vendor ID's for Leadtek Winfast TV 2000
PR:		47453
Obtained from:	NetBSD (partially)
2003-06-09 19:11:01 +00:00
John Baldwin
bd77aaf980 When we re-route a PCI interrupt, write the new IRQ value into the intline
register.

Reviewed by:	imp
2003-06-09 18:08:46 +00:00
Dag-Erling Smørgrav
3f0a1da2f8 Revert part of rev 1.43. We want to fail gracefully if there is no packet
waiting in the interface queue.

Submitted by:	Yeasah Pell <yeasah@apocalypse.org>
2003-06-08 18:35:25 +00:00
Yoshihiro Takahashi
82cdd526b1 Don't route PCI irq on pc98. 2003-06-08 11:18:35 +00:00
Martin Blapp
e351d778f2 Add ADMtek ADM9511 and ADM9513 device ID's.
PR:		PR51823
Submitted by:	Kaho Toshikazu <kaho@elam.kais.kyoto-u.ac.jp>
Reviewed by:	phk
MFC after:	2 days
2003-06-08 10:11:55 +00:00
Warner Losh
e08a16f0df MFp4:
Migrate some common pccard code into exca.
2003-06-07 20:47:35 +00:00
Warner Losh
090555da5b MFP4:
Merge some common code from cbb into exca.
2003-06-07 20:46:39 +00:00
Warner Losh
bb22b14154 Simplify the power code somewhat (this makes the module about 100
bytes smaller).
2003-06-07 20:18:45 +00:00
Jake Burkholder
2c7df6a555 Implement OF_interpret.
Obtained from:	netbsd
2003-06-07 18:34:04 +00:00
Søren Schmidt
c283397793 Fix the setup of old Promise controllers, clocks was not setup right
causing way too low transfer rates.

Enable interrupts on old CMD64[89] chips, apparently some bogus BIOS's
doesn't get this right.
2003-06-07 15:19:16 +00:00
John Baldwin
1beb381637 - Adjust the comment about re-routing PCI interrupts to be less
ia64-specific.
- When trying to re-route interrupts, don't change cfg->intline if the
  re-route fails by returning an invalid vector.  This fixes machines
  without any way of routing interrupts such as older PC's without a
  $PIR table.

We do not currently write the new intline value back to the hardware, but
we should.  That will likely be added in a later commit.
2003-06-07 15:00:19 +00:00
Justin T. Gibbs
71b2757314 When single stepping, only leave ENBUSFREE enabled
if it was already enabled.  We don't want to set it
when it shouldn't be set, we just don't want to
inadvertantly turn it off.  This should fix a recent
report of the aic7xxx driver repeatedly complaining of
"unexpected busfree while idle" in one configuration.
2003-06-06 23:53:39 +00:00
Justin T. Gibbs
176b648e01 Clear stale PCI errors during our test for
successfully mapping our registers.  This
avoids the disabling of memory mapped I/O
just because some other driver probe happened
to touch our registers.
2003-06-06 23:52:34 +00:00
Justin T. Gibbs
79234f55e6 Work around SCSI spec violation by the Quantum Atlas 10K.
This drive delays going async after receiving a WDTR
message.  We now send an SDTR message after a WDTR even
if our goal is to go async.  This should work even for
confused devices.

If we get an unexpected busfree when attempting a WDTR
or SDTR, only set the goal negotiation parameters we were
trying to negotiate to off.  This means that should a WDTR
message fail, we will still try an SDTR if our goal is
non-async.

Fix a few more places where we were looking at goal.period
instead of goal.offset for determining if we should be
negotiating sync.  This should not have any impact on
our behavior, but the offset is more definitive and should
be used.
2003-06-06 23:51:13 +00:00
Justin T. Gibbs
1d528d6792 aic7770.c:
aic79xx.c:
aic79xx.h:
aic79xx_pci.c:
aic7xxx.c:
aic7xxx.h:
aic7xxx_pci.c:
	Switch ah?_reset() to take an additional "reinit" argument.
	Use this instead of init_level to determin if the chip
	should be fully reinitialized after a chip reset.  This
	is required so that ah?_shutdown() can reset the chip
	without side-effects.

aic79xx.c:
	Implement ahd_suspend() and ahd_resume().

aic7xxx.c:
	Change ahc_loadseq() to *not* restart the sequencer.
	This brings the loadseq behavior in line with that
	of the 7902 driver and also simplifies the init routine.

	Correct the resume routine to enable interrupts and
	restart the sequencer.
2003-06-06 23:48:19 +00:00
Justin T. Gibbs
447449473c Add probe entry for the 284X with BIOS disabled. 2003-06-06 23:40:48 +00:00
Justin T. Gibbs
d6b641de7f Constify a string used in our EISA probe tables.
Fix a few style nits.
2003-06-06 23:40:07 +00:00
Warner Losh
e4e7b5bc54 Add two of three workarounds for interrupt storms for o2micro parts as
obtained from o2micro.  These should only be needed for 'older'
o2micro bridges (anything before the 7xxx series of bridges), but will
work with the new bridges.

# I don't plan on porting it to oldcard, but will happily commit to
# oldcard if someone else needs them.
2003-06-06 06:00:49 +00:00
Prafulla Deuskar
d30350e524 Add support for Quad port adapter
Add sysctl's to display statistics/debug_info
Set WAIT_FOR_AUTONEG_DEFAULT to zero by default
Increment packet in/out statistics inline instead of every two seconds.

MFC after:	3 days
2003-06-05 17:51:38 +00:00
Sam Leffler
bba9599afb fix typo (how did this get committed?) 2003-06-04 23:12:32 +00:00
John Baldwin
ba90ccc69a Batton down the hatches!!!
Always route PCI interrupts on i386 UP machines.  I was planning to enable
this for i386 anyways once SMP support is done.  Having this enabled fixes
problems on many people's laptops.

Requested by:	imp
2003-06-04 21:10:15 +00:00
Sam Leffler
236266ee31 detach RNG test facility on device detach 2003-06-04 17:58:20 +00:00
Sam Leffler
345b9e2292 remove bogon (undefined struct decl) 2003-06-04 17:57:52 +00:00
Hartmut Brandt
41a753193a Make the internal statistics sysctl an array of integers rather than a string.
While a string is readable without a tool, an array is easier to process for
a monitoring application. This also prevents the extra hoops we need with
sbufs and locking.

Move the mtx_init() in en_attach() higher before the first failure point so
that we can unconditionally destroy it in en_destroy().
2003-06-04 15:38:32 +00:00
Hidetoshi Shimokawa
3be95df6a0 Add id for TI's 1394b link chip. 2003-06-04 04:26:14 +00:00
Hidetoshi Shimokawa
de7f8045e0 Don't call sbp_do_attach() recursively after agent reset
while device probing.
2003-06-03 23:01:43 +00:00
Hidetoshi Shimokawa
df7898b895 Allocate zeroed space for fwdev. 2003-06-03 22:58:22 +00:00
Hidetoshi Shimokawa
1bba1572a0 Open fwmem device exclusively. 2003-06-03 22:52:55 +00:00
Matt Jacob
7fed69ee80 Update MPILIB from code received from LSI. Make changes in the rest of
the driver based upon some somewhat gratuitous name changes.
2003-06-03 17:47:48 +00:00
Greg Lehey
14b1df077e Don't deregister the kld on resetconfig, only when we're really ready
to unload.  This would cause a panic on the second resetconfig.

Start Vinum at boot time at SI_SUB_RAID, not SI_SUB_VINUM.
SI_SUB_VINUM was there first, but there's no real distinction, and
SI_SUB_RAID is a more neutral name.

Submitted by:  hmp
2003-06-03 04:51:31 +00:00
Scott Long
795d7dc093 When scanning for changed containers, don't assume that the controller
will respond in a sane manner.

Thanks to Petri Helenius <pete@he.iki.fi> for spotting this and pestering
me to fix it.
2003-06-03 02:10:55 +00:00
Warner Losh
49d5015da8 Add support for generic PMCICA ATA CARD 2003-06-03 01:30:55 +00:00
Warner Losh
a450b32915 Sync to 1.51 2003-06-03 01:29:58 +00:00
Warner Losh
b2cd313c17 Add another PCMCIA IDE CARD 2003-06-03 01:29:01 +00:00
Sam Leffler
4f28f7d769 Redo locking for better SMP suport:
o adding locking to op submission
o mark interrupt handler MPSAFE
o don't use locking on detach; disabling interrupts should be sufficient
o change mutex string names so witness printouts are more meaningful

Note: locking is still pretty brute-force but it's probably not worth
improving it given the relatively low performance of hifn-based cards.
2003-06-02 23:34:59 +00:00
Sam Leffler
af2b2a7331 Redo locking for proper SMP operation:
o replace driver-global lock with three locks: one for the handling of mcr1
  operations, one for handling of mcr2 operations, and one for the mcr1
  free list
o mark the interrupt handler MPSAFE
o don't use locking on detach; disabling interrupts is sufficient (I think)
2003-06-02 23:32:03 +00:00
Poul-Henning Kamp
0f557e0ac0 Further devilification of CCD:
Change the list interface to simplify things.
Remove old list ioctls which bogusly exported the softc to userland.
Move the softc and associated structures from the public header to
the source file.
2003-06-02 21:29:04 +00:00
Poul-Henning Kamp
189337d81f Begin deevilification of CCD:
Make CCD a GEOM class.

For now only use this for implementing a OAM config method which
can return a list of configured CCD devices in the format which
"ccdconfig -g[v]" would normally output.
2003-06-02 20:50:03 +00:00
David E. O'Brien
006124d811 Use __FBSDID(). 2003-06-02 16:32:55 +00:00
Maxim Konovalov
b0af6a7be5 Remove unused #ifdef BRIDGE.
Reviewed by:	nyan
2003-06-02 08:36:18 +00:00
Mike Silbersack
1104779b70 Replace if_fxp's handrolled defrag function with m_defrag.
No actual bug with the existing code, just tidying things up.

Submitted by:	hmp
2003-06-02 05:16:42 +00:00
Maxime Henrion
1edc4c46b8 Change a :
bzero(ptr, sizeof(DC_RXLEN * 5));
which should obviously be:
	bzero(ptr, DC_RXLEN * 5);

Looks like this bug may have reduced the effectiveness of the
workaround for the hardware bug in the PNIC chips.

MFC after:	1 week
2003-06-01 22:09:12 +00:00
Maxime Henrion
0934f18afb - Style(9) fixes, most notably :
o Remove register keyword
	o ANSIfy prototypes
	o Remove "return;" at the end of void functions
	o Remove trailing spaces
	o Don't align local variables with tabs and reorder them
	o Don't use /* FOO */ at the end of a #ifdef FOO block if
	  it's a small block
- Other non-functional changes :
	o 6 -> ETHER_ADDR_LEN
	o Don't initialize if_output; ether_ifattach() does it for us
2003-06-01 19:26:34 +00:00
Matt Jacob
d8f9e010d2 Restore parentheses removed inappropriately in last commit. 2003-06-01 19:01:01 +00:00
Dag-Erling Smørgrav
f834a1168c Add (but do not connect) a half-finished driver for Aureal Vortex cards.
The mixer works, pcm support is half done.
2003-06-01 11:58:46 +00:00
Poul-Henning Kamp
b3c481ae1a Remove break after return.
Add XXX comment where intent is unclear.

Found by:	FlexeLint
2003-06-01 09:27:33 +00:00
Poul-Henning Kamp
b44f808797 Don't leak "barlist" allocation on failure.
Found by:	FlexeLint
2003-06-01 09:24:17 +00:00
Juli Mallett
b0327095f6 Use SC_NO_CUTPASTE to protect cutpaste variables correctly, fixing the
-Werror build with such option, but not other combinations.  LINT
misses this because syscons knobs in LINT turn off a lot of code.

Reviewed by:	marcel (some time ago)
2003-06-01 04:42:14 +00:00
Poul-Henning Kamp
a3e7d3f16f wrap macro in do {...} while(0) 2003-05-31 21:11:51 +00:00
Poul-Henning Kamp
35e1694a4d Remove unused variable(s).
Add XXX comment where intent is unclear.

Found by:       FlexeLint
2003-05-31 20:43:17 +00:00
Poul-Henning Kamp
bb0b8a23c0 Remove unused variable(s).
Found by:       FlexeLint
2003-05-31 20:42:24 +00:00
Poul-Henning Kamp
00999c80d8 Eliminate mostly unused local variable.
Found by:       FlexeLint
2003-05-31 20:41:52 +00:00
Poul-Henning Kamp
d2f30d92a7 Add /* FALLTHROUGH */
Remove break after return

Found by:       FlexeLint
2003-05-31 20:41:08 +00:00
Poul-Henning Kamp
25371920a0 Fix indentation
Found by:       FlexeLint
2003-05-31 20:40:12 +00:00
Poul-Henning Kamp
6f75979695 Remove unused variable(s).
Add /* FALLTHROUGH */

Found by:       FlexeLint
2003-05-31 20:39:28 +00:00
Poul-Henning Kamp
4738f8c1a8 Remove return after goto.
Remove break after return;

Found by:       FlexeLint
2003-05-31 20:35:32 +00:00
Poul-Henning Kamp
60db3b9e60 Remove unused variable(s).
Remove break after return;

Found by:       FlexeLint
2003-05-31 20:34:36 +00:00
Poul-Henning Kamp
66f7a83274 Put definition of struct svr4_sockcache_entry in a .h file rather than
having two independent definitions in two .c files.
Fiddle surrounding details to match.

Found by:       FlexeLint
2003-05-31 20:33:18 +00:00
Poul-Henning Kamp
670966596b Remove unused variable(s).
Found by:       FlexeLint
2003-05-31 20:29:34 +00:00
Poul-Henning Kamp
d1043f6d6a Remove break after return
Found by:       FlexeLint
2003-05-31 20:28:21 +00:00
Poul-Henning Kamp
85dc30cf82 Remove unused variable(s).
Put XXX comment where intent is unclear.

Found by:       FlexeLint
2003-05-31 20:27:42 +00:00
Poul-Henning Kamp
7d4220518e Remove break after return;
Found by:       FlexeLint
2003-05-31 20:24:30 +00:00
Poul-Henning Kamp
f22cfda31c Remove break after return
Found by:       FlexeLint
2003-05-31 19:59:29 +00:00
Poul-Henning Kamp
9c96882e80 Remove unused variables.
Found by:       FlexeLint
2003-05-31 19:58:45 +00:00
Poul-Henning Kamp
1000b87f2a Remove now unused pointer to etherheader.
Found by:       FlexeLint
2003-05-31 19:56:35 +00:00
Poul-Henning Kamp
a0fb4cf18d Remove unused variables
Add /* FALLTHROUGH */

Found by:       FlexeLint
2003-05-31 19:49:49 +00:00
Poul-Henning Kamp
19ca58475e Remove unnecessary breaks.
Remove unused variables.
Add XXX comment where a break may be missing. [lxtphy.c]

Found by:       FlexeLint
2003-05-31 19:48:33 +00:00
Poul-Henning Kamp
5a87a6f702 Move some FALLTHROUGH comments so they work.
Fix indentation error.
Make boardid string long enough.
Remove unused variable.

Found by:       FlexeLint
2003-05-31 19:46:58 +00:00
Poul-Henning Kamp
16cef37ea3 Don't define memcpy() to bcopy() and in particular not memset() to
bzero() when we have them all already.

Found by:       FlexeLint
2003-05-31 19:38:43 +00:00
Poul-Henning Kamp
b2bf0c7f48 Fix indentation.
Found by:       FlexeLint
2003-05-31 19:38:00 +00:00
Poul-Henning Kamp
5578b9263b Do not define memset() to bzero(). We have a memset().
Found by:       FlexeLint
2003-05-31 19:31:46 +00:00
Poul-Henning Kamp
78b52202d0 Fix indentation.
Found by:       FlexeLint
2003-05-31 19:02:20 +00:00
Poul-Henning Kamp
01bfa91fa2 Fix off-by-one error in range check of VC index.
Found by:       FlexeLint
2003-05-31 19:01:08 +00:00
Poul-Henning Kamp
89e3693051 Remove extra ';'
Found by:       FlexeLint
2003-05-31 18:57:41 +00:00
Poul-Henning Kamp
d6b602d4b2 Remove unused variable.
Found by:       FlexeLint
2003-05-31 18:55:18 +00:00
Poul-Henning Kamp
c7b24d7dcd Remove unused variable.
Found by:       FlexeLint
2003-05-31 18:45:32 +00:00
Poul-Henning Kamp
777d1b3990 Fix off-by-one error in drive number check.
Don't return(foo(...)) in function returning void.

Found by:       FlexeLint
2003-05-31 18:41:09 +00:00
Poul-Henning Kamp
0623afde6f Remove extra unused variable.
Found by:       FlexeLint
2003-05-31 18:39:29 +00:00
Poul-Henning Kamp
9d4b1fa40e Remove extra ';'
Found by:       FlexeLint
2003-05-31 18:37:30 +00:00
Poul-Henning Kamp
da507a2181 Fix \ alignment in macro.
Remove breaks after return.
Remove unused variable.

Found by:       FlexeLint
2003-05-31 18:21:40 +00:00
Poul-Henning Kamp
f075585f67 Remove the G_CLASS_INITIALIZER, we do not need it anymore. 2003-05-31 16:59:27 +00:00
Poul-Henning Kamp
26028fee6f Don't use return(foo(...)); in function returning void.
Found by:       FlexeLint
2003-05-31 16:51:41 +00:00
Poul-Henning Kamp
17a1391990 The IO_NOWDRAIN and B_NOWDRAIN hacks are no longer needed to prevent
deadlocks with vnode backed md(4) devices because md now uses a
kthread to run the bio requests instead of doing it directly from
the bio down path.
2003-05-31 16:42:45 +00:00
Peter Wemm
151cd71608 Add the MD ifdefs for amd64 to point to the IO space bustag/handle.
Approved by:  re ("safe" amd64 support)
2003-05-31 06:45:28 +00:00
Scott Long
9d5be300d3 Add support for the upcoming 2410SA card.
Approved by:	re (telecon)
2003-05-30 09:22:19 +00:00
Scott Long
95c9929a3b aic79xx.c:
Use the special LUNLEN_SINGLE_LEVEL constant for
	post Rev A4 hardware for single byte luns.  Without
	this change, Rev B hardware would place the single
	byte of lun data in byte 0 of the lun structure when
	it should be in byte 1.  Since there are few if any
	devices on the market that support multiple luns in
	target mode, the corrupted lun field (which was only
	corrupted for non-zero luns) wasn't hurting us.

Approved by: re	(rwatson)
2003-05-30 02:15:15 +00:00
Scott Long
6ee007e145 Fix a reported case of severe data corruption:
aic79xx.h:
aic79xx.reg:
	Return the SCB_TAG field to 16byte alignment.
	It seems that on some PCI systems, SCBs are not
	transferred correctly to the controller with
	the previous placement of the SCB_TAG field.

Approved by:	re (rwatson)
2003-05-30 02:14:22 +00:00
Bernd Walter
6445c6bdf1 Correct the fix in rev 1.70
Some lines were misslocated

Submitted by:	Jay Cornwall <jay@evilrealms.net>
Approved by:	re (rwatson)
2003-05-29 23:47:12 +00:00
John Baldwin
4fb8dd97a7 Fix support for 256 MB aperture sizes on chipsets such as the 845 and
865.  The APSIZE register has a variable-sized field of enabled bits.
To figure out how many bits a specific host bridge supports, write the
maximum width and see how many bits are set in the hardware.  We then
use this mask for setting and getting the aperture size.  Prior to this,
the agp(4) driver would treat an aperture size of 256 MB as 128 MB and
would not allocate enough physical memory for the GART as a result.

MFC after:	3 days
Sponsored by:	The Weather Channel
Approved by:	re (rwatson)
2003-05-27 20:13:44 +00:00
John Baldwin
ebca65b627 Grr, fix compile. The bane of trying to split out patches into two
commits.

Reported by:	Lukas Ertl <l.ertl@univie.ac.at>
With hat:	re
Pointy hat to:	jhb
2003-05-27 19:42:18 +00:00
John Baldwin
6705889407 Fix compile: the type is spelled bus_dmasync_op_t rather than
bus_dmamap_sync_t.

With hat:	re
2003-05-27 18:32:24 +00:00
John Baldwin
e9ff34a5e2 Add support for the Intel 865 chipset.
MFC after:	3 days
Sponsored by:	The Weather Channel
Approved by:	re (murray)
2003-05-27 18:23:56 +00:00
Scott Long
bf423d4637 Remove the redundant declaration of bus_dmasync_op_t. 2003-05-27 16:34:52 +00:00
Scott Long
7e71df9339 Bring back bus_dmasync_op_t. It is now a typedef to an int, though the
BUS_DMASYNC_ definitions remain as before.  The does not change the ABI,
and reverts the API to be a bit more compatible and flexible.  This has
survived a full 'make universe'.

Approved by:	re (bmah)
2003-05-27 04:59:59 +00:00
Justin T. Gibbs
177799b596 This driver supports the 2920C not the 2920.
Make this clear in our card identification string.

PR: kern/50428
Approved by: RE
2003-05-26 21:45:09 +00:00
Justin T. Gibbs
8ed30d5b45 Consistently use #ifdef for testing AHC_TARGET_MODE.
Approved by: RE
2003-05-26 21:44:03 +00:00
Justin T. Gibbs
662152ce16 aic79xx.c:
aic79xx_osm.h:
aic7xxx_osm.h:
	Explicitly define functions that take no arguments
	with "(void)"

Approved by: RE
2003-05-26 21:43:29 +00:00