Lines Matching refs:priv

38 	struct p54_common *priv = hw->priv;
45 p54_sta_unlock(priv, sta->addr);
54 struct p54_common *priv = dev->priv;
59 p54_sta_unlock(priv, sta->addr);
69 struct p54_common *priv = dev->priv;
71 return p54_update_beacon_tim(priv, sta->aid, set);
135 static int p54_beacon_update(struct p54_common *priv,
142 beacon = ieee80211_beacon_get(priv->hw, vif);
158 p54_tx_80211(priv->hw, &control, beacon);
159 priv->tsf_high32 = 0;
160 priv->tsf_low32 = 0;
167 struct p54_common *priv = dev->priv;
170 mutex_lock(&priv->conf_mutex);
171 err = priv->open(dev);
174 P54_SET_QUEUE(priv->qos_params[0], 0x0002, 0x0003, 0x0007, 47);
175 P54_SET_QUEUE(priv->qos_params[1], 0x0002, 0x0007, 0x000f, 94);
176 P54_SET_QUEUE(priv->qos_params[2], 0x0003, 0x000f, 0x03ff, 0);
177 P54_SET_QUEUE(priv->qos_params[3], 0x0007, 0x000f, 0x03ff, 0);
178 err = p54_set_edcf(priv);
182 eth_broadcast_addr(priv->bssid);
183 priv->mode = NL80211_IFTYPE_MONITOR;
184 err = p54_setup_mac(priv);
186 priv->mode = NL80211_IFTYPE_UNSPECIFIED;
190 ieee80211_queue_delayed_work(dev, &priv->work, 0);
192 priv->softled_state = 0;
193 err = p54_set_leds(priv);
196 mutex_unlock(&priv->conf_mutex);
202 struct p54_common *priv = dev->priv;
205 priv->mode = NL80211_IFTYPE_UNSPECIFIED;
206 priv->softled_state = 0;
207 cancel_delayed_work_sync(&priv->work);
208 mutex_lock(&priv->conf_mutex);
209 p54_set_leds(priv);
210 priv->stop(dev);
211 skb_queue_purge(&priv->tx_pending);
212 skb_queue_purge(&priv->tx_queue);
214 priv->tx_stats[i].count = 0;
215 priv->tx_stats[i].len = 0;
218 priv->beacon_req_id = cpu_to_le32(0);
219 priv->tsf_high32 = priv->tsf_low32 = 0;
220 mutex_unlock(&priv->conf_mutex);
226 struct p54_common *priv = dev->priv;
231 mutex_lock(&priv->conf_mutex);
232 if (priv->mode != NL80211_IFTYPE_MONITOR) {
233 mutex_unlock(&priv->conf_mutex);
237 priv->vif = vif;
244 priv->mode = vif->type;
247 mutex_unlock(&priv->conf_mutex);
251 memcpy(priv->mac_addr, vif->addr, ETH_ALEN);
252 err = p54_setup_mac(priv);
253 mutex_unlock(&priv->conf_mutex);
260 struct p54_common *priv = dev->priv;
262 mutex_lock(&priv->conf_mutex);
263 priv->vif = NULL;
269 if (le32_to_cpu(priv->beacon_req_id) != 0) {
270 p54_tx_cancel(priv, priv->beacon_req_id);
271 wait_for_completion_interruptible_timeout(&priv->beacon_comp, HZ);
273 priv->mode = NL80211_IFTYPE_MONITOR;
274 eth_zero_addr(priv->mac_addr);
275 eth_zero_addr(priv->bssid);
276 p54_setup_mac(priv);
277 mutex_unlock(&priv->conf_mutex);
282 struct p54_common *priv = dev->priv;
285 priv->update_stats = true;
286 ret = p54_fetch_statistics(priv);
290 ret = wait_for_completion_interruptible_timeout(&priv->stat_comp, HZ);
297 static void p54_reset_stats(struct p54_common *priv)
299 struct ieee80211_channel *chan = priv->curchan;
302 struct survey_info *info = &priv->survey[chan->hw_value];
310 priv->update_stats = true;
311 priv->survey_raw.active = 0;
312 priv->survey_raw.cca = 0;
313 priv->survey_raw.tx = 0;
319 struct p54_common *priv = dev->priv;
322 mutex_lock(&priv->conf_mutex);
324 priv->output_power = conf->power_level << 2;
328 oldchan = priv->curchan;
329 priv->curchan = NULL;
330 ret = p54_scan(priv, P54_SCAN_EXIT, 0);
332 priv->curchan = oldchan;
339 priv->curchan = priv->hw->conf.chandef.chan;
340 p54_reset_stats(priv);
341 WARN_ON(p54_fetch_statistics(priv));
345 ret = p54_set_ps(priv);
352 ret = p54_setup_mac(priv);
359 mutex_unlock(&priv->conf_mutex);
366 struct p54_common *priv = dev->priv;
370 BUILD_BUG_ON(ARRAY_SIZE(priv->mc_maclist) !=
377 priv->mc_maclist_num = netdev_hw_addr_list_count(mc_list) + i;
379 memcpy(&priv->mc_maclist[i], ha->addr, ETH_ALEN);
381 if (i >= ARRAY_SIZE(priv->mc_maclist))
393 struct p54_common *priv = dev->priv;
397 priv->filter_flags = *total_flags;
400 p54_setup_mac(priv);
403 p54_set_groupfilter(priv);
410 struct p54_common *priv = dev->priv;
413 mutex_lock(&priv->conf_mutex);
414 P54_SET_QUEUE(priv->qos_params[queue], params->aifs,
416 ret = p54_set_edcf(priv);
417 mutex_unlock(&priv->conf_mutex);
423 struct p54_common *priv = container_of(work, struct p54_common,
426 if (unlikely(priv->mode == NL80211_IFTYPE_UNSPECIFIED))
435 mutex_lock(&priv->conf_mutex);
436 WARN_ON_ONCE(p54_fetch_statistics(priv));
437 mutex_unlock(&priv->conf_mutex);
443 struct p54_common *priv = dev->priv;
445 memcpy(stats, &priv->stats, sizeof(*stats));
454 struct p54_common *priv = dev->priv;
456 mutex_lock(&priv->conf_mutex);
458 memcpy(priv->bssid, info->bssid, ETH_ALEN);
459 p54_setup_mac(priv);
463 p54_scan(priv, P54_SCAN_EXIT, 0);
464 p54_setup_mac(priv);
465 p54_beacon_update(priv, vif);
466 p54_set_edcf(priv);
470 priv->use_short_slot = info->use_short_slot;
471 p54_set_edcf(priv);
475 priv->basic_rate_mask = (info->basic_rates << 4);
477 priv->basic_rate_mask = info->basic_rates;
478 p54_setup_mac(priv);
479 if (priv->fw_var >= 0x500)
480 p54_scan(priv, P54_SCAN_EXIT, 0);
484 priv->aid = info->aid;
485 priv->wakeup_timer = info->beacon_int *
487 p54_setup_mac(priv);
489 priv->wakeup_timer = 500;
490 priv->aid = 0;
494 mutex_unlock(&priv->conf_mutex);
501 struct p54_common *priv = dev->priv;
520 mutex_lock(&priv->conf_mutex);
524 if (!(priv->privacy_caps & (BR_DESC_PRIV_CAP_MICHAEL |
534 if (!(priv->privacy_caps & BR_DESC_PRIV_CAP_WEP)) {
542 if (!(priv->privacy_caps & BR_DESC_PRIV_CAP_AESCCMP)) {
553 slot = bitmap_find_free_region(priv->used_rxkeys,
554 priv->rx_keycache_size, 0);
581 bitmap_release_region(priv->used_rxkeys, slot, 0);
588 ret = p54_upload_key(priv, algo, slot, key->keyidx,
591 bitmap_release_region(priv->used_rxkeys, slot, 0);
599 mutex_unlock(&priv->conf_mutex);
606 struct p54_common *priv = dev->priv;
611 if (idx >= priv->chan_num)
616 chan = priv->curchan;
618 mutex_lock(&priv->conf_mutex);
620 mutex_unlock(&priv->conf_mutex);
627 memcpy(survey, &priv->survey[idx], sizeof(*survey));
650 static unsigned int p54_flush_count(struct p54_common *priv)
654 BUILD_BUG_ON(P54_QUEUE_NUM > ARRAY_SIZE(priv->tx_stats));
662 total += priv->tx_stats[i].len;
669 struct p54_common *priv = dev->priv;
685 while ((total = p54_flush_count(priv)) && i--) {
696 struct p54_common *priv = dev->priv;
698 mutex_lock(&priv->conf_mutex);
700 priv->coverage_class = clamp_t(u8, coverage_class, 0, 31);
701 p54_set_edcf(priv);
702 mutex_unlock(&priv->conf_mutex);
730 struct p54_common *priv;
736 priv = dev->priv;
737 priv->hw = dev;
738 priv->mode = NL80211_IFTYPE_UNSPECIFIED;
739 priv->basic_rate_mask = 0x15f;
740 spin_lock_init(&priv->tx_stats_lock);
741 skb_queue_head_init(&priv->tx_queue);
742 skb_queue_head_init(&priv->tx_pending);
755 priv->beacon_req_id = cpu_to_le32(0);
756 priv->tx_stats[P54_QUEUE_BEACON].limit = 1;
757 priv->tx_stats[P54_QUEUE_FWSCAN].limit = 1;
758 priv->tx_stats[P54_QUEUE_MGMT].limit = 3;
759 priv->tx_stats[P54_QUEUE_CAB].limit = 3;
760 priv->tx_stats[P54_QUEUE_DATA].limit = 5;
762 priv->noise = -94;
782 mutex_init(&priv->conf_mutex);
783 mutex_init(&priv->eeprom_mutex);
784 init_completion(&priv->stat_comp);
785 init_completion(&priv->eeprom_comp);
786 init_completion(&priv->beacon_comp);
787 INIT_DELAYED_WORK(&priv->work, p54_work);
789 eth_broadcast_addr(priv->mc_maclist[0]);
790 priv->curchan = NULL;
791 p54_reset_stats(priv);
798 struct p54_common __maybe_unused *priv = dev->priv;
806 priv->registered = true;
809 err = p54_init_leds(priv);
823 struct p54_common *priv = dev->priv;
827 kfree(priv->band_table[i]);
829 kfree(priv->iq_autocal);
830 kfree(priv->output_limit);
831 kfree(priv->curve_data);
832 kfree(priv->rssi_db);
833 kfree(priv->used_rxkeys);
834 kfree(priv->survey);
835 priv->iq_autocal = NULL;
836 priv->output_limit = NULL;
837 priv->curve_data = NULL;
838 priv->rssi_db = NULL;
839 priv->used_rxkeys = NULL;
840 priv->survey = NULL;
847 struct p54_common *priv = dev->priv;
849 if (priv->registered) {
850 priv->registered = false;
852 p54_unregister_leds(priv);
857 mutex_destroy(&priv->conf_mutex);
858 mutex_destroy(&priv->eeprom_mutex);