diff options
author | adrian <adrian@FreeBSD.org> | 2016-05-05 07:04:38 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2016-05-05 07:04:38 +0000 |
commit | 2997dc482e53c3ddbe251464e095aa262c3559b0 (patch) | |
tree | 3ae56f70613ba944468cc2071471428ee6c7a8c8 /lib/libthr/thread/thr_sig.c | |
parent | 1f0b67157f0d74631179f3566f3bbee74c2e8e5f (diff) | |
download | FreeBSD-src-2997dc482e53c3ddbe251464e095aa262c3559b0.zip FreeBSD-src-2997dc482e53c3ddbe251464e095aa262c3559b0.tar.gz |
[bwn] implement firmware tx/rx versioning and fix RSSI calculation.
Different versions of firmware have different requirments for TX/RX
packet layouts (and other things, of course.) Currently the driver
checks between 3xx and 4xx firmware by using the BWN_ISOLDFMT() macro,
which doesn't take into account the 5xx firmware (which I think I need
for the HT and N series PHY chips. I'll know when I do the port.)
BWN_HDRSIZE() also needs to learn about the 5xx series firmware
as well.
So:
* add a firmware version enum
* populate it based on the firmware version we read at load time
* don't finish loading if the firmware is the 5xx firmware; any
code using BWN_ISOLDFMT or BWN_HDRSIZE needs updating (most notably
the TX and RX bits.)
Then, for RX RSSI:
* write down and reimplement the b43 rssi calculation method;
* use it for the correct PHYs (which are all the ones we support);
* do the RSSI calculation before radiotap, not after.
Tested:
* Broadcom BCM4312, STA mode
Obtained from: Linux b43 (careful writing and reimplementing; lots of integer math..)
Diffstat (limited to 'lib/libthr/thread/thr_sig.c')
0 files changed, 0 insertions, 0 deletions