diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2011-09-05 10:38:45 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2011-09-06 03:44:03 -0400 |
commit | 572e27c00c9d1250ae2b4951eae7e73992174138 (patch) | |
tree | 6ce0dd1956526dc3990c37987983c433e9314371 /drivers/net/wireless/ath/ath6kl/wmi.h | |
parent | d6e51e6a0cc50b6dd8d9f3a733427cca3f9afdee (diff) |
ath6kl: Fix AP mode connect event parsing and TIM updates
This cleans up the connect event parsing by defining a union in
struct wmi_connect_event to match with the three possible sets of
fields that the target uses depending on which type of connect
event is being indicated. In addition, two AP cases are now
separated from ath6kl_connect_event() so that correct field names
can be used to make it actually possible to understand what the
code is doing.
The bug hiding in the previous mess was in parsing the AID incorrectly
when processing the new station connecting event in AP mode. The fix
here for that is also fixing TIM updates for PS buffering to use the
correct AID.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/wmi.h')
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/wmi.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.h b/drivers/net/wireless/ath/ath6kl/wmi.h index e86b81d326eb..5ca8c8e904cf 100644 --- a/drivers/net/wireless/ath/ath6kl/wmi.h +++ b/drivers/net/wireless/ath/ath6kl/wmi.h | |||
@@ -1275,11 +1275,30 @@ struct wmi_ready_event_2 { | |||
1275 | 1275 | ||
1276 | /* Connect Event */ | 1276 | /* Connect Event */ |
1277 | struct wmi_connect_event { | 1277 | struct wmi_connect_event { |
1278 | __le16 ch; | 1278 | union { |
1279 | u8 bssid[ETH_ALEN]; | 1279 | struct { |
1280 | __le16 listen_intvl; | 1280 | __le16 ch; |
1281 | __le16 beacon_intvl; | 1281 | u8 bssid[ETH_ALEN]; |
1282 | __le32 nw_type; | 1282 | __le16 listen_intvl; |
1283 | __le16 beacon_intvl; | ||
1284 | __le32 nw_type; | ||
1285 | } sta; | ||
1286 | struct { | ||
1287 | u8 phymode; | ||
1288 | u8 aid; | ||
1289 | u8 mac_addr[ETH_ALEN]; | ||
1290 | u8 auth; | ||
1291 | u8 keymgmt; | ||
1292 | __le16 cipher; | ||
1293 | u8 apsd_info; | ||
1294 | u8 unused[3]; | ||
1295 | } ap_sta; | ||
1296 | struct { | ||
1297 | __le16 ch; | ||
1298 | u8 bssid[ETH_ALEN]; | ||
1299 | u8 unused[8]; | ||
1300 | } ap_bss; | ||
1301 | } u; | ||
1283 | u8 beacon_ie_len; | 1302 | u8 beacon_ie_len; |
1284 | u8 assoc_req_len; | 1303 | u8 assoc_req_len; |
1285 | u8 assoc_resp_len; | 1304 | u8 assoc_resp_len; |