Commit Graph

71841 Commits

Author SHA1 Message Date
Andrew Thompson
3930731567 MFp4 //depot/projects/usb@159922
Refactor how we interface with the root HUB. This cuts around 1200 lines of
code totally and saves one thread per USB bus.

Submitted by:	Hans Petter Selasky
2009-04-05 18:20:49 +00:00
Andrew Thompson
4eae601ebd MFp4 //depot/projects/usb@159909
- make usb2_power_mask_t 16-bit
- remove "usb2_config_sub" structure from "usb2_config". To compensate for this
  "usb2_config" has a new field called "usb_mode" which select for which mode
  the current xfer entry is active. Options are: a) Device mode only b) Host
  mode only (default-by-zero) c) Both modes.  This change was scripted using
  the following sed script: "s/\.mh\././g".
- the standard packet size table in "usb_transfer.c" is now a function, hence
  the code for the function uses less memory than the table itself.

Submitted by:	Hans Petter Selasky
2009-04-05 18:20:38 +00:00
Andrew Thompson
3b52b6f172 MFp4 //depot/projects/usb@159908
Reduce the amount of memory used by better sizing buffer arrays.

Submitted by:	Hans Petter Selasky
2009-04-05 18:20:24 +00:00
Andrew Thompson
51ec16035f MFp4 //depot/projects/usb@159897
Add new endpoint direction values for use with usb2_config

Submitted by:	Hans Petter Selasky
2009-04-05 18:20:13 +00:00
Andrew Thompson
63521bbc5a MFp4 //depot/projects/usb@159871
- bugfixes after the memory usage reduction patch
- Use "udev->pipes_max" instead of USB_EP_MAX
- Use correct "bmRequestType" for getting the config descriptor.

Submitted by:	Hans Petter Selasky
2009-04-05 18:20:03 +00:00
Andrew Thompson
bdd4120608 MFp4 //depot/projects/usb@159866
- memory usage reduction by only allocating the required USB pipes and USB
  interfaces.
- cleanup some USB parsing functions to be more flexible.

Submitted by:	Hans Petter Selasky
2009-04-05 18:19:52 +00:00
Andrew Thompson
0ed53d4515 MFp4 //depot/projects/usb@159864
Fix possible deadlock with UGEN at detach.

Submitted by:	Hans Petter Selasky
2009-04-05 18:19:42 +00:00
Andrew Thompson
dab47558c8 MFp4 //depot/projects/usb@159863
Speed up the endpoint descriptor search

Submitted by:	Hans Petter Selasky
2009-04-05 18:19:30 +00:00
Andrew Thompson
7efaaa9a91 MFp4 //depot/projects/usb@159811
First patch in a series of memory save patches.

Submitted by:	Hans Petter Selasky
2009-04-05 18:19:19 +00:00
Andrew Thompson
ab32485fd9 MFp4 //depot/projects/usb@159806
Properly name usb2_uref_location() so that it is not confused with
usb2_unref_location() .

Submitted by:	Hans Petter Selasky
2009-04-05 18:19:10 +00:00
Andrew Thompson
9e6e0ec449 MFp4 //depot/projects/usb@159797
Remove unused field in "struct usb2_pipe".

Submitted by:	Hans Petter Selasky
2009-04-05 18:19:00 +00:00
Andrew Thompson
684e3f2245 MFp4 //depot/projects/usb@159700
Get rid of the last CALLOUT_RETURNUNLOCKED reference.

Submitted by:	Hans Petter Selasky
2009-04-05 18:18:47 +00:00
Andrew Thompson
72b532e501 MFp4 //depot/projects/usb@159677
Remove redundant locking.

Submitted by:	Hans Petter Selasky
2009-04-05 18:18:36 +00:00
Andrew Thompson
eb846b4eb5 MFp4 //depot/projects/usb@159674
Fix more corner cases around reception of SETUP packets.

Submitted by:	Hans Petter Selasky
2009-04-05 18:18:25 +00:00
Andrew Thompson
f3464815ee MFp4 //depot/projects/usb@159673
Fix a corner case around stalling SETUP packets in device side mode.

Submitted by:	Hans Petter Selasky
2009-04-05 18:18:16 +00:00
Andrew Thompson
df075012e8 MFp4 //depot/projects/usb@159671
Fix interrupt register setting on the atmegadci controller.

Submitted by:	Hans Petter Selasky
2009-04-05 18:18:07 +00:00
Andrew Thompson
01e1df136a MFp4 //depot/projects/usb@159562
Reapply r190173 with compilation fixed on 64bit arches.

Submitted by:	Hans Petter Selasky
2009-04-05 18:18:01 +00:00
Dmitry Chagin
cd899aad76 Fix KBI breakage by r190520 which affects older linux.ko binaries:
1) Move the new field (brand_note) to the end of the Brandinfo structure.
2) Add a new flag BI_BRAND_NOTE that indicates that the brand_note pointer
   is valid.
3) Use the brand_note field if the flag BI_BRAND_NOTE is set and as old
   modules won't have the flag set, so the new field brand_note would be
   ignored.

Suggested by:	jhb
Reviewed by:	jhb
Approved by:	kib (mentor)
MFC after:	6 days
2009-04-05 09:27:19 +00:00
Alan Cox
beb3c3a9c5 Retire VM_PROT_READ_IS_EXEC. It was intended to be a micro-optimization,
but I see no benefit from it today.

VM_PROT_READ_IS_EXEC was only intended for use on processors that do not
distinguish between read and execute permission.  On an mmap(2) or
mprotect(2), it automatically added execute permission if the caller
specified permissions included read permission.  The hope was that this
would reduce the number of vm map entries needed to implement an address
space because there would be fewer neighboring vm map entries that differed
only in the presence or absence of VM_PROT_EXECUTE.  (See vm/vm_mmap.c
revision 1.56.)

Today, I don't see any real applications that benefit from
VM_PROT_READ_IS_EXEC.  In any case, vm map entries are now organized
as a self-adjusting binary search tree instead of an ordered list.  So,
the need for coalescing vm map entries is not as great as it once was.
2009-04-04 23:12:14 +00:00
Marcel Moolenaar
e9b3f3045d Perform a dummy stwcx. when we switch contexts. The context
being switched out may hold a reservation. The stwcx. will
clear the reservation. This is architecturally recommended.

The scenario this addresses is as follows:
1. Thread 1 performs a lwarx and as such holds a reservation.
2. Thread 1 gets switched out (before doing the matching
   stwcx.) and thread 2 is switched in.
3. Thread 2 performs a stwcx. to the same reservation granule.
   This will succeed because the processor has the reservation
   even though thread 2 didn't do the lwarx.

Note that on some processors the address given the stwcx. is
not checked. On these processors the mere condition of having
a reservation would cause the stwcx. to succeed, irrespective
of whether the addresses are the same. The dummy stwcx. is
especially important for those processors.
2009-04-04 22:23:03 +00:00
Marcel Moolenaar
b6f38367b7 Add sysarch.h. It's included by drm(4). 2009-04-04 22:05:36 +00:00
Marcel Moolenaar
b30f4a0436 First round of cleanups. There's a lot of NetBSDism in this header. 2009-04-04 22:03:19 +00:00
Marcel Moolenaar
48d6f243a6 Implement kernel core dump support for Book-E processors.
Both raw physical memory dumps and virtual minidumps are
supported. The default being minidumps.

Obtained from:	Juniper Networks
2009-04-04 22:01:43 +00:00
Alexander Kabaev
bb6418cbe3 Revert change 190655 temporarily. It breaks many setups where nullfs is
used and needs to be revisited.
2009-04-04 17:48:38 +00:00
Nathan Whitehorn
7bf5cfedfb Modularize the Macintosh built-in ATA along the lines of the rest of the
ATA system as an optional atamacio device.

PR:             powerpc/133161
Submitted by:   Bruce Cran
2009-04-04 17:05:17 +00:00
Attilio Rao
4060f1bbd0 - Add the support for the Asus A3F and A3E device
- Fix style for A3N and for a comment

Submitted by:	Akira Funahashi <funa@funa.org>
Tested by:	Marcin Nowak <marcin.nowak@simplusnet.pl>,
		Diego Sardina <diego.sardina@gmx.com>
PR:		kern/128634
2009-04-04 17:01:32 +00:00
Bruce M Simpson
448895b7fc Fix mbuf chain layout pessimization:
in the case where a single mbuf is allocated due to
 m_getcl() returning NULL, we already call MH_ALIGN,
 so do not increment m->m_data in this case.

Found during MLDv2 port.
2009-04-04 15:32:23 +00:00
Bruce M Simpson
0fd99912de Do not obliterate QQI with MAXRESP.
Found during MLDv2 port.
2009-04-04 15:26:32 +00:00
Konstantin Belousov
bc364c4e99 When removing or renaming snaphost, do not delve into request_cleanup().
The later may need blocks from the underlying device that belongs
to normal files, that should not be locked while snap lock is held.

Reported and tested by:	pho
MFC after:	1 month
2009-04-04 12:19:52 +00:00
Randall Stewart
8933fa13b6 Many bug fixes (from the IETF hack-fest):
- PR-SCTP had major issues when skipping through a multi-part message.
  o Did not look at socket buffer.
  o Did not properly handle the reassmebly queue.
  o The MARKED segments could interfere and un-skip a chunk causing
    a problem with the proper FWD-TSN.
  o No FR of FWD-TSN's was being done.
- NR-Sack code was basically disabled. It needed fixes that
  never got into the real code.
- CMT code had issues when the two paths were NOT the same b/w. We
  found a few small bugs, but also the critcal one here was not
  dividing the rwnd amongst the paths.

Obtained from:	Michael Tuexen and myself at the IETF hack-fest ;-)
2009-04-04 11:43:32 +00:00
Weongyo Jeong
dc60165b73 Add uath(4) wireless USB driver for Atheros AR5005UG and AR5005UX
chipsets.

Reviewed by:	sam
2009-04-04 11:23:00 +00:00
Marcel Moolenaar
27457a80e2 PowerPC, meet kernel core dumps. The support is based
on a generic dumper that creates an ELF core file and
uses PMAP functions to scan and iterate over memory
chunks, as well as handle memory mappings used during
dumping.
the PMAP layer can choose to return physical memory
chunks or virtual memory chunks. For minidumps, the
chunks should be virtual.

The default MMU I/F implementation for the scan_md()
method returns NULL. Thus, when a PMAP implementation
does not implement the required methods, an empty
core file is created. Here, empty means having an ELF
header only.

Obtained from:	Juniper Networks
2009-04-04 02:12:37 +00:00
Nathan Whitehorn
95b2008950 The Serverworks SATA chipsets used in Apple G5 systems require requiring
the ATA status register with a 4-byte read request. This updates it, and
subsequent 1-byte reads will return the correct result.

This commit adds a hack to do this, which is currently ifdef'd powerpc,
although Linux and Darwin do this unconditionally on all platforms.
2009-04-04 00:26:01 +00:00
Nathan Whitehorn
1c96bdd146 Add support for 64-bit PowerPC CPUs operating in the 64-bit bridge mode
provided, for example, on the PowerPC 970 (G5), as well as on related CPUs
like the POWER3 and POWER4.

This also adds support for various built-in hardware found on Apple G5
hardware (e.g. the IBM CPC925 northbridge).

Reviewed by:    grehan
2009-04-04 00:22:44 +00:00
Sam Leffler
bafb92643e fix whitespace 2009-04-03 20:46:32 +00:00
Andrew Thompson
31da42bab2 Add interleaving root hold tokens from the CAM probe to disk_create and geom
provider tasting. This is needed for disk attachments that happen after threads
are running in the boot process.

Tested by:	rnoland
2009-04-03 19:49:33 +00:00
Andrew Thompson
626fc9fe3d Add a how argument to root_mount_hold() so it can be passed NOWAIT and be called
in situations where sleeping isnt allowed.
2009-04-03 19:46:12 +00:00
Robert Noland
27b31641fb Add support for RV790 (HD 4890) asics
MFC after:	3 days
2009-04-03 19:23:14 +00:00
Robert Noland
47c63e764d A little more cleanup from AMD, if we don't have the right microcode
there is no reason to mess with the chip.

MFC after:	3 days
2009-04-03 19:21:39 +00:00
Sam Leffler
6437e6da3d o update dwds mcast handling after hoisting ieee80211_encap: frames need
to be encapsulated before dispatching to the driver
o eliminate M_WDS now that we call ieee80211_encap directly and can supply
  the wds vap to indicate a 4-address frame should be created
2009-04-03 18:00:19 +00:00
Stanislav Sedov
c130439940 - Fix spacing in the comment.
Reported by:	jhb
2009-04-03 13:35:54 +00:00
Stanislav Sedov
3dc489ee95 - Correct the comment.
MFC after:	3 days
2009-04-03 10:15:00 +00:00
Marcel Moolenaar
daca55549f The 9 bytes immediately prior to the partition table can contain
signatures or disk serial numbers. Don't assume those to be zero
in all cases. This fixes a false negative.

Tested by: avatar@mmlab.cse.yzu.edu.tw
2009-04-03 05:54:49 +00:00
Warner Losh
bd8536f83a Remove more debug... 2009-04-03 02:28:11 +00:00
Peter Wemm
0e875ecafe vn_vptocnp() unlocks the name cache and forgets to re-lock it before
returning in one error case, and mistakenly unlocks it for the
umount -f case.
2009-04-02 21:16:20 +00:00
Warner Losh
ab4e6b4899 Retire two flags that haven't been used since OLDCARD was retired
(well, since before OLDCARD was retired, since I removed their use
somewhat before that).
2009-04-02 19:27:56 +00:00
Warner Losh
11a77295d3 Kill debug that crept in. 2009-04-02 18:11:21 +00:00
Warner Losh
f43675aea8 Minor tweaks in the names to match the chips more closely. 2009-04-02 18:02:00 +00:00
Warner Losh
42e607776b Minor DLINK DL100xx support tweaks:
The DIROUT bit difference between the 19 and 22 is annoying.  We can
set both bits on both parts without ill effect.  Use this trick to
simplify the code.

The DELAYS in the MII bus bit-bang code for the DL100xx parts aren't
needed.  Eliminate them.
2009-04-02 17:15:49 +00:00
Warner Losh
3ef95f9cb7 The AX88190 has 64k of external SRAM, of which 62k can be used for
packet data.  However, the AX88190A moves this on-chip and reduces it
to the more traditional 16k from 16k-32k.  The AX88790 follows the
'190A.  Probe memory above 32k to see which flavor of the '190 we have
and use the extra memory if we have it.

Eliminate the kludgy read eeprom for the ID code.  It really is just a
memory read at location 0x400, so just use that instead.  Makes the
code easier to understand as well as eliminates some magic numbers.
2009-04-02 17:08:54 +00:00
Warner Losh
4065f42763 Force an autonegotiation at attach time for all the attached PHYs for
ed cards.  There's a number of minor nits in a lot of the PHYs on the
PC Cards that use the Axis AX88190 or DLink DL10019 and DL10022 chips.
Forcing the autonegotiation doesn't seem to cause problems on the
cards that have sane PHYs, but makes several cards I have work without
further workarounds.

I'm not 100% sure that kicking the PHY and resetting them is the right
thing to do on the media change callback.  Other NICs seem to need
this and do similar things.
2009-04-02 16:58:45 +00:00
Rui Paulo
dcf377edf1 Sync DLTs with latest libpcap version. 2009-04-02 13:02:12 +00:00
Jung-uk Kim
6d6dd74911 Reduce code duplcations from r190620. While I am here, tweak a comment. 2009-04-02 01:46:57 +00:00
Jung-uk Kim
c8b7d7f4bf Chase GDT layout changes and unbreak suspend/resume on amd64. 2009-04-02 00:23:56 +00:00
Paolo Pisati
eb2e411915 Implement an ipfw action to reassemble ip packets: reass. 2009-04-01 20:23:47 +00:00
Konstantin Belousov
e564825182 Add trivial implementation for the freebsd32_sysarch on ia64.
Fix comapt32 and LINT build on ia64.

Discussed with:	jhb
2009-04-01 19:23:07 +00:00
Alexander Motin
cb11662602 Add some more logic for AD1986A codec input tracing. Use mic preamplifier
only for mic-type inputs. This gives better chances to use it.

Change default configuration for some AD1986A codec based ASUS boards,
use it also for ASUS P5PL2 board. This makes front mic preamplifier working.

Tested by:	Vadim Frolov <frolov@frolov.ck.ua>
2009-04-01 18:55:08 +00:00
Jung-uk Kim
4ec2a29f12 Garbage collect unused MSR_GSBASE since r190620.
The only consumer was exception.S and specialreg.h is directly included now.
Note no md5 changes were observed for all assym.s consumers with this.
2009-04-01 18:36:34 +00:00
Doug Rabson
3e33218d77 Fix the Xen build for i386 PV mode. 2009-04-01 17:06:28 +00:00
Jung-uk Kim
4a608e44b5 Garbage collect unused stack segment since r190620. 2009-04-01 16:24:24 +00:00
Konstantin Belousov
7496ce7d74 Sync definitions for struct sigcontext for i386 and amd64 architectures
to struct mcontext.
2009-04-01 13:44:28 +00:00
Konstantin Belousov
9da6804056 Regen 2009-04-01 13:12:40 +00:00
Konstantin Belousov
088b38ac84 Rename implementation function for freebsd32 sysarch(2) to allow for
the arguments translations. Provide ABI-compatible definition of the
struct i386_ldt_args for freebsd32 compat layer.

In collaboration with:	pho
Reviewed by:	jhb
2009-04-01 13:11:50 +00:00
Konstantin Belousov
2c66cccab7 Save and restore segment registers on amd64 when entering and leaving
the kernel on amd64. Fill and read segment registers for mcontext and
signals. Handle traps caused by restoration of the
invalidated selectors.

Implement user-mode creation and manipulation of the process-specific
LDT descriptors for amd64, see sysarch(2).

Implement support for TSS i/o port access permission bitmap for amd64.

Context-switch LDT and TSS. Do not save and restore segment registers on
the context switch, that is handled by kernel enter/leave trampolines
now. Remove segment restore code from the signal trampolines for
freebsd/amd64, freebsd/ia32 and linux/i386 for the same reason.

Implement amd64-specific compat shims for sysarch.

Linuxolator (temporary ?) switched to use gsbase for thread_area pointer.

TODO:
Currently, gdb is not adapted to show segment registers from struct reg.
Also, no machine-depended ptrace command is added to set segment
registers for debugged process.

In collaboration with:	pho
Discussed with:	peter
Reviewed by:	jhb
Linuxolator tested by:	dchagin
2009-04-01 13:09:26 +00:00
Konstantin Belousov
c11d6143ca Add separate gdt descriptors for %fs and %gs on amd64.
Reorder amd64 gdt descriptors so that user-accessible selectors are the
same as on i386. At least Wine hard-codes this into the binary.

In collaboration with:	pho
Reviewed by:	jhb
2009-04-01 12:53:01 +00:00
Konstantin Belousov
59aff0f894 Fully enumerate all i386 sysarch commands an amd64 include file.
Provides i386/freebsd API-compatible definitions for the argument
structures of the above sysarch commands. struct i386_ioperm_args
definition is ABI-compatible.

In collaboration with:	pho
Reviewed by:	jhb
2009-04-01 12:48:17 +00:00
Konstantin Belousov
6ce76ba376 Fill the fsbase and gsbase fields of the mcontext structure on i386.
In collaboration with:	pho
Discussed with:	peter
Reviewed by:	jhb
2009-04-01 12:46:05 +00:00
Konstantin Belousov
0cdf4ffabc Add all segment registers for the amd64 CPU to struct reg and mcontext.
To keep these structures ABI-compatible, half the size of r_trapno,
r_err, mc_trapno, mc_flags.

Add fsbase and gsbase to mcontext on both amd64 and i386.
Add flags to amd64 mcontext to indicate that it contains valid segments
or bases.

In collaboration with:	pho
Discussed with:	peter
Reviewed by:	jhb
2009-04-01 12:44:17 +00:00
Konstantin Belousov
49c9cff881 Provide convenient definition of the union descriptor, similar to the
i386 one. Fully enumerate system segments and gate types.

In collaboration with:	pho
Reviewed by:	jhb
2009-04-01 12:31:04 +00:00
Alan Cox
a7f9bae19e Eliminate dead code.
Reviewed by:	jhb
2009-04-01 04:36:37 +00:00
Olivier Houchard
a471e1eda3 Fix the userland, RAS, version of atomic_fetchadd_32 :
return the correct value, and do not store the wrong one in the supplied
pointer.

Submitted by:	Mark Tinguely <tinguely casselton net>
2009-03-31 23:47:18 +00:00
Olivier Houchard
8ba46ea415 Use Oxf0000000 instead of 0xff000000 to guess the physical address, relative
to the virtual one. I may had a reason at some point to use the later, but
can't remember which, and it can leads to issues.

Reported by:	Guillaume Ballet <gballet gmail com>
2009-03-31 23:06:20 +00:00
Jung-uk Kim
4e4ce82e0a Fix an uninitialized variable from the previous commit. 2009-03-31 21:14:05 +00:00
Jung-uk Kim
938608cb45 Probe size of installed memory modules from loader and display it
as 'real memory' instead of Maxmem if the value is available.
Note amd64 displayed physmem as 'usable memory' since machdep.c r1.640
to unconfuse users.  Now it is consistent across amd64 and i386 again.
While I am here, clean up smbios.c a bit and update copyright date.

Reviewed by:	jhb
2009-03-31 21:02:55 +00:00
Warner Losh
b54b7a7334 Add additional data on the MIIBUS WTF that I committed earlier. 2009-03-31 19:23:59 +00:00
Warner Losh
62382a43c0 It turns out that the initialization is required since it sets up the
readout of the MAC address.
The 10ms delay was really needed.  Ooops.
2009-03-31 19:20:03 +00:00
Warner Losh
2365a961b1 o Minor tweaks to the AX88x90 probe routine, mostly related to comments.
o Don't run through the register initialization in the read mac routine
  for the AX88x90.  It duplicates other stuff that we do.
o Eliminate the 10ms delay after we reset the AX88x90.  We already wait for
  the appropriate bits to indicate reset is done.
2009-03-31 18:25:09 +00:00
Robert Noland
0351ecf9e4 Simplify the radeon microcode loading.
Submitted by:	Christoph Mallon
MFC after:	3 days
2009-03-31 17:52:05 +00:00
Weongyo Jeong
75b88cb05e fix a bug that it passed a incorrect flag BUS_DMA_ALLOCNOW to create
a device specific DMA tag.  On amd64 it could exhaust all of bounce
pages when bus_dma_tag_create(9) is called at malo_pci_attach() then as
result in next turn it returns ENOMEM.  This fix a attach fail on amd64.

Pointed by:	yongari
Tested by:	dchagin
MFC after:	3 days
2009-03-31 10:34:54 +00:00
Kevin Lo
2da462e383 Add another rum(4) device found in
http://www.fit-pc.com/new/whats-new.html
2009-03-31 07:40:36 +00:00
Pyun YongHyeon
bd9bede57a Partial revert r185756.
It seems that RTL8168D and RTL8102EL requires additional settle
time to complete RL_PHYAR register write. Accessing RL_PHYAR
register right after the write causes errors for subsequent PHY
register accesses.

Tested by:	george at luckytele dot com,
		Steve Wills < STEVE at stevenwills dot com >
2009-03-31 03:29:05 +00:00
Warner Losh
2b5b95c278 Go back to filtering all PHY addresses above 16 since at least two
cards still have issues with them.  Maybe this is a silicon rev?  In
any case, doing the filtering only for the AX88790 for the moment.
2009-03-31 02:50:41 +00:00
Warner Losh
f16f1caffc Hmmmm... This can't be right... But it looks like the DL100xx chips
don't have one of the clock cycles (the turn cycle) that the AX88x90
chips have.  Make this conditional.  But this seems totally crazy and
can't possibly be right.  Commit the fix for the moment until I can
explore this mystery more deeply.

On the plus side, the DL10022-based cards I have (D-Link DEF-670TXD
and SMC8040TX) work after this fix.
2009-03-31 01:59:47 +00:00
Alexander Motin
9cf4fe2ebe Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them
for AHCI. Refactor AHCI channel initialization according to it.

Fix Port Multipliers operation. It is far from perfect yet, but works now.
Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair.
Previous version was also tested with SiI 4726 PMP.

Hardware sponsored by: Vitsch Electronics / VEHosting.nl
2009-03-30 22:18:38 +00:00
Sam Leffler
f8ee854304 revert unintended change 2009-03-30 21:54:39 +00:00
Sam Leffler
339ccfb391 Hoist 802.11 encapsulation up into net80211:
o call ieee80211_encap in ieee80211_start so frames passed down to drivers
  are already encapsulated
o remove ieee80211_encap calls in drivers
o fixup wi so it recreates the 802.3 head it requires from the 802.11
  header contents
o move fast-frame aggregation from ath to net80211 (conditional on
  IEEE80211_SUPPORT_SUPERG):
  - aggregation is now done in ieee80211_start; it is enabled when the
    packets/sec exceeds ieee80211_ffppsmin (net.wlan.ffppsmin) and frames
    are held on a staging queue according to ieee80211_ffagemax
    (net.wlan.ffagemax) to wait for a frame to combine with
  - drivers must call back to age/flush the staging queue (ath does this
    on tx done, at swba, and on rx according to the state of the tx queues
    and/or the contents of the staging queue)
  - remove fast-frame-related data structures from ath
  - add ieee80211_ff_node_init and ieee80211_ff_node_cleanup to handle
    per-node fast-frames state (we reuse 11n tx ampdu state)
o change ieee80211_encap calling convention to include an explicit vap
  so frames coming through a WDS vap are recognized w/o setting M_WDS

With these changes any device able to tx/rx 3Kbyte+ frames can use fast-frames.

Reviewed by:	thompsa, rpaulo, avatar, imp, sephe
2009-03-30 21:53:27 +00:00
Rui Paulo
4f8cb6ff40 Fix typo in comment. 2009-03-30 21:46:50 +00:00
Rui Paulo
8407aa1494 MFP mesh11s:
Add mesh debugging bit replacing the now deprecated RADKEYS.
2009-03-30 21:41:06 +00:00
Sam Leffler
cf1c8d5f9c fake the association id so packets are not rejected in the tx path 2009-03-30 21:29:25 +00:00
Sam Leffler
584f7327f1 Remove ATH_SUPPORT_TDMA and use IEEE80211_SUPPORT_TDMA instead. It
doesn't make much sense to configure driver support w/o net80211.
Note this means ath now depends on opt_wlan.h.
2009-03-30 19:23:49 +00:00
Robert Noland
221478e4c6 We don't know what these pages are going to be used for, they should be
un-cached.  This got lost somewhere with all the bus_dma fixups.

MFC after:	3 days
2009-03-30 18:01:42 +00:00
Robert Noland
04edf5eaf1 Load the right microcode for RS780.
MFC after:	3 days
2009-03-30 17:49:21 +00:00
Warner Losh
0056b69f1f Two fixes:
(1) Delete all children when detaching to keep from adding a phy each
    driver reload.
(2) All AX88x90 chips have the RST issue.
2009-03-30 17:25:56 +00:00
Warner Losh
b1f0505378 This is a major reworking of the AX88x90 support.
o Introduce new chip_type AX88790.  There's a few places we need to know the
  exact chip for workaronds.
o Explain the AX88190 workaround for the ISR bits being stuck, and don't
  apply them to the AX88790.  The datasheet says the bits are fixed, and
  experience confirms.
o Fix mii bit-bang read code to read and discard the 'floating' bit.
o Remove empty ed_pccard_ax88x90_mii_reset routine
o Report error from mii_phy_probe
o Don't use ed_probe_Novel_generic for ax88x90 chips.  It puts them into
  an odd state sometimes.  Instead, use a more stream-lined version that
  avoids the trouble spots.  This was copied and tweaked from the original.
o Move chip reset into its own routine.
o Minor code optimiation on getting MAC address
o Add code for coping with AX88790 cards that are in power down state and
  need to be kicked before the PHY registers for the internal phy read right.
o Remove ugly cap of PHYs at 17.
o For AX88790, we need to set a special bit for accessig phy 16 (the internal
  phy) and clear it for all others according to a chip erratum.
o streamline the bit-bang code for AX88x90: the delays aren't needed according
  to the datasheet timing diagrams and also the Linux driver
o Fix minor bit definition for direction bit.
o Generally: Some comments reformatted
o Only try the toshiba probe on cards labelled as toshiba

# From another Akihabara card (this one from a few years ago from a
# friend in Japan).  Fix the Corega FEther II PCC-TXD.  This one is
# still on sale new, as of a few weeks ago.  should fix all other AX88x90
# based cards, but I have some testing left to finish on my collection...
2009-03-30 16:15:06 +00:00
Warner Losh
5fb1afd722 New PHY driver for the internal PHY found in the AX88790. There's a
number of quirks for this device, and this implements just the basics.
The 2.5s powerdown recommended in the datasheet will be next...
2009-03-30 16:01:09 +00:00
Christian Brueffer
1fa80eb15c Fix memory leak in semunload().
PR:		133064
Submitted by:	Mateusz Guzik <mjguzik@gmail.com>
MFC after:	1 week
2009-03-30 15:01:29 +00:00
Weongyo Jeong
136694a420 when it failed to inform rx/tx dma setup it should clean up allocated
dma-related buffers and tags.

MFC after:	3 days
2009-03-30 11:51:05 +00:00
Weongyo Jeong
da689ab8ca corrects a error message. 2009-03-30 11:23:14 +00:00
Weongyo Jeong
df1af10875 handles more exceptional cases when the driver failed to attach.
MFC after:	3 days
2009-03-30 08:48:33 +00:00
Konstantin Belousov
2b0b4ee359 Implement support for RTLD_NODELETE flag for dlopen() and -z nodelete
static linker option. Do it by incrementing reference count on the loaded
object and its dependencies.

Reviewed by:	davidxu, kan
2009-03-30 08:47:28 +00:00