diff options
author | Ilan Peer <ilan.peer@intel.com> | 2013-03-05 08:26:03 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-03-20 07:02:27 -0400 |
commit | 571765c8598a86c81b658e55285643506770fb2d (patch) | |
tree | 657e4568e358bb7c4bdec07de9b2056d2ea0dd2e /drivers | |
parent | 6caffd4f9d11cbd9651d93a511ac385ce84aab83 (diff) |
iwlwifi: mvm: Add beacon notification handler
Mostly for debugging purposes
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/fw-api.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | 19 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mvm.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/ops.c | 2 |
5 files changed, 31 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h index 6d53850c5448..007a93b25bd7 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h | |||
@@ -537,6 +537,12 @@ struct iwl_mac_beacon_cmd { | |||
537 | struct ieee80211_hdr frame[0]; | 537 | struct ieee80211_hdr frame[0]; |
538 | } __packed; | 538 | } __packed; |
539 | 539 | ||
540 | struct iwl_beacon_notif { | ||
541 | struct iwl_mvm_tx_resp beacon_notify_hdr; | ||
542 | __le64 tsf; | ||
543 | __le32 ibss_mgr_status; | ||
544 | } __packed; | ||
545 | |||
540 | /** | 546 | /** |
541 | * enum iwl_dump_control - dump (flush) control flags | 547 | * enum iwl_dump_control - dump (flush) control flags |
542 | * @DUMP_TX_FIFO_FLUSH: Dump MSDUs until the the FIFO is empty | 548 | * @DUMP_TX_FIFO_FLUSH: Dump MSDUs until the the FIFO is empty |
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api.h b/drivers/net/wireless/iwlwifi/mvm/fw-api.h index 0e94d8b91956..1073f2682221 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api.h | |||
@@ -151,6 +151,7 @@ enum { | |||
151 | 151 | ||
152 | SET_CALIB_DEFAULT_CMD = 0x8e, | 152 | SET_CALIB_DEFAULT_CMD = 0x8e, |
153 | 153 | ||
154 | BEACON_NOTIFICATION = 0x90, | ||
154 | BEACON_TEMPLATE_CMD = 0x91, | 155 | BEACON_TEMPLATE_CMD = 0x91, |
155 | TX_ANT_CONFIGURATION_CMD = 0x98, | 156 | TX_ANT_CONFIGURATION_CMD = 0x98, |
156 | BT_CONFIG = 0x9b, | 157 | BT_CONFIG = 0x9b, |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c index 2779235daa35..a00fb730386f 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | |||
@@ -1013,3 +1013,22 @@ int iwl_mvm_mac_ctxt_remove(struct iwl_mvm *mvm, struct ieee80211_vif *vif) | |||
1013 | mvmvif->uploaded = false; | 1013 | mvmvif->uploaded = false; |
1014 | return 0; | 1014 | return 0; |
1015 | } | 1015 | } |
1016 | |||
1017 | int iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm, | ||
1018 | struct iwl_rx_cmd_buffer *rxb, | ||
1019 | struct iwl_device_cmd *cmd) | ||
1020 | { | ||
1021 | struct iwl_rx_packet *pkt = rxb_addr(rxb); | ||
1022 | struct iwl_beacon_notif *beacon = (void *)pkt->data; | ||
1023 | u16 status __maybe_unused = | ||
1024 | le16_to_cpu(beacon->beacon_notify_hdr.status.status); | ||
1025 | u32 rate __maybe_unused = | ||
1026 | le32_to_cpu(beacon->beacon_notify_hdr.initial_rate); | ||
1027 | |||
1028 | IWL_DEBUG_RX(mvm, "beacon status %#x retries:%d tsf:0x%16llX rate:%d\n", | ||
1029 | status & TX_STATUS_MSK, | ||
1030 | beacon->beacon_notify_hdr.failure_frame, | ||
1031 | le64_to_cpu(beacon->tsf), | ||
1032 | rate); | ||
1033 | return 0; | ||
1034 | } | ||
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index d022e44e83a1..ea1fafd616e9 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h | |||
@@ -448,6 +448,9 @@ u32 iwl_mvm_mac_get_queues_mask(struct iwl_mvm *mvm, | |||
448 | struct ieee80211_vif *vif); | 448 | struct ieee80211_vif *vif); |
449 | int iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm, | 449 | int iwl_mvm_mac_ctxt_beacon_changed(struct iwl_mvm *mvm, |
450 | struct ieee80211_vif *vif); | 450 | struct ieee80211_vif *vif); |
451 | int iwl_mvm_rx_beacon_notif(struct iwl_mvm *mvm, | ||
452 | struct iwl_rx_cmd_buffer *rxb, | ||
453 | struct iwl_device_cmd *cmd); | ||
451 | 454 | ||
452 | /* Bindings */ | 455 | /* Bindings */ |
453 | int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif); | 456 | int iwl_mvm_binding_add_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c index b490426294cc..81ff28361dc2 100644 --- a/drivers/net/wireless/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/iwlwifi/mvm/ops.c | |||
@@ -231,6 +231,7 @@ static const struct iwl_rx_handlers iwl_mvm_rx_handlers[] = { | |||
231 | RX_HANDLER(SCAN_COMPLETE_NOTIFICATION, iwl_mvm_rx_scan_complete, false), | 231 | RX_HANDLER(SCAN_COMPLETE_NOTIFICATION, iwl_mvm_rx_scan_complete, false), |
232 | 232 | ||
233 | RX_HANDLER(BT_PROFILE_NOTIFICATION, iwl_mvm_rx_bt_coex_notif, true), | 233 | RX_HANDLER(BT_PROFILE_NOTIFICATION, iwl_mvm_rx_bt_coex_notif, true), |
234 | RX_HANDLER(BEACON_NOTIFICATION, iwl_mvm_rx_beacon_notif, false), | ||
234 | 235 | ||
235 | RX_HANDLER(RADIO_VERSION_NOTIFICATION, iwl_mvm_rx_radio_ver, false), | 236 | RX_HANDLER(RADIO_VERSION_NOTIFICATION, iwl_mvm_rx_radio_ver, false), |
236 | RX_HANDLER(CARD_STATE_NOTIFICATION, iwl_mvm_rx_card_state_notif, false), | 237 | RX_HANDLER(CARD_STATE_NOTIFICATION, iwl_mvm_rx_card_state_notif, false), |
@@ -276,6 +277,7 @@ static const char *iwl_mvm_cmd_strings[REPLY_MAX] = { | |||
276 | CMD(WEP_KEY), | 277 | CMD(WEP_KEY), |
277 | CMD(REPLY_RX_PHY_CMD), | 278 | CMD(REPLY_RX_PHY_CMD), |
278 | CMD(REPLY_RX_MPDU_CMD), | 279 | CMD(REPLY_RX_MPDU_CMD), |
280 | CMD(BEACON_NOTIFICATION), | ||
279 | CMD(BEACON_TEMPLATE_CMD), | 281 | CMD(BEACON_TEMPLATE_CMD), |
280 | CMD(STATISTICS_NOTIFICATION), | 282 | CMD(STATISTICS_NOTIFICATION), |
281 | CMD(TX_ANT_CONFIGURATION_CMD), | 283 | CMD(TX_ANT_CONFIGURATION_CMD), |