freebsd-nq/sys
Adrian Chadd 6e84772f4d Convert the aggregate descriptor path over to use the same API as
the non-aggregate path.

I "cheated" by using some TX setup code in our HAL that isn't present
in the atheros HAL (or Linux ath9k.)

The old path for forming aggregates was:

* setup the rate control in the first descriptor;
* call chaintxdesc() on all the frames;
* call setupfirsttxdesc() on the first descrpitor in the first
  frame;
* call setuplasttxdesc() on the last descriptor in the last frame.

The new path for forming aggregates looks like the non-aggregate path:

* call setuptxdesc() on the first descriptor in the first frame;
* setup the rate control in the first descriptor;
* call filltxdesc() on each descriptor in the frame;
* if it's an aggregate - call set11n_aggr_{first, middle, last} as
  appropriate (see the code for a description of what is "appropriate".)

Now, this is done primarily for the AR9300 HAL - it doesn't implement
the first set of aggregate functions.  It just has the older methods
and the "first/middle/last" aggregate methods.  So, let's convert the
code to use these.

Note: the AR5416 HAL in FreeBSD had that code (from me, a while ago)
and a previous commit brought it up to behave the same as the AR9300
HAL routines.

There's some further tidyups to be done - specifically, avoid doing
multiple calls to the 11n descriptor functions. I shouldn't call
clr11n_aggr(), then set11n_aggr_middle(), then also set11n_aggr_first().
On (at least MIPS) the TX descriptors are in non-cachable memory and
this will cause multiple slow writes.

I'll debug/tidy that up in a future commit.

Tested:

* AR9280, STA
* AR9280/AR9160, AP
* AR9380, STA (using a local, closed source HAL, sorry!)
2012-11-06 06:19:11 +00:00
..
amd64 Rework the known rwlock to benefit about staying on their own 2012-11-03 23:03:14 +00:00
arm Merge the FDT versions of initarm. 2012-11-03 22:39:07 +00:00
boot Fix loader crash when some unhalted exception happens during include 2012-10-26 16:32:20 +00:00
bsm
cam Use M_ZERO instead of explicit memsets and bzeros. 2012-10-30 12:52:41 +00:00
cddl zfs_dirlook: bailout early if directory is unlinked 2012-11-04 14:50:08 +00:00
compat The r241025 fixed the case when a binary, executed from nullfs mount, 2012-11-02 13:56:36 +00:00
conf Add a MD_ROOT_FSTYPE kernel option. The option specifies the 2012-11-03 21:20:55 +00:00
contrib In sys/contrib/ngatm/netnatm/msg/uni_ie.c, fix a few warnings from newer 2012-11-05 19:00:25 +00:00
crypto Revert previous commit... 2012-10-10 08:36:38 +00:00
ddb Small textdump enhancements. 2012-11-01 04:07:08 +00:00
dev Convert the aggregate descriptor path over to use the same API as 2012-11-06 06:19:11 +00:00
fs fuse_io* must be able to crunch also VDIR vnodes. 2012-11-05 15:23:54 +00:00
gdb
geom Provide a device name in the sysctl tree for programs to query the 2012-11-01 17:01:05 +00:00
gnu/fs Add an unified macro to deny ability from the compiler to reorder 2012-10-09 14:32:30 +00:00
i386 Rework the known rwlock to benefit about staying on their own 2012-11-03 23:03:14 +00:00
ia64 Rework the known rwlock to benefit about staying on their own 2012-11-03 23:03:14 +00:00
isa
kern export VM_MIN_KERNEL_ADDRESS and VM_MAX_KERNEL_ADDRESS via sysctl. 2012-11-06 04:10:32 +00:00
kgssapi
libkern Sync strlcpy with userland version. 2012-11-03 04:29:24 +00:00
mips Rework the known rwlock to benefit about staying on their own 2012-11-03 23:03:14 +00:00
modules Extend dim's hack from r228978: not only clang but gcc on non-x86 platforms 2012-10-28 02:15:35 +00:00
net Remove the recently added sysctl variable net.pfil.forward. 2012-11-02 01:20:55 +00:00
net80211 Add some further BAR TX debugging; it was useful when figuring out 2012-10-28 04:18:49 +00:00
netatalk
netgraph Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
netinet Move from early SSN assignment to late SSN assignment. 2012-11-05 20:55:17 +00:00
netinet6 Remove the recently added sysctl variable net.pfil.forward. 2012-11-02 01:20:55 +00:00
netipsec Do not reduce ip_len by size of IP header in the ip_input() 2012-10-23 08:33:13 +00:00
netipx
netnatm
netncp Add characters mapping for codepages used in Germany. 2012-06-01 03:59:08 +00:00
netpfil Add assertion to enforce 'nat global' locking requierements changed by r241908. 2012-11-05 22:54:00 +00:00
netsmb Fix panic due to page faults while in kernel mode, under conditions of 2012-10-31 03:34:07 +00:00
nfs Add two new options to the nfssvc(2) syscall that allow 2012-10-14 22:33:17 +00:00
nfsclient Do not leave invalid pages in the object after the short read for a 2012-08-14 11:45:47 +00:00
nfsserver Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
nlm Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
ofed remove duplicate semicolons where possible. 2012-10-22 03:00:37 +00:00
opencrypto Revert previous commit... 2012-10-10 08:36:38 +00:00
pc98 The 'testing memory' patch gets printed too many times 2012-10-22 11:57:26 +00:00
pci Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
powerpc Replace all uses of the page queues lock by a R/W lock that is private 2012-11-03 23:22:49 +00:00
rpc Modify the comment to take out the names and URL. 2012-10-25 19:30:58 +00:00
security Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
sparc64 Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
sys After years of hard work by many FreeBSD and LLVM developers, make 2012-11-05 19:08:18 +00:00
teken
tools Revert previous commit... 2012-10-10 08:36:38 +00:00
ufs When a file is first being written, the dynamic block reallocation 2012-11-03 18:55:55 +00:00
vm The r241025 fixed the case when a binary, executed from nullfs mount, 2012-11-02 13:56:36 +00:00
x86 Provide the reading and display of the Standard Extended Features, 2012-11-01 15:14:37 +00:00
xdr
xen Move the corresponding MTX_SYSINIT() next to their struct mtx declaration 2012-10-26 17:31:35 +00:00
Makefile