Lines Matching refs:ar
28 struct ath6kl *ar = vif->ar; in ath6kl_find_sta() local
38 if (memcmp(node_addr, ar->sta_list[i].mac, ETH_ALEN) == 0) { in ath6kl_find_sta()
39 conn = &ar->sta_list[i]; in ath6kl_find_sta()
47 struct ath6kl_sta *ath6kl_find_sta_by_aid(struct ath6kl *ar, u8 aid) in ath6kl_find_sta_by_aid() argument
53 if (ar->sta_list[ctr].aid == aid) { in ath6kl_find_sta_by_aid()
54 conn = &ar->sta_list[ctr]; in ath6kl_find_sta_by_aid()
65 struct ath6kl *ar = vif->ar; in ath6kl_add_new_sta() local
71 sta = &ar->sta_list[free_slot]; in ath6kl_add_new_sta()
81 ar->sta_list_index = ar->sta_list_index | (1 << free_slot); in ath6kl_add_new_sta()
82 ar->ap_stats.sta[free_slot].aid = cpu_to_le32(aid); in ath6kl_add_new_sta()
86 static void ath6kl_sta_cleanup(struct ath6kl *ar, u8 i) in ath6kl_sta_cleanup() argument
88 struct ath6kl_sta *sta = &ar->sta_list[i]; in ath6kl_sta_cleanup()
106 memset(&ar->ap_stats.sta[sta->aid - 1], 0, in ath6kl_sta_cleanup()
113 ar->sta_list_index = ar->sta_list_index & ~(1 << i); in ath6kl_sta_cleanup()
117 static u8 ath6kl_remove_sta(struct ath6kl *ar, u8 *mac, u16 reason) in ath6kl_remove_sta() argument
128 if (!is_zero_ether_addr(ar->sta_list[i].mac)) { in ath6kl_remove_sta()
129 ath6kl_sta_cleanup(ar, i); in ath6kl_remove_sta()
135 if (memcmp(ar->sta_list[i].mac, mac, ETH_ALEN) == 0) { in ath6kl_remove_sta()
138 mac, ar->sta_list[i].aid, reason); in ath6kl_remove_sta()
139 ath6kl_sta_cleanup(ar, i); in ath6kl_remove_sta()
151 struct ath6kl *ar = devt; in ath6kl_ac2_endpoint_id() local
152 return ar->ac2ep_map[ac]; in ath6kl_ac2_endpoint_id()
155 struct ath6kl_cookie *ath6kl_alloc_cookie(struct ath6kl *ar) in ath6kl_alloc_cookie() argument
159 cookie = ar->cookie_list; in ath6kl_alloc_cookie()
161 ar->cookie_list = cookie->arc_list_next; in ath6kl_alloc_cookie()
162 ar->cookie_count--; in ath6kl_alloc_cookie()
168 void ath6kl_cookie_init(struct ath6kl *ar) in ath6kl_cookie_init() argument
172 ar->cookie_list = NULL; in ath6kl_cookie_init()
173 ar->cookie_count = 0; in ath6kl_cookie_init()
175 memset(ar->cookie_mem, 0, sizeof(ar->cookie_mem)); in ath6kl_cookie_init()
178 ath6kl_free_cookie(ar, &ar->cookie_mem[i]); in ath6kl_cookie_init()
181 void ath6kl_cookie_cleanup(struct ath6kl *ar) in ath6kl_cookie_cleanup() argument
183 ar->cookie_list = NULL; in ath6kl_cookie_cleanup()
184 ar->cookie_count = 0; in ath6kl_cookie_cleanup()
187 void ath6kl_free_cookie(struct ath6kl *ar, struct ath6kl_cookie *cookie) in ath6kl_free_cookie() argument
191 if (!ar || !cookie) in ath6kl_free_cookie()
194 cookie->arc_list_next = ar->cookie_list; in ath6kl_free_cookie()
195 ar->cookie_list = cookie; in ath6kl_free_cookie()
196 ar->cookie_count++; in ath6kl_free_cookie()
203 int ath6kl_diag_read32(struct ath6kl *ar, u32 address, u32 *value) in ath6kl_diag_read32() argument
207 ret = ath6kl_hif_diag_read32(ar, address, value); in ath6kl_diag_read32()
221 int ath6kl_diag_write32(struct ath6kl *ar, u32 address, __le32 value) in ath6kl_diag_write32() argument
225 ret = ath6kl_hif_diag_write32(ar, address, value); in ath6kl_diag_write32()
236 int ath6kl_diag_read(struct ath6kl *ar, u32 address, void *data, u32 length) in ath6kl_diag_read() argument
245 ret = ath6kl_diag_read32(ar, address, &buf[count]); in ath6kl_diag_read()
253 int ath6kl_diag_write(struct ath6kl *ar, u32 address, void *data, u32 length) in ath6kl_diag_write() argument
263 ret = ath6kl_diag_write32(ar, address, buf[count]); in ath6kl_diag_write()
271 int ath6kl_read_fwlogs(struct ath6kl *ar) in ath6kl_read_fwlogs() argument
283 address = TARG_VTOP(ar->target_type, in ath6kl_read_fwlogs()
284 ath6kl_get_hi_item_addr(ar, in ath6kl_read_fwlogs()
287 ret = ath6kl_diag_read32(ar, address, &debug_hdr_addr); in ath6kl_read_fwlogs()
298 address = TARG_VTOP(ar->target_type, debug_hdr_addr); in ath6kl_read_fwlogs()
299 ret = ath6kl_diag_read(ar, address, &debug_hdr, sizeof(debug_hdr)); in ath6kl_read_fwlogs()
303 address = TARG_VTOP(ar->target_type, in ath6kl_read_fwlogs()
307 ret = ath6kl_diag_read(ar, address, &debug_buf, sizeof(debug_buf)); in ath6kl_read_fwlogs()
314 address = TARG_VTOP(ar->target_type, in ath6kl_read_fwlogs()
322 ret = ath6kl_diag_read(ar, address, in ath6kl_read_fwlogs()
327 ath6kl_debug_fwlog_event(ar, buf, length); in ath6kl_read_fwlogs()
330 address = TARG_VTOP(ar->target_type, in ath6kl_read_fwlogs()
332 ret = ath6kl_diag_read(ar, address, &debug_buf, in ath6kl_read_fwlogs()
362 ath6kl_wmi_addkey_cmd(vif->ar->wmi, vif->fw_vif_idx, in ath6kl_install_static_wep_keys()
377 struct ath6kl *ar = vif->ar; in ath6kl_connect_ap_mode_bss() local
382 ik = &ar->ap_mode_bkey; in ath6kl_connect_ap_mode_bss()
403 ar->wmi, vif->fw_vif_idx, ik->key_index, ik->key_type, in ath6kl_connect_ap_mode_bss()
414 if (ar->last_ch != channel) in ath6kl_connect_ap_mode_bss()
418 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, NONE_BSS_FILTER, 0); in ath6kl_connect_ap_mode_bss()
510 ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx); in ath6kl_disconnect()
525 struct ath6kl *ar = devt; in ath6kl_ready_event() local
527 memcpy(ar->mac_addr, datap, ETH_ALEN); in ath6kl_ready_event()
531 ar->mac_addr, sw_ver, abi_ver, cap); in ath6kl_ready_event()
533 ar->version.wlan_ver = sw_ver; in ath6kl_ready_event()
534 ar->version.abi_ver = abi_ver; in ath6kl_ready_event()
535 ar->hw.cap = cap; in ath6kl_ready_event()
537 if (strlen(ar->wiphy->fw_version) == 0) { in ath6kl_ready_event()
538 snprintf(ar->wiphy->fw_version, in ath6kl_ready_event()
539 sizeof(ar->wiphy->fw_version), in ath6kl_ready_event()
541 (ar->version.wlan_ver & 0xf0000000) >> 28, in ath6kl_ready_event()
542 (ar->version.wlan_ver & 0x0f000000) >> 24, in ath6kl_ready_event()
543 (ar->version.wlan_ver & 0x00ff0000) >> 16, in ath6kl_ready_event()
544 (ar->version.wlan_ver & 0x0000ffff)); in ath6kl_ready_event()
548 set_bit(WMI_READY, &ar->flag); in ath6kl_ready_event()
549 wake_up(&ar->event_wq); in ath6kl_ready_event()
554 struct ath6kl *ar = vif->ar; in ath6kl_scan_complete_evt() local
562 if (!ar->usr_bss_filter) { in ath6kl_scan_complete_evt()
564 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_scan_complete_evt()
573 struct ath6kl *ar = vif->ar; in ath6kl_commit_ch_switch() local
585 ar->fw_capabilities)) in ath6kl_commit_ch_switch()
586 ath6kl_wmi_set_ie_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_commit_ch_switch()
591 return ath6kl_wmi_ap_profile_commit(ar->wmi, vif->fw_vif_idx, in ath6kl_commit_ch_switch()
599 static void ath6kl_check_ch_switch(struct ath6kl *ar, u16 channel) in ath6kl_check_ch_switch() argument
604 if (!ar->want_ch_switch) in ath6kl_check_ch_switch()
607 spin_lock_bh(&ar->list_lock); in ath6kl_check_ch_switch()
608 list_for_each_entry(vif, &ar->vif_list, list) { in ath6kl_check_ch_switch()
609 if (ar->want_ch_switch & (1 << vif->fw_vif_idx)) in ath6kl_check_ch_switch()
613 ar->want_ch_switch &= ~(1 << vif->fw_vif_idx); in ath6kl_check_ch_switch()
619 spin_unlock_bh(&ar->list_lock); in ath6kl_check_ch_switch()
628 struct ath6kl *ar = vif->ar; in ath6kl_connect_event() local
640 ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_connect_event()
642 ath6kl_check_ch_switch(ar, channel); in ath6kl_connect_event()
657 if ((vif->nw_type == ADHOC_NETWORK) && ar->ibss_ps_enable) { in ath6kl_connect_event()
658 memset(ar->node_map, 0, sizeof(ar->node_map)); in ath6kl_connect_event()
659 ar->node_num = 0; in ath6kl_connect_event()
660 ar->next_ep_id = ENDPOINT_2; in ath6kl_connect_event()
663 if (!ar->usr_bss_filter) { in ath6kl_connect_event()
665 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_connect_event()
673 struct ath6kl *ar = vif->ar; in ath6kl_tkip_micerr_event() local
681 sta = ath6kl_find_sta_by_aid(ar, (keyid >> 2)); in ath6kl_tkip_micerr_event()
701 struct ath6kl *ar = vif->ar; in ath6kl_update_target_stats() local
736 stats->tx_ucast_rate = ath6kl_wmi_get_rate(ar->wmi, rate); in ath6kl_update_target_stats()
755 stats->rx_ucast_rate = ath6kl_wmi_get_rate(ar->wmi, rate); in ath6kl_update_target_stats()
807 wake_up(&ar->event_wq); in ath6kl_update_target_stats()
819 struct ath6kl *ar = vif->ar; in ath6kl_tgt_stats_event() local
820 struct wmi_ap_mode_stat *ap = &ar->ap_stats; in ath6kl_tgt_stats_event()
849 struct ath6kl *ar = (struct ath6kl *) dev; in ath6kl_wakeup_event() local
851 wake_up(&ar->event_wq); in ath6kl_wakeup_event()
856 struct ath6kl *ar = (struct ath6kl *) devt; in ath6kl_txpwr_rx_evt() local
858 ar->tx_pwr = tx_pwr; in ath6kl_txpwr_rx_evt()
859 wake_up(&ar->event_wq); in ath6kl_txpwr_rx_evt()
867 struct ath6kl *ar = vif->ar; in ath6kl_pspoll_event() local
870 conn = ath6kl_find_sta_by_aid(ar, aid); in ath6kl_pspoll_event()
895 ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_pspoll_event()
915 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, conn->aid, 0); in ath6kl_pspoll_event()
922 struct ath6kl *ar = vif->ar; in ath6kl_dtimexpiry_event() local
933 if (!ar->sta_list_index) in ath6kl_dtimexpiry_event()
936 spin_lock_bh(&ar->mcastpsq_lock); in ath6kl_dtimexpiry_event()
937 mcastq_empty = skb_queue_empty(&ar->mcastpsq); in ath6kl_dtimexpiry_event()
938 spin_unlock_bh(&ar->mcastpsq_lock); in ath6kl_dtimexpiry_event()
946 spin_lock_bh(&ar->mcastpsq_lock); in ath6kl_dtimexpiry_event()
947 while ((skb = skb_dequeue(&ar->mcastpsq)) != NULL) { in ath6kl_dtimexpiry_event()
948 spin_unlock_bh(&ar->mcastpsq_lock); in ath6kl_dtimexpiry_event()
952 spin_lock_bh(&ar->mcastpsq_lock); in ath6kl_dtimexpiry_event()
954 spin_unlock_bh(&ar->mcastpsq_lock); in ath6kl_dtimexpiry_event()
959 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, MCAST_AID, 0); in ath6kl_dtimexpiry_event()
966 struct ath6kl *ar = vif->ar; in ath6kl_disconnect_event() local
972 ar->want_ch_switch |= 1 << vif->fw_vif_idx; in ath6kl_disconnect_event()
974 ar->last_ch = le16_to_cpu(vif->profile.ch); in ath6kl_disconnect_event()
991 if (!ath6kl_remove_sta(ar, bssid, prot_reason_status)) in ath6kl_disconnect_event()
995 if (ar->sta_list_index == 0) { in ath6kl_disconnect_event()
996 spin_lock_bh(&ar->mcastpsq_lock); in ath6kl_disconnect_event()
997 skb_queue_purge(&ar->mcastpsq); in ath6kl_disconnect_event()
998 spin_unlock_bh(&ar->mcastpsq_lock); in ath6kl_disconnect_event()
1001 if (test_bit(WMI_READY, &ar->flag)) in ath6kl_disconnect_event()
1002 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_disconnect_event()
1034 if (!ar->usr_bss_filter && test_bit(WMI_READY, &ar->flag)) in ath6kl_disconnect_event()
1035 ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_disconnect_event()
1049 ath6kl_check_ch_switch(ar, ar->last_ch); in ath6kl_disconnect_event()
1061 ar->user_key_ctrl = 0; in ath6kl_disconnect_event()
1067 ath6kl_tx_data_cleanup(ar); in ath6kl_disconnect_event()
1070 struct ath6kl_vif *ath6kl_vif_first(struct ath6kl *ar) in ath6kl_vif_first() argument
1074 spin_lock_bh(&ar->list_lock); in ath6kl_vif_first()
1075 if (list_empty(&ar->vif_list)) { in ath6kl_vif_first()
1076 spin_unlock_bh(&ar->list_lock); in ath6kl_vif_first()
1080 vif = list_first_entry(&ar->vif_list, struct ath6kl_vif, list); in ath6kl_vif_first()
1082 spin_unlock_bh(&ar->list_lock); in ath6kl_vif_first()
1127 struct ath6kl *ar = vif->ar; in ath6kl_set_features() local
1131 (ar->rx_meta_ver != WMI_META_VERSION_2)) { in ath6kl_set_features()
1132 ar->rx_meta_ver = WMI_META_VERSION_2; in ath6kl_set_features()
1133 err = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi, in ath6kl_set_features()
1135 ar->rx_meta_ver, 0, 0); in ath6kl_set_features()
1141 (ar->rx_meta_ver == WMI_META_VERSION_2)) { in ath6kl_set_features()
1142 ar->rx_meta_ver = 0; in ath6kl_set_features()
1143 err = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi, in ath6kl_set_features()
1145 ar->rx_meta_ver, 0, 0); in ath6kl_set_features()
1166 if (!test_bit(WMI_READY, &vif->ar->flag) || in ath6kl_set_multicast_list()
1181 vif->ar->fw_capabilities)) { in ath6kl_set_multicast_list()
1182 mc_all_on = mc_all_on || (vif->ar->state == ATH6KL_STATE_ON); in ath6kl_set_multicast_list()
1196 ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, vif->fw_vif_idx, in ath6kl_set_multicast_list()
1226 ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi, in ath6kl_set_multicast_list()
1266 ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi, in ath6kl_set_multicast_list()
1295 struct ath6kl *ar = ath6kl_priv(dev); in init_netdev() local
1309 ar->fw_capabilities)) in init_netdev()