freebsd-skq/sys/dev/iwn
Andriy Voskoboinyk f6930bec33 net80211: ieee80211_ratectl*: switch to reusable KPI
Replace various void * / int argument combinations with common structures:
- ieee80211_ratectl_tx_status for *_tx_complete();
- ieee80211_ratectl_tx_stats for *_tx_update();

While here, improve amrr_tx_update() for a bit:
1. In case, if receiver is not known (typical for Ralink USB drivers),
refresh Tx rate for all nodes on the interface.
2. There was a misuse:
- otus(4) sends non-decreasing counters (as originally intended);
- but ural(4), rum(4) and run(4) are using 'read & clear' registers
to obtain statistics for some period of time (and those 'last period'
values are used as arguments for tx_update()). If arguments are not big
enough, they are just discarded after the next call.

Fix: move counting into *_tx_update()
(now otus(4) will zero out all node counters after every tx_update() call)

Tested with:
- Intel 3945BG (wpi(4)), STA mode.
- WUSB54GC (rum(4)), STA / HOSTAP mode.
- RTL8188EU (urtwn(4)), STA mode.

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D8037
2016-10-02 20:35:55 +00:00
..
if_iwn_chip_cfg.h
if_iwn_debug.h
if_iwn_devid.h
if_iwn_ioctl.h Migrate the stats API for iwn(4) into a cdev ioctl, rather than tying 2015-08-30 21:54:33 +00:00
if_iwn.c net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00
if_iwnreg.h Attempt to make 5GHz HT/40 work on the 6xxx series NICs. 2015-07-07 03:51:29 +00:00
if_iwnvar.h net80211: ieee80211_ratectl*: switch to reusable KPI 2016-10-02 20:35:55 +00:00