diff options
author | adrian <adrian@FreeBSD.org> | 2012-10-03 23:23:45 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2012-10-03 23:23:45 +0000 |
commit | 78ead1fc05f7b05f6c80890e0f31ec772ad76487 (patch) | |
tree | 5ab5a1539cb5d51b78c4e4bb02a1932aa390b17f /sys/rpc | |
parent | 3caceded2adf0d1f4bdf163679e01f335d03b1c1 (diff) | |
download | FreeBSD-src-78ead1fc05f7b05f6c80890e0f31ec772ad76487.zip FreeBSD-src-78ead1fc05f7b05f6c80890e0f31ec772ad76487.tar.gz |
Pause and unpause the software queues for a given node based on the
net80211 node power save state.
* Add an ATH_NODE_UNLOCK_ASSERT() check
* Add a new node field - an_is_powersave
* Pause/unpause the queue based on the node state
* Attempt to handle net80211 concurrency issues so the queue
doesn't get paused/unpaused more than once at a time from
the net80211 power save code.
Whilst here (and breaking my usual rule), set CLRDMASK when a queue
is unpaused, regardless of whether the queue has some pending traffic.
This means the first frame from that TID (now or later) will hvae
CLRDMASK set.
Also whilst here, bump the swretrymax counters whenever the
filtered frames code expires a frame. Again, breaking my rule, but
this is just a statistics thing rather than a functional change.
This doesn't fix ps-poll (but it doesn't break it too much worse
than it is at the present) or correcting the TID updates.
That's next on the list.
Tested:
* AR9220 AP (Atheros AP96 reference design)
* Macbook Pro and LG Optimus 1 Android phone, both setting
and clearing power save state (but not using PS-POLL.)
Diffstat (limited to 'sys/rpc')
0 files changed, 0 insertions, 0 deletions