Adrian Chadd 4136c09143 The holding buffer logic needs to be used for _all_ transmission, not
just "when the queue is busy."

After talking with the MAC team, it turns out that the linked list
implementation sometimes will not accept a TxDP update and will
instead re-read the link pointer.  So even if the hardware has
finished transmitting a chain and has hit EOL/VEOL, it may still
re-read the link pointer to begin transmitting again.

So, always set ATH_BUF_BUSY on the last buffer in the chain (to
mark the last descriptor as the holding descriptor) and never
blank the axq_link pointer.

Tested:

* AR5416, STA mode

TODO:

* much more thorough testing with the pre-11n NICs, just to verify
  that they behave the same way.
* test TDMA on the 11n and non-11n hardware.
2013-05-04 04:03:50 +00:00
..
2013-05-01 04:37:34 +00:00
2013-05-01 22:45:04 +00:00
2013-05-01 04:37:34 +00:00
2013-05-01 04:37:34 +00:00
2013-04-17 11:45:15 +00:00
2013-04-27 06:54:49 +00:00
2013-04-29 23:08:13 +00:00