Commit Graph

9166 Commits

Author SHA1 Message Date
Maxim Sobolev
cf0d8a1e48 Use pci_enable_{busmaster|io}() instead of directly writing into
PCI configuration register.

Submitted by:	mdodd
2003-04-14 15:50:04 +00:00
Bernd Walter
65193b3e5d Use a sim for each device on it's own instead of one for all umass
devices.
This reduces complexity and fixes a number of small problems.

Approved by:	gallatin (mentor)
Reviewed by:	njl
2003-04-14 14:28:17 +00:00
Hidetoshi Shimokawa
050871cc4f Panic if bus_dmamap_load() doesn't respect maxsegsz. 2003-04-14 14:17:49 +00:00
Bernd Walter
ca3acad1d7 add EHCI (USB 2.0) controller support.
Approved by:	joe
		gallatin (mentor)
Obtained from:  NetBSD
2003-04-14 14:04:08 +00:00
Maxim Sobolev
bb342a3713 Before attaching device set PCIM_CMD_PORTEN in addition to
PCIM_CMD_MEMEN and PCIM_CMD_BUSMASTEREN, becaise some braindead
BIOSes (such as one found in my vprmatrix notebook) forget
to initialize it properly resulting in attachment failure.
2003-04-14 09:45:25 +00:00
Poul-Henning Kamp
7715475960 More correct patch: Only call biofinish if we have not already sent
any children down the mesh.
2003-04-14 08:49:54 +00:00
Poul-Henning Kamp
2f912fc976 Call biofinish() also when we get a malloc() failure. 2003-04-14 08:08:17 +00:00
Max Khon
7d0de413cb Driver for Granch SBNI16 SHDSL modem
Submitted by:	Denis I. Timofeev <timofeev@granch.ru>
MFC after:	1 week
2003-04-13 06:27:13 +00:00
Mitsuru IWASAKI
d75de53699 Add new sysctl MIB (hw.acpi.supported_sleep_state) to indicate
the list of supported sleep state.
This should help people understand what following message means.

acpi0: AcpiGetSleepTypeData failed - AE_NOT_FOUND

MFC after:	3 days
2003-04-11 16:53:56 +00:00
Maxime Henrion
20f0c80f6f - Call ether_ifdetach() before shutting down the hardware.
- Remove a useless device_is_alive() check.
- Disable interrupts if bus_child_present() so that this
  check is more useful.

This fixes the hangs I was seeing when unloading the fxp driver.

Suggestions from:	hsu, njl
2003-04-11 12:52:52 +00:00
Maxime Henrion
7a648f56cf I deserve a big pointy hat for having missed all those references
to bus_dmasync_op_t in my last commit.
2003-04-10 23:50:06 +00:00
Maxime Henrion
b983c7b3ed - Clean up the fxp_release() and fxp_detach() functions.
- Be sure to teardown the interrupt first so that "kldunload if_fxp"
  doesn't panic the box.  It's now deadlocking rather than crashing,
  which isn't really better, but I'm unsure this is fxp(4)'s fault.
- Change a bus_dmamap_sync() call to also do a BUS_DMASYNC_PREREAD
  now that we can pass several operations.
2003-04-10 23:15:12 +00:00
Søren Schmidt
4379543ce8 Spell 55 with two '5's 2003-04-10 12:56:33 +00:00
Søren Schmidt
041187d122 Add a few more older SiS ID's. 2003-04-10 12:24:39 +00:00
Matthew N. Dodd
5bff20ef7c Add quirk for LOGITECH WMRPAD.
Submitted by:	Mathew Kanner <mat@cnd.mcgill.ca>
2003-04-10 08:25:09 +00:00
Matthew N. Dodd
17a22e1463 - Add LOGITECH WMRPAD, MOTOROLA SB410, and SANDISK SDDR05.
- Regenerate.
2003-04-10 08:24:33 +00:00
Warner Losh
81f290a510 Fix interrupt race.
From NetBSD
2003-04-10 07:55:55 +00:00
Warner Losh
cb339c7cd9 SMC 8041 is the same thing as LINKSYS COMBO_ECARD, so no extra entry
is required.  NetBSD has one because it checks for the mac address
match as well wanting to give its own string in the description.
Since we do neither, we don't need a separate entry.

# I suspect that a few of the COREGA cards might fall into that category
# as well, but since I don't have access to any of them it is hard to know
# for sure.
2003-04-10 07:35:19 +00:00
Warner Losh
843aa7b528 Add Billionton CFLT10N and SMC8041 (although I'm not 100% sure the latter is
needed).  Remove duplicate kingston kne2 entry.

Info obtained from NetBSD
2003-04-10 07:24:18 +00:00
Warner Losh
46d5f4e726 Remove bogus line and entry, restore cnet ne2000 add smc 8041 2003-04-10 07:21:11 +00:00
Warner Losh
227e700639 reorganize the supported card table. We don't need the enet_vendor or
enet_mcast fields, so remove them.  Sort.  Eliminate now duplicate
entries.

This reorg saves about 500 bytes in the binary.  I've tested this only
with a couple of cards, so please let me know if I've broken anything.
2003-04-10 07:04:39 +00:00
Warner Losh
1cf793aaaf Sync to 1.46 2003-04-10 06:59:35 +00:00
Warner Losh
2b358bf2dc MFNetBSD:
1.182; christos
	A cardflash NE2000 from Michael Francini
	1.181; perry
	support Corega PCCL-11 -- from Christopher SEKIYA in PR 20932
	1.180; ichiro
	add product TOSHIBA PA2673U CBIDE2 (IODATA OEM)
	1.179; kanaoka
	Add SMC 8041TX 10/100 Ether PC Card.
2003-04-10 06:58:40 +00:00
Warner Losh
649a9521d5 Don't set the description if NULL. 2003-04-10 06:08:27 +00:00
Warner Losh
5414629575 Don't lock in the attach routine. It isn't required. Register the
interrupt handler last.  This gets rid of the sleep while locked
messages.

Reviewed by: ambrisko
2003-04-10 05:12:45 +00:00
Warner Losh
f5746231ff Make sure that pp_name is non-null before setting the device
description.  This allows us to rely entirely on the CIS entries if
necessary...
2003-04-10 04:36:02 +00:00
Warner Losh
2701fed4cf Back out the _ND change. I plan on making all drivers default to that with
a special _DESC version for those cards whose CIS is insufficient for some
reason.  This should save about 3k of kernel strings when complete.
2003-04-10 04:14:35 +00:00
Warner Losh
7de3ac49a9 In [bsd-nomads:16650] shibagaki-san presented an example product id of
0 in a problem that is being discussed.  That means that the test for
product != 0 may cause problems.  Looking at pccarddevs (which i
should have done earlier) we see:

product	BONDWELL B236		0x0000 Game Card Joystick
product CONTEC CNETPC		0x0000 Contec C-NET(PC)C
product IBM MICRODRIVE		0x0000 IBM Microdrive
product RAYTHEON WLAN		0x0000 WLAN Adapter
product SOCKET EA_ETHER		0x0000 Socket Communications EA
product TDK LAK_CD011WL		0x0000 TDK LAK-CD011WL

so use only the vendor field for the end sentinel.
2003-04-10 04:11:15 +00:00
Warner Losh
68d25868d0 1.37 was committed prematurely: back out until I can commit all parts at the
same time.
2003-04-09 22:10:28 +00:00
Warner Losh
60feb70860 1.77 was bogus: there is no logic bug. Back it out and compare the
correct fields instead.
2003-04-09 22:07:02 +00:00
John Baldwin
685a76429a Fix a logic bug in previous commit (use || rather than &&). In order to
terminate the loop only when both the name and vendor are zero, we should
keep looping so long as either one is not zero.
2003-04-09 21:24:23 +00:00
Warner Losh
7e9b53e399 Make sure that both pp_name and pp_vendor are zero to know we're at the
end of the list now that some valid entries don't have pp_name set.  Also,
don't print a warning if pp->name is NULL and it is a total wildcard.
2003-04-09 15:54:00 +00:00
Jake Burkholder
ab89b20ced Compile with PAE. 2003-04-09 14:58:02 +00:00
Poul-Henning Kamp
4e8bfe1482 Add a couple of undocumented test options to MD(4) to aid in regression
testting of GEOM.
2003-04-09 11:59:29 +00:00
Matthew N. Dodd
efddc6c820 At least pretend to handle USB_GET_REPORT_ID. 2003-04-09 08:43:01 +00:00
Mike Silbersack
db5f2ca8df Fix if_vr's handling of vr_encap failures. 3 parts:
- Don't bother setting OACTIVE when the descriptors are all full
  or there's a vr_encap failure, it doesn't help anything.
- Correctly roll back on the descriptor list after a failure
  so as not to corrupt the list.
- Add a missing VR_UNLOCK().

Without these changes, vr_encap failure (which is assured during
a low mbuf situation) would result in the card locking until
the watchdog could fire.

MFC after:	1 week
2003-04-09 02:21:54 +00:00
Poul-Henning Kamp
d2e0ecd0f0 Almost the finished article.
Boost sample rate to 1.25 MSPS since that allows us to use a 5Mhz
(/4) or 10Mhz (/8) external clock.

Make the interrupt both MPSAFE and FAST, at 610 interrupts a second,
and a max time to service of 5 msec, we brake for nobody.

Use kernel thread to accumulate into the 25 possible wave signals.

Use #ifdef _KERNEL to let .c file double as .h file defining the ioctls.
2003-04-08 19:12:48 +00:00
Maxime Henrion
209b07bc4c - Pass a busdma tag and a busdma map to fxp_dma_wait() so that
it can do the necessary bus_dmamap_sync() calls.
- While I'm here, reorder arguments to match other functions.
2003-04-08 18:56:45 +00:00
Maxime Henrion
14fd107181 Add an XXX comment for the atomic operation in the __alpha__
case so that it doesn't confuse more people.  Use the more
correct atomic_clear_16() instead of atomic_clear_short().
2003-04-08 18:35:51 +00:00
Søren Schmidt
71ec78e340 Fix breakage on sparc64.
Note to self: always test even the smallest changes on all platforms.
2003-04-08 18:01:30 +00:00
Maxime Henrion
bafb64af4f - Endian fixes.
- 6 -> ETHER_ADDR_LEN.
2003-04-08 17:21:15 +00:00
Warner Losh
b899d58ee4 Use the new _ND macros to not include the description strings. If any
of the entries have a description, we'll use that to override the
description that the pccard layer generates for us.

This saves about 930 bytes in the module, so I feel it won't hurt the
crowded boot disks....

# other modules to follow
2003-04-08 15:36:43 +00:00
Warner Losh
bf1f89d49c Create new _ND versions to allow one to not specify the description be
stored in the table.
2003-04-08 15:28:58 +00:00
Warner Losh
c3805dd0ad Don't set the decription, since the pccard layer does that for us now.
Remove the duplicate entries that were there to disambiguate different
cards that were the same, yet people wanted to have different dmesg.
2003-04-08 15:26:02 +00:00
Dag-Erling Smørgrav
fe58453891 Introduce an M_ASSERTPKTHDR() macro which performs the very common task
of asserting that an mbuf has a packet header.  Use it instead of hand-
rolled versions wherever applicable.

Submitted by:	Hiten Pandya <hiten@unixdaemons.com>
2003-04-08 14:25:47 +00:00
Maxime Henrion
50d81222d8 Fix the hangs people have been seeing. For some reason, the
atomic operation change caused this, so backout it until I
can figure out what's wrong with it.
2003-04-08 13:05:11 +00:00
Søren Schmidt
08312d8f48 Fix a long standing bug in handling the last part of a stripe
on "odd" size disks.

Add printout of the RAID structure on verbose boot.
2003-04-08 07:48:52 +00:00
Warner Losh
6d9fcd03be MFp4: when you can't allocate a resource, print a message, don't panic. 2003-04-08 07:05:16 +00:00
Warner Losh
6586fa7c43 MFP4:
o don't access struct resource members directly.
o Set a default device description based on the CIS name.
2003-04-08 07:02:03 +00:00
Warner Losh
0540e305b6 u_int*_t -> uint*_t
-1 -> 0xffffffff
2003-04-08 06:59:20 +00:00
Warner Losh
307def65f1 Don't need to read this config register if we're just going to
overwrite it in the next line.
2003-04-08 06:54:10 +00:00
Warner Losh
9713a7922e MFp4: Massively unbreak module loading/unloading:
o Only complain about detached children that aren't pccard/cardbus.
o Don't NULL out the pccarddev and cbdev devices.  detach just
  disassociates the device and driver.  It doesn't delete the child.
o on driver added, just probe_and_attach the children.  If there's
  any children attached, wakeup the device add/delete thread.
o wakeup the add/delete thread with the correct cv_signal() rather
  than the bogus wakeup(sc).  It used to be that we did a tsleep on
  sc in this thread, but switched to the more reliable cv stuff a while
  ago w/o changing this.
o Remove bogus checks when reallocating memory for the registers.  They
  weren't needed and turned out to be completely bogus.

This lets me load/unload pccard with a pccard in a slot and have the
child correctly detach/attach.  This should help people that have wi
in their kernel, but that kldload cbb and pccard, for example.
2003-04-08 06:52:16 +00:00
Maxime Henrion
d73e2e5593 Correct the maxsize and maxsegsz parameters for the
bus_dma_tag_create() calls.  Without this, fxp(4) + PAE
would consume insane amounts of bounce pages.
2003-04-07 17:02:44 +00:00
Warner Losh
0b269efc05 resync 2003-04-07 15:36:46 +00:00
Maxime Henrion
2c6c094714 Remove an erroneous htole16(). The byte_count field in the
struct fxp_cb_config is a 6-bit field, not a 16-bit integer
as in struct fxp_cb_tx.
2003-04-07 14:53:30 +00:00
Søren Schmidt
b5855cd133 Minor cleanup of the ATA RAID code. 2003-04-07 14:14:29 +00:00
Søren Schmidt
1b39bd2412 Third round of updates to the ATA driver.
More DMA cleanups, including fix for breakage on older Promise controllers.

Add more ways of getting to the ATA registers.
2003-04-07 14:12:12 +00:00
Murray Stokely
65793abdff Add ID for Kawasaki LSI Inc. USB-Ethernet, rev 1.00/2.02 adapter.
PR:		kern/50064
Submitted by:	Scott Renfro <scott@renfro.org>
MFC after:	3 days
2003-04-07 10:26:59 +00:00
Matthew N. Dodd
efc5f672bd - Add PCI support (Adaptec AHA-2920/A,Future Domain TMC-18XX/3260).
- Reduce duplicated code.

PR:             50427
Submitted by:   Bob Bishop <rb@gid.co.uk>
2003-04-07 10:13:25 +00:00
Murray Stokely
887938c12f Fix typo.
PR:		kern/50504
Submitted by:	Alex Semenyaka <alexs@snark.ratmir.ru>
MFC after:	3 days
2003-04-07 10:06:48 +00:00
Murray Stokely
13b051bb51 Correct typos.
PR:		kern/50619
Submitted by:	Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
MFC after:	3 days
2003-04-07 09:42:45 +00:00
Maxime Henrion
5f361cbe0e Move a bus_dmamap_sync() to the correct place. 2003-04-06 23:16:00 +00:00
Maxime Henrion
ec6b76b760 Because alpha can't access memory in 16-bit granularity,
we're using an atomic operation to clear the suspend flag
in fxp_start().  Since other architectures may need the
same thing, we want to do it all the time and not only
in the __alpha__ case.  However, we don't want to use
atomic operations on 16-bit integers, because those may
not be available on any architecture.  We're thus faking
a 32-bit atomic operation here.  This patch also deals
with endianness here.
2003-04-06 23:09:57 +00:00
Maxime Henrion
d45d97d1fc Revert the s/u_int/u_int8_t/ changes, we can't really use other
integer types than int with bit-fields in a portable way.

Prodded by:	bde
2003-04-06 21:35:45 +00:00
Scott Long
e48fff82ef Add support for the CLIE 5.0 series of PDAs 2003-04-06 17:34:50 +00:00
Scott Long
2a33b44247 Regen from usbdevs v.116 2003-04-06 17:34:08 +00:00
Scott Long
4ba81f4602 Regen 2003-04-06 17:32:39 +00:00
Scott Long
e220a08537 Add ID's for the CLIE 5.0 series and the Belkin F5U109 usb->serial adapter. 2003-04-06 17:32:12 +00:00
Maxime Henrion
01c516b02a Use __FBSDID. 2003-04-06 01:27:12 +00:00
Maxime Henrion
6835a8accc Correct the definition of the link_addr and rbd_addr fields
in struct fxp_rfa.  This should have been committed with my
last endianness fixes.
2003-04-06 01:11:38 +00:00
Maxime Henrion
83e6547df1 - Instead of rolling our own alignment-safe function, use le32enc()
which deals with both endianness and alignment issues.
- Collect low-hanging fruits for endianness safety.
- Use 0xffffffff instead of -1 where appropriate.
2003-04-06 01:04:17 +00:00
Maxime Henrion
467295e056 - Use __FXP_BITFIELDX macros to make the configuration bitfield
endian safe.
- Change some u_int to u_int8_t which make more sense here since
  we're really defining bytes.  That produces the same code due to
  how bitfields work.
- Add the definition of the vlan_drop_en bit (not used yet).
- Add some useful comments.

Obtained from:	NetBSD
2003-04-05 23:46:58 +00:00
Olivier Houchard
0a65bc0775 Fix ed compilation with PAE by using %jx instead of %x. 2003-04-05 18:12:36 +00:00
Maxime Henrion
4cec16537d - Change a FXP_NRFABUFS which would have been a FXP_NTXCB.
- Correct some bus_dmamap_sync() calls.

Submitted by:	jake
2003-04-05 12:43:21 +00:00
Maxime Henrion
201afb0e56 Setup our interrupt only at the end of fxp_attach(), when all
other allocations/initializations have been successful.  I kinda
doubt it will fix the recent breakage that some people are seeing,
but this could have caused problems for sure.
2003-04-05 01:27:17 +00:00
Poul-Henning Kamp
fb89eb1ed7 Add a rudimentary but working driver for the Adlink "NuDaq PCI-9812".
This is a 4 channel 20 msps 12 bit ADC card.

Anyone wanting to play with GNUradio or similar can start here.
2003-04-04 18:53:04 +00:00
MIHIRA Sanpei Yoshiro
e0926f607f Add NE2000DVF_AX88190 flag to Corega FEther PCC-TXD
(see also /etc/defaults/pccard.conf rev.1.172)
2003-04-04 14:46:50 +00:00
MIHIRA Sanpei Yoshiro
e21115ab06 fix typo 2003-04-04 14:40:01 +00:00
Orion Hodson
ba548c643a Additional codec ids. 2003-04-04 07:37:25 +00:00
Orion Hodson
538b04e4ad Fix mismatch between bus address stored for buffer descriptors and
actual address of buffer descriptor.  This should fix the reported
calibration failures and subsequent speed problems with ich chipsets.

Minor calibration comment updates.
2003-04-04 07:15:19 +00:00
David E. O'Brien
8368cf8f75 Use __FBSDID rather than rcsid[]. 2003-04-03 21:36:33 +00:00
Maxime Henrion
5353c9b6ba Remove useless initialization. 2003-04-03 20:39:43 +00:00
Paul Saab
9e7313bba7 Add support for the HP Smart Array 6400 EM
Change the interrupt mask for the Smart Array 6xxx controllers after
discussions w/ HP.
2003-04-03 20:09:27 +00:00
Poul-Henning Kamp
4eba52a2d2 Remove all references to BIO_SETATTR. We will not be using it. 2003-04-03 19:19:36 +00:00
Maxime Henrion
c2a2b443e2 Fix fxp(4), this changed shouldn't have crept in.
Pointy hat to:	mux
Reported by:	Pawel Worach <pawel.worach@nordea.com>
2003-04-03 18:39:48 +00:00
Dag-Erling Smørgrav
91b928c950 <sys/disk.h> -> <geom/geom_disk.h> 2003-04-03 16:28:57 +00:00
Maxime Henrion
e609b4d7db Remove all the bogus volatile qualifiers from the structs definitions
and associated evil casts to discard them.
2003-04-03 14:08:35 +00:00
Poul-Henning Kamp
8f24aac6b9 Add support for Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232
Submitted by:	sst@cybercity.dk
2003-04-03 09:47:15 +00:00
Poul-Henning Kamp
3ad3653c7a Don't use dkmakeminor(), create our own minor encoding instead. 2003-04-03 08:50:35 +00:00
Maxime Henrion
b2badf0214 Convert the fxp(4) driver to the busdma API.
This patch is rather big because I had to significantly redesign
the driver to make the busdma conversion possible.  Most notably,
hardware and software structures were carefully splitted to get
rid of all the structs overlapping evilness.

Special thanks to phk and Richard Puga <puga@mauibuilt.com> for
providing me with fxp(4) hardware to do this work.

Thanks to marcel for testing this on ia64, and to Fred Clift
<fclift@verio.net> for testing this on alpha.

Tested on:	i386, ia64, alpha
2003-04-02 16:47:16 +00:00
Søren Schmidt
b539f9d523 Instead of not grapping a request binfinish(ENOMEM) it if malloc fails. 2003-04-02 11:36:43 +00:00
Andrew Gallatin
9ef024f7b7 Add a crutch so that direct-mapped DMA works on alpha. This is a step
toward preventing this driver from crashing an alpha at boot.

Tested by: Oliver Lehmann <lehmann@ans-netz.de>
2003-04-01 16:31:12 +00:00
Poul-Henning Kamp
891619a66d Use bioq_flush() to drain a bio queue with a specific error code.
Retain the mistake of not updating the devstat API for now.

Spell bioq_disksort() consistently with the remaining bioq_*().

#include <geom/geom_disk.h> where this is more appropriate.
2003-04-01 15:06:26 +00:00
Poul-Henning Kamp
51a5b7f1ba Don't include <sys/disk.h>. 2003-04-01 13:33:28 +00:00
Poul-Henning Kamp
a4d7a3c069 Include <sys/conf.h> rather than trusting <sys/disk.h> to do so. 2003-04-01 12:35:17 +00:00
Poul-Henning Kamp
6f46bf604d Fix KASSERT syntax error. 2003-04-01 08:57:28 +00:00
Poul-Henning Kamp
c8d01707ba Fix KASSERT syntax errors.
Please compile LINT before commiting.
2003-04-01 08:10:21 +00:00
John Baldwin
59f47d29b7 Add missing ()'s so that these drivers all compile again.
Noticed by:	jake
Tested on:	i386 (compile)
2003-03-31 20:22:00 +00:00
Jake Burkholder
a11d7214fd Match "serial" as well as "se". 2003-03-31 18:21:52 +00:00
Nate Lawson
54f1f1d1e6 Clean up locking and resource management for pci/if_*
- Remove locking of the softc in the attach method, instead depending on
  bus_setup_intr being at the end of attach (delaying interrupt enable until
  after ether_ifattach is called)
- Call *_detach directly in the error case of attach, depending on checking
  in detach to only free resources that were allocated.  This puts all
  resource freeing in one place, avoiding thinkos that lead to memory leaks.
- Add bus_child_present check to calls to *_stop in the detach method to
  be sure hw is present before touching its registers.
- Remove bzero softc calls since device_t should do this for us.
- dc: move interrupt allocation back where it was before.  It was unnecessary
  to move it.  This reverts part of 1.88
- rl: move irq allocation before ether_ifattach.  Problems might have been
  caused by allocating the irq after enabling interrupts on the card.
- rl: call rl_stop before ether_ifdetach
- sf: call sf_stop before ether_ifdetach
- sis: add missed free of sis_tag
- sis: check errors from tag creation
- sis: move dmamem_alloc and dmamap_load to happen at same time as tag creation
- sk: remove duplicate initialization of sk_dev
- ste: add missed bus_generic_detach
- ti: call ti_stop before ether_ifdetach
- ti: add missed error setting in ti_rdata alloc failure
- vr: add missed error setting in I/O, memory mapping cases
- xl: add missed error setting in I/O, memory mapping cases
- xl: remove multi-level goto on attach failure
- xl: move dmamem_alloc and dmamap_load to happen at same time as tag creation
- Calls to free(9) are unconditional because it is valid to call free with a
  null pointer.

Reviewed by:	imp, mdodd
2003-03-31 17:29:43 +00:00