diff options
author | Arik Nemtsov <arik@wizery.com> | 2011-04-26 16:21:51 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-04-28 14:50:45 -0400 |
commit | 47684808fd89d6809c0886e06f8ac324252499d8 (patch) | |
tree | f5edf3dae33bc46a39d8526484bae71f33a19bab /drivers/net/wireless/wl12xx/acx.h | |
parent | a039a993496d79d09ae9709c82b545b9800954c9 (diff) |
wl12xx: support FW TX inactivity triggers
In AP mode we register for the MAX_TX_RETRY and INACTIVE_STA events.
Both are reported to the upper layers as a TX failure in the offending
stations.
In STA mode we register only for the MAX_TX_RETRY event. A TX failure is
interpreted as a loss of connection.
Support for IEEE80211_HW_REPORTS_TX_ACK_STATUS has been removed to avoid
the inherent race condition of a mac80211 TX failure counter in addition
to the FW counter.
This patch depends on "mac80211: allow low level driver to report packet
loss"
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/acx.h')
-rw-r--r-- | drivers/net/wireless/wl12xx/acx.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.h b/drivers/net/wireless/wl12xx/acx.h index 0a40caeab2a2..942908cd53a3 100644 --- a/drivers/net/wireless/wl12xx/acx.h +++ b/drivers/net/wireless/wl12xx/acx.h | |||
@@ -1145,7 +1145,7 @@ struct wl1271_acx_fw_tsf_information { | |||
1145 | u8 padding[3]; | 1145 | u8 padding[3]; |
1146 | } __packed; | 1146 | } __packed; |
1147 | 1147 | ||
1148 | struct wl1271_acx_max_tx_retry { | 1148 | struct wl1271_acx_ap_max_tx_retry { |
1149 | struct acx_header header; | 1149 | struct acx_header header; |
1150 | 1150 | ||
1151 | /* | 1151 | /* |
@@ -1156,6 +1156,13 @@ struct wl1271_acx_max_tx_retry { | |||
1156 | u8 padding_1[2]; | 1156 | u8 padding_1[2]; |
1157 | } __packed; | 1157 | } __packed; |
1158 | 1158 | ||
1159 | struct wl1271_acx_sta_max_tx_retry { | ||
1160 | struct acx_header header; | ||
1161 | |||
1162 | u8 max_tx_retry; | ||
1163 | u8 padding_1[3]; | ||
1164 | } __packed; | ||
1165 | |||
1159 | struct wl1271_acx_config_ps { | 1166 | struct wl1271_acx_config_ps { |
1160 | struct acx_header header; | 1167 | struct acx_header header; |
1161 | 1168 | ||
@@ -1307,7 +1314,8 @@ int wl1271_acx_set_ba_session(struct wl1271 *wl, | |||
1307 | int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn, | 1314 | int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn, |
1308 | bool enable); | 1315 | bool enable); |
1309 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); | 1316 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); |
1310 | int wl1271_acx_max_tx_retry(struct wl1271 *wl); | 1317 | int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl); |
1318 | int wl1271_acx_sta_max_tx_retry(struct wl1271 *wl); | ||
1311 | int wl1271_acx_config_ps(struct wl1271 *wl); | 1319 | int wl1271_acx_config_ps(struct wl1271 *wl); |
1312 | int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr); | 1320 | int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr); |
1313 | 1321 | ||