Lines Matching full:beacon
74 * is an AP, and the beacon interval of the AP is a multiple or in iwl_mvm_mac_tsf_id_iter()
75 * divisor of the beacon interval of the client, the same TSF in iwl_mvm_mac_tsf_id_iter()
100 * The new interface is AP/GO, so if its beacon interval is a in iwl_mvm_mac_tsf_id_iter()
101 * multiple or a divisor of the beacon interval of an existing in iwl_mvm_mac_tsf_id_iter()
596 * more beacon intervals happen until the DTIM TBTT. Therefore in iwl_mvm_set_fw_dtim_tbtt()
781 /* TODO: Assumes that the beacon id == mac context id */ in iwl_mvm_mac_ctxt_cmd_ibss()
842 u8 *beacon, u32 frame_size) in iwl_mvm_mac_ctxt_set_tim() argument
845 struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)beacon; in iwl_mvm_mac_ctxt_set_tim()
848 * variable-length part of the beacon. */ in iwl_mvm_mac_ctxt_set_tim()
849 tim_idx = mgmt->u.beacon.variable - beacon; in iwl_mvm_mac_ctxt_set_tim()
851 /* Parse variable-length elements of beacon to find WLAN_EID_TIM */ in iwl_mvm_mac_ctxt_set_tim()
853 (beacon[tim_idx] != WLAN_EID_TIM)) in iwl_mvm_mac_ctxt_set_tim()
854 tim_idx += beacon[tim_idx+1] + 2; in iwl_mvm_mac_ctxt_set_tim()
857 if ((tim_idx < (frame_size - 1)) && (beacon[tim_idx] == WLAN_EID_TIM)) { in iwl_mvm_mac_ctxt_set_tim()
859 *tim_size = cpu_to_le32((u32)beacon[tim_idx + 1]); in iwl_mvm_mac_ctxt_set_tim()
861 IWL_WARN(mvm, "Unable to find TIM Element in beacon\n"); in iwl_mvm_mac_ctxt_set_tim()
865 static u32 iwl_mvm_find_ie_offset(u8 *beacon, u8 eid, u32 frame_size) in iwl_mvm_find_ie_offset() argument
867 struct ieee80211_mgmt *mgmt = (void *)beacon; in iwl_mvm_find_ie_offset()
870 if (WARN_ON_ONCE(frame_size <= (mgmt->u.beacon.variable - beacon))) in iwl_mvm_find_ie_offset()
873 frame_size -= mgmt->u.beacon.variable - beacon; in iwl_mvm_find_ie_offset()
875 ie = cfg80211_find_ie(eid, mgmt->u.beacon.variable, frame_size); in iwl_mvm_find_ie_offset()
879 return ie - beacon; in iwl_mvm_find_ie_offset()
969 /* if beacon rate was configured try using it */ in iwl_mvm_mac_ctxt_get_beacon_rate()
981 struct sk_buff *beacon, in iwl_mvm_mac_ctxt_set_tx() argument
989 info = IEEE80211_SKB_CB(beacon); in iwl_mvm_mac_ctxt_set_tx()
992 tx->len = cpu_to_le16((u16)beacon->len); in iwl_mvm_mac_ctxt_set_tx()
997 iwl_mvm_bt_coex_tx_prio(mvm, (void *)beacon->data, info, 0) << in iwl_mvm_mac_ctxt_set_tx()
1019 struct sk_buff *beacon, in iwl_mvm_mac_ctxt_send_beacon_cmd() argument
1030 cmd.len[1] = beacon->len; in iwl_mvm_mac_ctxt_send_beacon_cmd()
1031 cmd.data[1] = beacon->data; in iwl_mvm_mac_ctxt_send_beacon_cmd()
1039 struct sk_buff *beacon) in iwl_mvm_mac_ctxt_send_beacon_v6() argument
1044 iwl_mvm_mac_ctxt_set_tx(mvm, vif, beacon, &beacon_cmd.tx); in iwl_mvm_mac_ctxt_send_beacon_v6()
1051 beacon->data, beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v6()
1053 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in iwl_mvm_mac_ctxt_send_beacon_v6()
1059 struct sk_buff *beacon) in iwl_mvm_mac_ctxt_send_beacon_v7() argument
1064 iwl_mvm_mac_ctxt_set_tx(mvm, vif, beacon, &beacon_cmd.tx); in iwl_mvm_mac_ctxt_send_beacon_v7()
1071 beacon->data, beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v7()
1074 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v7()
1076 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v7()
1078 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v7()
1080 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v7()
1082 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in iwl_mvm_mac_ctxt_send_beacon_v7()
1088 struct sk_buff *beacon, in iwl_mvm_mac_ctxt_send_beacon_v9() argument
1092 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(beacon); in iwl_mvm_mac_ctxt_send_beacon_v9()
1118 beacon_cmd.byte_cnt = cpu_to_le16((u16)beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v9()
1132 beacon->data, beacon->len); in iwl_mvm_mac_ctxt_send_beacon_v9()
1135 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v9()
1137 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v9()
1139 cpu_to_le32(iwl_mvm_find_ie_offset(beacon->data, in iwl_mvm_mac_ctxt_send_beacon_v9()
1141 beacon->len)); in iwl_mvm_mac_ctxt_send_beacon_v9()
1143 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd, in iwl_mvm_mac_ctxt_send_beacon_v9()
1149 struct sk_buff *beacon, in iwl_mvm_mac_ctxt_send_beacon() argument
1152 if (WARN_ON(!beacon)) in iwl_mvm_mac_ctxt_send_beacon()
1160 return iwl_mvm_mac_ctxt_send_beacon_v6(mvm, vif, beacon); in iwl_mvm_mac_ctxt_send_beacon()
1164 return iwl_mvm_mac_ctxt_send_beacon_v9(mvm, vif, beacon, in iwl_mvm_mac_ctxt_send_beacon()
1167 return iwl_mvm_mac_ctxt_send_beacon_v7(mvm, vif, beacon); in iwl_mvm_mac_ctxt_send_beacon()
1170 /* The beacon template for the AP/GO/IBSS has changed and needs update */
1175 struct sk_buff *beacon; in iwl_mvm_mac_ctxt_beacon_changed() local
1181 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL, in iwl_mvm_mac_ctxt_beacon_changed()
1183 if (!beacon) in iwl_mvm_mac_ctxt_beacon_changed()
1188 dev_kfree_skb(beacon); in iwl_mvm_mac_ctxt_beacon_changed()
1193 ret = iwl_mvm_mac_ctxt_send_beacon(mvm, vif, beacon, link_conf); in iwl_mvm_mac_ctxt_beacon_changed()
1194 dev_kfree_skb(beacon); in iwl_mvm_mac_ctxt_beacon_changed()
1279 * Only set the beacon time when the MAC is being added, when we in iwl_mvm_mac_ctxt_cmd_fill_ap()
1306 /* TODO: Assume that the beacon id == mac context id */ in iwl_mvm_mac_ctxt_cmd_fill_ap()
1451 /* Don't start to countdown from a failed beacon */ in iwl_mvm_csa_count_down()
1487 struct iwl_extended_beacon_notif *beacon = (void *)pkt->data; in iwl_mvm_rx_beacon_notif() local
1496 mvm->ap_last_beacon_gp2 = le32_to_cpu(beacon->gp2); in iwl_mvm_rx_beacon_notif()
1509 "beacon status %#x retries:%d tsf:0x%016llX gp2:0x%X rate:%d\n", in iwl_mvm_rx_beacon_notif()
1511 le64_to_cpu(beacon->tsf), in iwl_mvm_rx_beacon_notif()
1515 if (unlikely(pkt_len < sizeof(*beacon))) in iwl_mvm_rx_beacon_notif()
1518 mvm->ibss_manager = beacon->ibss_mgr_status != 0; in iwl_mvm_rx_beacon_notif()
1519 status = le32_to_cpu(beacon->status) & TX_STATUS_MSK; in iwl_mvm_rx_beacon_notif()
1521 "beacon status %#x tsf:0x%016llX gp2:0x%X\n", in iwl_mvm_rx_beacon_notif()
1522 status, le64_to_cpu(beacon->tsf), in iwl_mvm_rx_beacon_notif()
1540 * stations. If this is the first beacon (the timeout wasn't in iwl_mvm_rx_beacon_notif()
1604 IWL_DEBUG_INFO(mvm, "missed beacon mac_type=%u,\n", mac_type); in iwl_mvm_rx_missed_beacons_notif()
1896 iwl_mvm_connection_loss(mvm, vif, "missed vap beacon"); in iwl_mvm_rx_missed_vap_notif()