diff options
author | adrian <adrian@FreeBSD.org> | 2012-08-15 08:14:16 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2012-08-15 08:14:16 +0000 |
commit | 0424c6d691509dd56bc5d8b799edda55b441f96c (patch) | |
tree | 8424a18f569751bf1a76e0bfa0f825c524b1760b /contrib/diff/lib | |
parent | 709a1cd8d6309d52974ffe82525c418620d675a5 (diff) | |
download | FreeBSD-src-0424c6d691509dd56bc5d8b799edda55b441f96c.zip FreeBSD-src-0424c6d691509dd56bc5d8b799edda55b441f96c.tar.gz |
Extend the non-aggregate TX descriptor chain routine to be aware of:
* the descriptor ID, and
* the multi-buffer support that the EDMA chips support.
This is required for successful MAC transmission of multi-descriptor
frames. The MAC simply hangs if there are NULL buffers + 0 length pointers,
but the descriptor did have TxMore set.
This won't be done for the 11n aggregate path, as that will be modified
to use the newer API (ie, ath_hal_filltxdesc() and then set first|middle|
last_aggr), which will deprecate some of the current code.
TODO:
* Populate the numTxMaps field in the HAL, then make sure that's fetched
by the driver. Then I can undo that hack.
Tested:
* AR9380, AP mode, TX'ing non-aggregate 802.11n frames;
* AR9280, STA/AP mode, doing aggregate and non-aggregate traffic.
Diffstat (limited to 'contrib/diff/lib')
0 files changed, 0 insertions, 0 deletions