freebsd-skq/sys
adrian c5c46f8668 Fix the TDMA nexttbtt programming for 802.11n chips.
The existing logic wrapped programming nexttbtt at 65535 TU.
This is not good enough for the 11n chips, whose nexttbtt register
(GENERIC_TIMER_0) has an initial value from 0..2^31-1 TSF.
So converting the TU to TSF had the counter wrap at (65535 << 10) TSF.

Once this wrap occured, the nexttbtt value was very very low, much
lower than the current TSF value.  At this point, the nexttbtt timer
would constantly fire, leading to the TX queue being constantly gated
open.. and when this occured, the sender was not correctly transmitting
in its slot but just able to continuously transmit.  The master would
then delay transmitting its beacon until after the air became free
(which I guess would be after the burst interval, before the next burst
interval would quickly follow) and that big delta in master beacon TX
would start causing big swings in the slot timing adjustment.

With this change, the nexttbtt value is allowed to go all the way up
to the maximum value permissable by the 32 bit representation.
I haven't yet tested it to that point; I really should.  The AR5212
HAL now filters out values above 65535 TU for the beacon configuration
(and the relevant legal values for SWBA, DBA and NEXTATIM) and the
AR5416 HAL just dutifully programs in what it should.

With this, TDMA is now useful on the 802.11n chips.

Tested:

* AR5416, AR9280 TDMA slave
* AR5413 TDMA slave
2012-11-27 02:23:45 +00:00
..
amd64 Move the declaration of vm_phys_paddr_to_vm_page() from vm/vm_page.h 2012-11-16 05:55:56 +00:00
arm Add NOTES and Makefile in order to generate LINT. NOTES contains pretty 2012-11-27 01:17:50 +00:00
boot Print kernel args when booting the kernel. 2012-11-25 18:22:53 +00:00
bsm Add the wait6(2) system call. It takes POSIX waitid()-like process 2012-11-13 12:52:31 +00:00
cam Fix problem with the Samsung 840 PRO series SSD detection. 2012-11-26 20:07:10 +00:00
cddl MFV r243395: 2012-11-26 12:24:39 +00:00
compat MFS security patches which seem to have accidentally not reached HEAD: 2012-11-23 01:48:31 +00:00
conf o) Add support for specifying a model of Octeon to target at compile-time, 2012-11-24 02:00:29 +00:00
contrib Allow this file to build on FreeBSD. 2012-11-27 02:03:41 +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 Fix the TDMA nexttbtt programming for 802.11n chips. 2012-11-27 02:23:45 +00:00
fs - smbfs_rename() might return an error value without correctly upgrading 2012-11-26 04:29:47 +00:00
gdb
geom - Don't pass geom and provider names as format strings. 2012-11-20 12:32:18 +00:00
gnu/fs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00
i386 Fix a minor warning in sys/i386/xen/clock.c. 2012-11-12 20:50:11 +00:00
ia64 Flip the semantic of M_NOWAIT to only require the allocation to not 2012-11-14 20:01:40 +00:00
isa
kern Look for zombie process only if we were given process id. 2012-11-25 19:31:42 +00:00
kgssapi
libkern Sync strlcpy with userland version. 2012-11-03 04:29:24 +00:00
mips Use bootverbose to control debug printfs from the Cavium Simple Executive 2012-11-24 02:12:24 +00:00
modules Merge ACPICA 20121114. 2012-11-20 21:01:59 +00:00
net Re-initialize eh pointer after m_adj() 2012-11-26 19:45:01 +00:00
net80211 Add a primitive to check if a lock is not owned. 2012-11-26 00:06:55 +00:00
netatalk
netgraph Switch the entire IPv4 stack to keep the IP packet header 2012-10-22 21:09:03 +00:00
netinet Add support for sctp_peeloff() also in the front states of the 2012-11-26 16:44:03 +00:00
netinet6 Remove opt_inet.h, it isn't required here. 2012-11-20 14:09:37 +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
netpfil Simplify sending keepalives. 2012-11-09 18:23:38 +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 r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +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 Redo r242842, now actually fixing the warnings, as follows: 2012-11-12 22:01:29 +00:00
opencrypto Revert previous commit... 2012-10-10 08:36:38 +00:00
pc98 Reduce diffs against i386. 2012-11-10 13:48:41 +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 Setup BAT0 and BAT1 on the Wii. 2012-11-21 08:04:21 +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 Move the declaration of vm_phys_paddr_to_vm_page() from vm/vm_page.h 2012-11-16 05:55:56 +00:00
sys Document sin6_scope_id handling change and bump FreeBSD_version to 1000025. 2012-11-23 12:12:06 +00:00
teken
tools Revert previous commit... 2012-10-10 08:36:38 +00:00
ufs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00
vm Make a few small changes to vm_map_pmap_enter(): 2012-11-25 19:42: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