Lines Matching full:beacon
129 * is an AP, and the beacon interval of the AP is a multiple or in iwl_mvm_mac_tsf_id_iter()
130 * divisor of the beacon interval of the client, the same TSF in iwl_mvm_mac_tsf_id_iter()
155 * The new interface is AP/GO, so if its beacon interval is a in iwl_mvm_mac_tsf_id_iter()
156 * multiple or a divisor of the beacon interval of an existing in iwl_mvm_mac_tsf_id_iter()
630 * more beacon intervals happen until the DTIM TBTT. Therefore in iwl_mvm_mac_ctxt_cmd_sta()
764 /* TODO: Assumes that the beacon id == mac context id */ in iwl_mvm_mac_ctxt_cmd_ibss()
816 u8 *beacon, u32 frame_size) in iwl_mvm_mac_ctxt_set_tim() argument
819 struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)beacon; in iwl_mvm_mac_ctxt_set_tim()
822 * variable-length part of the beacon. */ in iwl_mvm_mac_ctxt_set_tim()
823 tim_idx = mgmt->u.beacon.variable - beacon; in iwl_mvm_mac_ctxt_set_tim()
825 /* Parse variable-length elements of beacon to find WLAN_EID_TIM */ in iwl_mvm_mac_ctxt_set_tim()
827 (beacon[tim_idx] != WLAN_EID_TIM)) in iwl_mvm_mac_ctxt_set_tim()
828 tim_idx += beacon[tim_idx+1] + 2; in iwl_mvm_mac_ctxt_set_tim()
831 if ((tim_idx < (frame_size - 1)) && (beacon[tim_idx] == WLAN_EID_TIM)) { in iwl_mvm_mac_ctxt_set_tim()
833 *tim_size = cpu_to_le32((u32)beacon[tim_idx + 1]); in iwl_mvm_mac_ctxt_set_tim()
835 IWL_WARN(mvm, "Unable to find TIM Element in beacon\n"); in iwl_mvm_mac_ctxt_set_tim()
839 static u32 iwl_mvm_find_ie_offset(u8 *beacon, u8 eid, u32 frame_size) in iwl_mvm_find_ie_offset() argument
841 struct ieee80211_mgmt *mgmt = (void *)beacon; in iwl_mvm_find_ie_offset()
844 if (WARN_ON_ONCE(frame_size <= (mgmt->u.beacon.variable - beacon))) in iwl_mvm_find_ie_offset()
847 frame_size -= mgmt->u.beacon.variable - beacon; in iwl_mvm_find_ie_offset()
849 ie = cfg80211_find_ie(eid, mgmt->u.beacon.variable, frame_size); in iwl_mvm_find_ie_offset()
853 return ie - beacon; in iwl_mvm_find_ie_offset()
870 struct sk_buff *beacon, in iwl_mvm_mac_ctxt_set_tx() argument
878 info = IEEE80211_SKB_CB(beacon); in iwl_mvm_mac_ctxt_set_tx()
881 tx->len = cpu_to_le16((u16)beacon->len); in iwl_mvm_mac_ctxt_set_tx()
886 iwl_mvm_bt_coex_tx_prio(mvm, (void *)beacon->data, info, 0) << in iwl_mvm_mac_ctxt_set_tx()
907 struct sk_buff *beacon, in iwl_mvm_mac_ctxt_send_beacon_cmd() argument
918 cmd.len[1] = beacon->len; in iwl_mvm_mac_ctxt_send_beacon_cmd()
919 cmd.data[1] = beacon->data; in iwl_mvm_mac_ctxt_send_beacon_cmd()
927 struct sk_buff *beacon) in iwl_mvm_mac_ctxt_send_beacon_v6() argument
932 iwl_mvm_mac_ctxt_set_tx(mvm, vif, beacon, &beacon_cmd.tx); in iwl_mvm_mac_ctxt_send_beacon_v6()
939 beacon->data, beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v6()
941 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in iwl_mvm_mac_ctxt_send_beacon_v6()
947 struct sk_buff *beacon) in iwl_mvm_mac_ctxt_send_beacon_v7() argument
952 iwl_mvm_mac_ctxt_set_tx(mvm, vif, beacon, &beacon_cmd.tx); in iwl_mvm_mac_ctxt_send_beacon_v7()
959 beacon->data, beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v7()
962 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v7()
964 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v7()
966 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v7()
968 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v7()
970 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in iwl_mvm_mac_ctxt_send_beacon_v7()
976 struct sk_buff *beacon) in iwl_mvm_mac_ctxt_send_beacon_v9() argument
979 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(beacon); in iwl_mvm_mac_ctxt_send_beacon_v9()
990 beacon_cmd.byte_cnt = cpu_to_le16((u16)beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v9()
996 beacon->data, beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v9()
999 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v9()
1001 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v9()
1003 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v9()
1005 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v9()
1007 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in iwl_mvm_mac_ctxt_send_beacon_v9()
1013 struct sk_buff *beacon) in iwl_mvm_mac_ctxt_send_beacon() argument
1015 if (WARN_ON(!beacon)) in iwl_mvm_mac_ctxt_send_beacon()
1023 return iwl_mvm_mac_ctxt_send_beacon_v6(mvm, vif, beacon); in iwl_mvm_mac_ctxt_send_beacon()
1027 return iwl_mvm_mac_ctxt_send_beacon_v9(mvm, vif, beacon); in iwl_mvm_mac_ctxt_send_beacon()
1029 return iwl_mvm_mac_ctxt_send_beacon_v7(mvm, vif, beacon); in iwl_mvm_mac_ctxt_send_beacon()
1032 /* The beacon template for the AP/GO/IBSS has changed and needs update */
1036 struct sk_buff *beacon; in iwl_mvm_mac_ctxt_beacon_changed() local
1042 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL); in iwl_mvm_mac_ctxt_beacon_changed()
1043 if (!beacon) in iwl_mvm_mac_ctxt_beacon_changed()
1051 ret = iwl_mvm_mac_ctxt_send_beacon(mvm, vif, beacon); in iwl_mvm_mac_ctxt_beacon_changed()
1052 dev_kfree_skb(beacon); in iwl_mvm_mac_ctxt_beacon_changed()
1122 * Only set the beacon time when the MAC is being added, when we in iwl_mvm_mac_ctxt_cmd_fill_ap()
1149 /* TODO: Assume that the beacon id == mac context id */ in iwl_mvm_mac_ctxt_cmd_fill_ap()
1299 /* Don't start to countdown from a failed beacon */ in iwl_mvm_csa_count_down()
1333 struct iwl_extended_beacon_notif *beacon = (void *)pkt->data; in iwl_mvm_rx_beacon_notif() local
1342 mvm->ap_last_beacon_gp2 = le32_to_cpu(beacon->gp2); in iwl_mvm_rx_beacon_notif()
1352 "beacon status %#x retries:%d tsf:0x%016llX gp2:0x%X rate:%d\n", in iwl_mvm_rx_beacon_notif()
1354 le64_to_cpu(beacon->tsf), in iwl_mvm_rx_beacon_notif()
1358 mvm->ibss_manager = beacon->ibss_mgr_status != 0; in iwl_mvm_rx_beacon_notif()
1359 status = le32_to_cpu(beacon->status) & TX_STATUS_MSK; in iwl_mvm_rx_beacon_notif()
1361 "beacon status %#x tsf:0x%016llX gp2:0x%X\n", in iwl_mvm_rx_beacon_notif()
1362 status, le64_to_cpu(beacon->tsf), in iwl_mvm_rx_beacon_notif()
1380 * stations. If this is the first beacon (the timeout wasn't in iwl_mvm_rx_beacon_notif()
1631 iwl_mvm_connection_loss(mvm, vif, "missed vap beacon"); in iwl_mvm_rx_missed_vap_notif()