Lines Matching refs:priv

41 	struct p54_common *priv = hw->priv;  in p54_sta_add_remove()  local
48 p54_sta_unlock(priv, sta->addr); in p54_sta_add_remove()
57 struct p54_common *priv = dev->priv; in p54_sta_notify() local
62 p54_sta_unlock(priv, sta->addr); in p54_sta_notify()
72 struct p54_common *priv = dev->priv; in p54_set_tim() local
74 return p54_update_beacon_tim(priv, sta->aid, set); in p54_set_tim()
138 static int p54_beacon_update(struct p54_common *priv, in p54_beacon_update() argument
145 beacon = ieee80211_beacon_get(priv->hw, vif); in p54_beacon_update()
161 p54_tx_80211(priv->hw, &control, beacon); in p54_beacon_update()
162 priv->tsf_high32 = 0; in p54_beacon_update()
163 priv->tsf_low32 = 0; in p54_beacon_update()
170 struct p54_common *priv = dev->priv; in p54_start() local
173 mutex_lock(&priv->conf_mutex); in p54_start()
174 err = priv->open(dev); in p54_start()
177 P54_SET_QUEUE(priv->qos_params[0], 0x0002, 0x0003, 0x0007, 47); in p54_start()
178 P54_SET_QUEUE(priv->qos_params[1], 0x0002, 0x0007, 0x000f, 94); in p54_start()
179 P54_SET_QUEUE(priv->qos_params[2], 0x0003, 0x000f, 0x03ff, 0); in p54_start()
180 P54_SET_QUEUE(priv->qos_params[3], 0x0007, 0x000f, 0x03ff, 0); in p54_start()
181 err = p54_set_edcf(priv); in p54_start()
185 eth_broadcast_addr(priv->bssid); in p54_start()
186 priv->mode = NL80211_IFTYPE_MONITOR; in p54_start()
187 err = p54_setup_mac(priv); in p54_start()
189 priv->mode = NL80211_IFTYPE_UNSPECIFIED; in p54_start()
193 ieee80211_queue_delayed_work(dev, &priv->work, 0); in p54_start()
195 priv->softled_state = 0; in p54_start()
196 err = p54_set_leds(priv); in p54_start()
199 mutex_unlock(&priv->conf_mutex); in p54_start()
205 struct p54_common *priv = dev->priv; in p54_stop() local
208 priv->mode = NL80211_IFTYPE_UNSPECIFIED; in p54_stop()
209 priv->softled_state = 0; in p54_stop()
210 cancel_delayed_work_sync(&priv->work); in p54_stop()
211 mutex_lock(&priv->conf_mutex); in p54_stop()
212 p54_set_leds(priv); in p54_stop()
213 priv->stop(dev); in p54_stop()
214 skb_queue_purge(&priv->tx_pending); in p54_stop()
215 skb_queue_purge(&priv->tx_queue); in p54_stop()
217 priv->tx_stats[i].count = 0; in p54_stop()
218 priv->tx_stats[i].len = 0; in p54_stop()
221 priv->beacon_req_id = cpu_to_le32(0); in p54_stop()
222 priv->tsf_high32 = priv->tsf_low32 = 0; in p54_stop()
223 mutex_unlock(&priv->conf_mutex); in p54_stop()
229 struct p54_common *priv = dev->priv; in p54_add_interface() local
234 mutex_lock(&priv->conf_mutex); in p54_add_interface()
235 if (priv->mode != NL80211_IFTYPE_MONITOR) { in p54_add_interface()
236 mutex_unlock(&priv->conf_mutex); in p54_add_interface()
240 priv->vif = vif; in p54_add_interface()
247 priv->mode = vif->type; in p54_add_interface()
250 mutex_unlock(&priv->conf_mutex); in p54_add_interface()
254 memcpy(priv->mac_addr, vif->addr, ETH_ALEN); in p54_add_interface()
255 err = p54_setup_mac(priv); in p54_add_interface()
256 mutex_unlock(&priv->conf_mutex); in p54_add_interface()
263 struct p54_common *priv = dev->priv; in p54_remove_interface() local
265 mutex_lock(&priv->conf_mutex); in p54_remove_interface()
266 priv->vif = NULL; in p54_remove_interface()
272 if (le32_to_cpu(priv->beacon_req_id) != 0) { in p54_remove_interface()
273 p54_tx_cancel(priv, priv->beacon_req_id); in p54_remove_interface()
274 wait_for_completion_interruptible_timeout(&priv->beacon_comp, HZ); in p54_remove_interface()
276 priv->mode = NL80211_IFTYPE_MONITOR; in p54_remove_interface()
277 eth_zero_addr(priv->mac_addr); in p54_remove_interface()
278 eth_zero_addr(priv->bssid); in p54_remove_interface()
279 p54_setup_mac(priv); in p54_remove_interface()
280 mutex_unlock(&priv->conf_mutex); in p54_remove_interface()
285 struct p54_common *priv = dev->priv; in p54_wait_for_stats() local
288 priv->update_stats = true; in p54_wait_for_stats()
289 ret = p54_fetch_statistics(priv); in p54_wait_for_stats()
293 ret = wait_for_completion_interruptible_timeout(&priv->stat_comp, HZ); in p54_wait_for_stats()
300 static void p54_reset_stats(struct p54_common *priv) in p54_reset_stats() argument
302 struct ieee80211_channel *chan = priv->curchan; in p54_reset_stats()
305 struct survey_info *info = &priv->survey[chan->hw_value]; in p54_reset_stats()
313 priv->update_stats = true; in p54_reset_stats()
314 priv->survey_raw.active = 0; in p54_reset_stats()
315 priv->survey_raw.cca = 0; in p54_reset_stats()
316 priv->survey_raw.tx = 0; in p54_reset_stats()
322 struct p54_common *priv = dev->priv; in p54_config() local
325 mutex_lock(&priv->conf_mutex); in p54_config()
327 priv->output_power = conf->power_level << 2; in p54_config()
331 oldchan = priv->curchan; in p54_config()
332 priv->curchan = NULL; in p54_config()
333 ret = p54_scan(priv, P54_SCAN_EXIT, 0); in p54_config()
335 priv->curchan = oldchan; in p54_config()
342 priv->curchan = priv->hw->conf.chandef.chan; in p54_config()
343 p54_reset_stats(priv); in p54_config()
344 WARN_ON(p54_fetch_statistics(priv)); in p54_config()
348 ret = p54_set_ps(priv); in p54_config()
355 ret = p54_setup_mac(priv); in p54_config()
362 mutex_unlock(&priv->conf_mutex); in p54_config()
369 struct p54_common *priv = dev->priv; in p54_prepare_multicast() local
373 BUILD_BUG_ON(ARRAY_SIZE(priv->mc_maclist) != in p54_prepare_multicast()
380 priv->mc_maclist_num = netdev_hw_addr_list_count(mc_list) + i; in p54_prepare_multicast()
382 memcpy(&priv->mc_maclist[i], ha->addr, ETH_ALEN); in p54_prepare_multicast()
384 if (i >= ARRAY_SIZE(priv->mc_maclist)) in p54_prepare_multicast()
396 struct p54_common *priv = dev->priv; in p54_configure_filter() local
400 priv->filter_flags = *total_flags; in p54_configure_filter()
403 p54_setup_mac(priv); in p54_configure_filter()
406 p54_set_groupfilter(priv); in p54_configure_filter()
413 struct p54_common *priv = dev->priv; in p54_conf_tx() local
416 mutex_lock(&priv->conf_mutex); in p54_conf_tx()
418 P54_SET_QUEUE(priv->qos_params[queue], params->aifs, in p54_conf_tx()
420 ret = p54_set_edcf(priv); in p54_conf_tx()
423 mutex_unlock(&priv->conf_mutex); in p54_conf_tx()
429 struct p54_common *priv = container_of(work, struct p54_common, in p54_work() local
432 if (unlikely(priv->mode == NL80211_IFTYPE_UNSPECIFIED)) in p54_work()
441 mutex_lock(&priv->conf_mutex); in p54_work()
442 WARN_ON_ONCE(p54_fetch_statistics(priv)); in p54_work()
443 mutex_unlock(&priv->conf_mutex); in p54_work()
449 struct p54_common *priv = dev->priv; in p54_get_stats() local
451 memcpy(stats, &priv->stats, sizeof(*stats)); in p54_get_stats()
460 struct p54_common *priv = dev->priv; in p54_bss_info_changed() local
462 mutex_lock(&priv->conf_mutex); in p54_bss_info_changed()
464 memcpy(priv->bssid, info->bssid, ETH_ALEN); in p54_bss_info_changed()
465 p54_setup_mac(priv); in p54_bss_info_changed()
469 p54_scan(priv, P54_SCAN_EXIT, 0); in p54_bss_info_changed()
470 p54_setup_mac(priv); in p54_bss_info_changed()
471 p54_beacon_update(priv, vif); in p54_bss_info_changed()
472 p54_set_edcf(priv); in p54_bss_info_changed()
476 priv->use_short_slot = info->use_short_slot; in p54_bss_info_changed()
477 p54_set_edcf(priv); in p54_bss_info_changed()
481 priv->basic_rate_mask = (info->basic_rates << 4); in p54_bss_info_changed()
483 priv->basic_rate_mask = info->basic_rates; in p54_bss_info_changed()
484 p54_setup_mac(priv); in p54_bss_info_changed()
485 if (priv->fw_var >= 0x500) in p54_bss_info_changed()
486 p54_scan(priv, P54_SCAN_EXIT, 0); in p54_bss_info_changed()
490 priv->aid = info->aid; in p54_bss_info_changed()
491 priv->wakeup_timer = info->beacon_int * in p54_bss_info_changed()
493 p54_setup_mac(priv); in p54_bss_info_changed()
495 priv->wakeup_timer = 500; in p54_bss_info_changed()
496 priv->aid = 0; in p54_bss_info_changed()
500 mutex_unlock(&priv->conf_mutex); in p54_bss_info_changed()
507 struct p54_common *priv = dev->priv; in p54_set_key() local
526 mutex_lock(&priv->conf_mutex); in p54_set_key()
530 if (!(priv->privacy_caps & (BR_DESC_PRIV_CAP_MICHAEL | in p54_set_key()
540 if (!(priv->privacy_caps & BR_DESC_PRIV_CAP_WEP)) { in p54_set_key()
548 if (!(priv->privacy_caps & BR_DESC_PRIV_CAP_AESCCMP)) { in p54_set_key()
559 slot = bitmap_find_free_region(priv->used_rxkeys, in p54_set_key()
560 priv->rx_keycache_size, 0); in p54_set_key()
587 bitmap_release_region(priv->used_rxkeys, slot, 0); in p54_set_key()
594 ret = p54_upload_key(priv, algo, slot, key->keyidx, in p54_set_key()
597 bitmap_release_region(priv->used_rxkeys, slot, 0); in p54_set_key()
605 mutex_unlock(&priv->conf_mutex); in p54_set_key()
612 struct p54_common *priv = dev->priv; in p54_get_survey() local
617 if (idx >= priv->chan_num) in p54_get_survey()
622 chan = priv->curchan; in p54_get_survey()
624 mutex_lock(&priv->conf_mutex); in p54_get_survey()
626 mutex_unlock(&priv->conf_mutex); in p54_get_survey()
633 memcpy(survey, &priv->survey[idx], sizeof(*survey)); in p54_get_survey()
656 static unsigned int p54_flush_count(struct p54_common *priv) in p54_flush_count() argument
660 BUILD_BUG_ON(P54_QUEUE_NUM > ARRAY_SIZE(priv->tx_stats)); in p54_flush_count()
668 total += priv->tx_stats[i].len; in p54_flush_count()
675 struct p54_common *priv = dev->priv; in p54_flush() local
691 while ((total = p54_flush_count(priv) && i--)) { in p54_flush()
702 struct p54_common *priv = dev->priv; in p54_set_coverage_class() local
704 mutex_lock(&priv->conf_mutex); in p54_set_coverage_class()
706 priv->coverage_class = clamp_t(u8, coverage_class, 0, 31); in p54_set_coverage_class()
707 p54_set_edcf(priv); in p54_set_coverage_class()
708 mutex_unlock(&priv->conf_mutex); in p54_set_coverage_class()
736 struct p54_common *priv; in p54_init_common() local
742 priv = dev->priv; in p54_init_common()
743 priv->hw = dev; in p54_init_common()
744 priv->mode = NL80211_IFTYPE_UNSPECIFIED; in p54_init_common()
745 priv->basic_rate_mask = 0x15f; in p54_init_common()
746 spin_lock_init(&priv->tx_stats_lock); in p54_init_common()
747 skb_queue_head_init(&priv->tx_queue); in p54_init_common()
748 skb_queue_head_init(&priv->tx_pending); in p54_init_common()
761 priv->beacon_req_id = cpu_to_le32(0); in p54_init_common()
762 priv->tx_stats[P54_QUEUE_BEACON].limit = 1; in p54_init_common()
763 priv->tx_stats[P54_QUEUE_FWSCAN].limit = 1; in p54_init_common()
764 priv->tx_stats[P54_QUEUE_MGMT].limit = 3; in p54_init_common()
765 priv->tx_stats[P54_QUEUE_CAB].limit = 3; in p54_init_common()
766 priv->tx_stats[P54_QUEUE_DATA].limit = 5; in p54_init_common()
768 priv->noise = -94; in p54_init_common()
788 mutex_init(&priv->conf_mutex); in p54_init_common()
789 mutex_init(&priv->eeprom_mutex); in p54_init_common()
790 init_completion(&priv->stat_comp); in p54_init_common()
791 init_completion(&priv->eeprom_comp); in p54_init_common()
792 init_completion(&priv->beacon_comp); in p54_init_common()
793 INIT_DELAYED_WORK(&priv->work, p54_work); in p54_init_common()
795 eth_broadcast_addr(priv->mc_maclist[0]); in p54_init_common()
796 priv->curchan = NULL; in p54_init_common()
797 p54_reset_stats(priv); in p54_init_common()
804 struct p54_common __maybe_unused *priv = dev->priv; in p54_register_common() local
812 priv->registered = true; in p54_register_common()
815 err = p54_init_leds(priv); in p54_register_common()
829 struct p54_common *priv = dev->priv; in p54_free_common() local
833 kfree(priv->band_table[i]); in p54_free_common()
835 kfree(priv->iq_autocal); in p54_free_common()
836 kfree(priv->output_limit); in p54_free_common()
837 kfree(priv->curve_data); in p54_free_common()
838 kfree(priv->rssi_db); in p54_free_common()
839 kfree(priv->used_rxkeys); in p54_free_common()
840 kfree(priv->survey); in p54_free_common()
841 priv->iq_autocal = NULL; in p54_free_common()
842 priv->output_limit = NULL; in p54_free_common()
843 priv->curve_data = NULL; in p54_free_common()
844 priv->rssi_db = NULL; in p54_free_common()
845 priv->used_rxkeys = NULL; in p54_free_common()
846 priv->survey = NULL; in p54_free_common()
853 struct p54_common *priv = dev->priv; in p54_unregister_common() local
856 p54_unregister_leds(priv); in p54_unregister_common()
859 if (priv->registered) { in p54_unregister_common()
860 priv->registered = false; in p54_unregister_common()
864 mutex_destroy(&priv->conf_mutex); in p54_unregister_common()
865 mutex_destroy(&priv->eeprom_mutex); in p54_unregister_common()