Commit Graph

14455 Commits

Author SHA1 Message Date
Warner Losh
ed3eb6ebe2 Don't type pun accidentally. Instead, be explicit that we're type
punning with an union so that the compiler knows.
2006-02-04 21:37:39 +00:00
Bill Paul
55ad415824 When ndis_attach() runs, it has to very briefly initialize the card
in order to query the underlying Windows driver for the station address
and some other properties. There is a slim chance that the card may
receive a packet and indicate it up to us before ndis_attach() can call
ndis_halt_nic(). This is bad, because both the softc structure and
the ifnet structure aren't fully initialized yet: many pointers are
still NULL, so if we make it into ndis_rxeof(), we will panic.

To fix this, we need to do the following:

- Move the calls to IoAllocateWorkItem() to before the call to ndis_init_nic().
- Move the initialization of the RX DPC and status callback function pointers
  to before ndis_init_nic() as well.
- Modify ndis_rxeof() to check if the IFF_DRV_RUNNING flag is set. If it
  isn't, we return any supplied NDIS_PACKETs to the NIC without processing
  them.

This fixes a crash than can occur when activating a wireless NIC in
close proximity to a very busy wireless network, reported by Ryan
Beasley (ryan%^$!ATgoddamnbastard-****!!!DOTorg.

MFC after:	3 days
2006-02-04 19:42:49 +00:00
Scott Long
1107d45356 Squash another use of vtophys. Instead of creating separate busdma objects
for doing static memory transfers, start collecting them into a single
object.
2006-02-04 17:56:17 +00:00
Scott Long
73450b30c8 Now that the em driver no longer needs to directly touch the scheduler, remove some
unneeded headers.
2006-02-04 16:50:14 +00:00
Scott Long
b0cb1aaf7c Add the start of busdma infrastructure to this driver. Convert the
ASR_resetIOPR function to use it.
2006-02-04 08:45:19 +00:00
Matt Jacob
51effc8cd5 Actually, no, I had it wrong in 1.109. The arguments to bus_dma_create_tag
are bus_addr_t, not bus_size_t.

In any case, turn off DAC support entirely until it is revamped to actually
work *correctly* for 64 bit platforms (not using a PAE definition and for
both initiator and target mode).
2006-02-04 08:39:02 +00:00
Scott Long
b32f2b9a08 Now that the U32 type is a really 32-bits wide, eliminate a bunch of other
bad assumptions and long values.
2006-02-04 08:20:23 +00:00
Warner Losh
d68da9fe4f Fix mismerge after last cvs update for the IFQ_DRV_DEQUEUE changes. 2006-02-04 08:19:00 +00:00
Warner Losh
e0c1d667ec Remove ifdef notyet SIOCGHWADDR vestige. 2006-02-04 08:16:41 +00:00
Warner Losh
70346a6275 Remove ifdef notdef SIOCHWADDR vestige. 2006-02-04 08:16:07 +00:00
Warner Losh
28383e51e2 Remove ifdef notyet for SIOCGHWADDR
Treat SIOCADDMULTI and SIOCDELMULTI the same, since they had the same code
Remove redundant assignment to error
Convert to using the altq interface completely.
2006-02-04 08:15:29 +00:00
Scott Long
90acf956d3 Give correct definitions to some basic types. 2006-02-04 08:01:49 +00:00
Scott Long
04ab3022a9 Fix a possible memory leak in asr_attach. 2006-02-04 06:08:19 +00:00
Scott Long
4b2dc3c447 i386/PAE defines bus_size_t to be 32-bits when it likely should be 64-bits.
Fixing it is left for another day, so just hack around it for now.
2006-02-04 03:41:48 +00:00
Ruslan Ermilov
bbe9814a5b Fix compilation with -Wundef (NBPF is undefined on FreeBSD >4). 2006-02-03 20:55:30 +00:00
Marius Strobl
8d727356c6 - Don't shift the clock frequency in MHz left by 8 before assigning it
to sbus_mdvec.dv_clock as sbus_mdvec.dv_clock is meant to be specified
  in MHz. While this was a bug it shouldn't have affected FreeBSD/sparc64
  as sbus_mdvec.dv_clock is used to limit the clock rate of chips when
  a machine isn't able to support them at maximum speed which isn't the
  case for sun4u machines.
- Remove the code that checks whether the clock frequency returned by
  sbus_get_clockfreq() is 0 and falls back to 25MHz if it is as that's
  already done in sbus(4).

Approved by:	mjacob
MFC after:	3 days
2006-02-03 12:35:42 +00:00
Warner Losh
6117d67f88 If the device has a PNPID, don't bother to attach. There were some
instances where the probe that was here would falsely grab a device.
2006-02-02 23:57:31 +00:00
Matt Jacob
53af7d226e Remove use of inlines and use the functions as a library.
Larger code space, possibly performance hit, but more portable.
Certainly less questionable use of inlining.

Suggested by: des
2006-02-02 21:31:34 +00:00
Paul Saab
0e74562fbc Enable 64bit SGL's on PERC 4/DC 2006-02-02 17:51:47 +00:00
Paul Saab
447c943f68 - Move the command setup from amr_start1 into the card specific submit
routines.
- Add or replace cpu_spinwait() with DELAY(1) to a few of the busy
  loops when reading from the controller to work around firmware bugs
  which can crash the controller.
2006-02-02 17:50:59 +00:00
Oleg Bulyzhin
ee7ef91c36 Enable 'complete' rx checksum offloading (i.e. let chip calculate checksums
with pseudo header for tcp/udp packets). This could save one in_pseudo() call
per incoming tcp/udp packet.

Approved by:	glebius (mentor)
MFC after:	3 weeks
2006-02-02 09:58:31 +00:00
Matt Jacob
b7918ba53a Make sure we don't pick up a loopid that's larger than our
current portdb max (MAX_FC_TARG == 256) now that we support
2K Login f/w.

MFC after:	3 days
2006-02-02 09:02:16 +00:00
John Baldwin
cb46523df0 Don't add an agp child in vgapci's attach routine if the PCIY_AGP
capability is present as not all devices supported by the agp_i810 driver
(such as i915) have the AGP capability.  Instead, add an identify routine
to the agp_i810 driver that uses the PCI ID to determine if it should
create an agp child device.
2006-02-01 15:45:29 +00:00
Oleg Bulyzhin
cfcb50259d Optimize bge_rxeof() & bge_txeof(): return immediately if there are no packets
to process. It could give us [significant?] perfomance increase if there is big
difference between RX/TX flows.

Submitted by:	Mihail Balikov <mihail.balikov AT interbgc DOT com>
Approved by:	glebius (mentor)
MFC after:	3 days
2006-02-01 15:16:03 +00:00
Oleg Bulyzhin
366454f2fd Since bge_rxeof() & bge_txeof() depends on status block data it should be
synchronized on every call of bge_poll_locked().

Suggested by:	Mihail Balikov <mihail.balikov AT interbgc DOT com>
Approved by:	glebius (mentor)
MFC after:	3 days
2006-02-01 14:41:08 +00:00
Oleg Bulyzhin
7b97099d42 1) Fix link state detection for cards operating in TBI mode (fiber ones)
2) add missing bus_dmamap_sync() call in bge_intr()

Tested by:	Husnu Demir <hdemir AT metu DOT edu DOT tr>
Approved by:	glebius (mentor)
MFC after:	3 days
2006-02-01 14:26:35 +00:00
Ruslan Ermilov
d183af7f3f Setting IFF_ALLMULTI on a running interface didn't call bge_setmulti()
as intended, resulting in a non-working multicast routing.  Fix it.

MFC after:	3 days
2006-02-01 10:11:24 +00:00
Warner Losh
01538a58fd ADDON is registered as 0x0d7d, not PNY. Don't confuse the two as we
try to use the registrant for numbers in this file, not the OEM that
put their label on it.  Use PNY's real number 0x154b.  Add another PNY
atachmate with quirks from a PR filed a while ago, but that I can't
seem to find now...
2006-01-31 19:09:38 +00:00
Marius Strobl
a7ee7a7d6a Add le(4), a driver for AMD Am7900 LANCE and Am79C9xx PCnet NICs ported
from NetBSD. This driver actually can replace lnc(4). Advantages over
lnc(4) are:
- Cleaner and more flexible regarding MD needs.
- Endian-clean and MPSAFE.
- Supports ALTQ, VLAN_MTU, ifmedia.
- Uses 32bit DMA for the PCI variants.

This commit includes front-ends for the dma(4) pseudo-bus found on SBus-
based sparc64 machines (thus supports the on-board LANCE in Sun Ultra 1)
and PCI. In order to actually replace lnc(4), the front-ends for ISA and
the PC98 CBUS would have to be added but for which I don't have hardware
to test.

Reviewed and some improvements by:	yongari
Tested on:				i386, sparc64
2006-01-31 14:48:58 +00:00
Luigi Rizzo
de64f22aa4 make sure that the start and end preloaded MFS markers are
in contiguous strings, and that the compiler does not optimize them
away because it thinks they are unused.
2006-01-31 13:35:30 +00:00
Roman Kurakin
dc8f61b4f1 Fix forward variable declaration. 2006-01-30 21:12:49 +00:00
Florent Thoumie
b308457205 - Add a scsi_da.c and a umass.c quirk for Genesys 6-in-1 Card Reader.
Reported by:	anders on freebsd-usb@
Tested by:	anders
Approved by:	ssouhlal
MFC after:	3 days
2006-01-30 20:27:44 +00:00
Gleb Smirnoff
479b23b772 This driver can do hardware VLAN tagging + checksum offloading.
In collaboration with:	Mihail Balikov <mihail.balikov interbgc.com>
2006-01-30 13:45:55 +00:00
Philip Paeps
f50bf4010f Add support for Asus A4D laptops. Currently without display switching
support.  Which reminds me that I'm not even sure if this works on _any_
laptop at all. :-o

PR:		kern/90607
Submitted by:	"Wojciech A. Koszek" <dunstan -at- freebsd.czest.pl>
MFC after:	3 days
2006-01-29 23:59:43 +00:00
Philip Paeps
e691fe45a2 Add support for Asus A6VM laptops.
Submitted by:	Sashi Asokarajan <mail -at- sashi.de>
MFC after:	3 days
2006-01-29 23:54:32 +00:00
Philip Paeps
b9abb62d05 Allow non-P laptops to make use of this module.
Other major changes (from the author):

 o Individual method probing
 o Finally figured out what the RBLL, RVOL, GHKS, GSIF are:
   - RBLL - lcd_brightness radix
   - RVOL - volume radix
   - GHKS - Currently activated hotkey (internal)
   - GSIF - Hotkey mask (internal)

Submitted by:	Anish Mistry <mistry.7 -at- osu.edu>
MFC after:	3 days
2006-01-29 23:52:02 +00:00
Alexander Leidinger
c8c4c87d6a Fix some potential NULL pointer dereferences.
This is supposed to fix some Coverity Prevent errors (Ariff didn't
looked at the CID's (ENOTIME), I just told him that there are some problems
in function dsp_ioctl()).

CID:		215-218
Found with:	Coverity Prevent(tm)
Submitted by:	ariff
MFC after:	5 days
2006-01-29 16:48:41 +00:00
Damien Bergamini
7563bf8d6a Adjust tx power based on user preferences. 2006-01-29 12:47:07 +00:00
Damien Bergamini
0cfa855f81 o Fix short preamble support
o Fix contention window
o Feed rx rate to radiotap
o Clean ral_setup_txdesc (sync w/ ural)
o s/ic_ibss_chan/ic_curchan/
2006-01-29 12:35:26 +00:00
Damien Bergamini
84f55b29e9 o Re-enable scatter/gather
o Change MEM_READ_1/MEM_READ_4 into macros (move them to if_iwireg.h)
o Add support for association LED
o Silently discard f/w notifications that are unknown (fixes spurious
  "unknown notification 15" in logs with latest firmware)
o Fix scanning of 5GHz channels
2006-01-29 12:03:03 +00:00
Ariff Abdullah
4a193ac907 Tune format scoring so (non)stereo format will get better chance
to be selected.
2006-01-29 01:32:37 +00:00
Scott Long
db161bd596 Squash another invalid use of BUS_DMA_ALLOCNOW.
MFC After: 3 days
2006-01-28 15:50:19 +00:00
Warner Losh
96ba6a6eb2 Have a function pointer to the routine to call for writing an mbuf
into the card's memory.

# this eliminates a more of the ifdef soup in if_ed and if_edvar

# I've fixed the cbus drivers, but can't test them all easily.

If I've broken anything, please let me know.
2006-01-27 19:10:13 +00:00
Pawel Jakub Dawidek
b322d85d53 Call NDFREE() only when vn_open() succeeded.
MFC after:	3 days
2006-01-27 11:27:55 +00:00
Roman Kurakin
2ee4be8ec6 Initial import of ce(4) driver for Cronyx Tau-PCI/32 adapters.
Not yet connected to the build.
2006-01-27 09:02:09 +00:00
John-Mark Gurney
bb80263411 if we are compiling with smbus support, properly depend upon the iic and
smbus modules, otherwise as a module you can't kldload bktr...

MFC after:	3 days
2006-01-27 08:42:48 +00:00
Warner Losh
8d0ed6fe4a Create mediachg functions for the 3c503 and hpp cards. This is used
to properly configure the right interface to use.

Also call the mediachg function when we set flags UP and are already
running.  If this were a pure ifmedia driver, we'd not need to do this
since we'd be ignoring the linkX flags.

This reduces the number of ifdefs to support sub-devices a little as a
nice side effect.  It also reduces the number of hpp interfaces
exposed by 33%.
2006-01-27 08:25:47 +00:00
Warner Losh
6d4833ddbe Style(9) issue: return (foo); 2006-01-27 08:10:36 +00:00
Warner Losh
0fbdbd5068 Transition from ALTPHYS to LINK2. We already document in the ed(4)
man page that the ifconfig option link2 is used to disable the AUI
transceiver on the 3com boards (should also say HP PC Lan+).  This
makes the connection clearer.

Add a note about why we set this flag prior to attaching the device.
We never set or clear the flag later, only test it.  There can be no
races here, but this might be asthetically displeasing to some.  Also
note that we may no longer need to have this knob at all as we may be
able to do it with the more sophisticated rc.d scripts we have today I
think the only reason it is there is because we didn't used to allow
its proper setting when configured to get the IP address via DHCP.

I'll note that this would be better handled by using ifmedia for all
ed cards, not just those with a miibus...
2006-01-27 08:00:40 +00:00
Warner Losh
e6c59e911f minor nit in comment about what kind of flags these are 2006-01-27 07:51:26 +00:00