Lines Matching refs:rt2x00dev

19 static int rt2x00mac_tx_rts_cts(struct rt2x00_dev *rt2x00dev,  in rt2x00mac_tx_rts_cts()  argument
34 skb = dev_alloc_skb(data_length + rt2x00dev->hw->extra_tx_headroom); in rt2x00mac_tx_rts_cts()
36 rt2x00_warn(rt2x00dev, "Failed to create RTS/CTS frame\n"); in rt2x00mac_tx_rts_cts()
40 skb_reserve(skb, rt2x00dev->hw->extra_tx_headroom); in rt2x00mac_tx_rts_cts()
69 data_length += rt2x00crypto_tx_overhead(rt2x00dev, skb); in rt2x00mac_tx_rts_cts()
72 ieee80211_ctstoself_get(rt2x00dev->hw, tx_info->control.vif, in rt2x00mac_tx_rts_cts()
76 ieee80211_rts_get(rt2x00dev->hw, tx_info->control.vif, in rt2x00mac_tx_rts_cts()
83 rt2x00_warn(rt2x00dev, "Failed to send RTS/CTS frame\n"); in rt2x00mac_tx_rts_cts()
93 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_tx() local
104 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_tx()
111 rt2x00_has_cap_flag(rt2x00dev, REQUIRE_ATIM_QUEUE)) in rt2x00mac_tx()
114 queue = rt2x00queue_get_tx_queue(rt2x00dev, qid); in rt2x00mac_tx()
116 rt2x00_err(rt2x00dev, in rt2x00mac_tx()
131 if (!rt2x00dev->ops->hw->set_rts_threshold && in rt2x00mac_tx()
147 if (rt2x00mac_tx_rts_cts(rt2x00dev, queue, skb)) in rt2x00mac_tx()
163 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_start() local
165 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_start()
168 if (test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags)) { in rt2x00mac_start()
173 set_bit(DEVICE_STATE_RESET, &rt2x00dev->flags); in rt2x00mac_start()
174 rt2x00dev->ops->lib->pre_reset_hw(rt2x00dev); in rt2x00mac_start()
175 rt2x00lib_stop(rt2x00dev); in rt2x00mac_start()
177 return rt2x00lib_start(rt2x00dev); in rt2x00mac_start()
183 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_stop() local
185 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_stop()
188 rt2x00lib_stop(rt2x00dev); in rt2x00mac_stop()
196 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_reconfig_complete() local
199 clear_bit(DEVICE_STATE_RESET, &rt2x00dev->flags); in rt2x00mac_reconfig_complete()
206 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_add_interface() local
208 struct data_queue *queue = rt2x00dev->bcn; in rt2x00mac_add_interface()
216 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) || in rt2x00mac_add_interface()
217 !test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags)) in rt2x00mac_add_interface()
241 rt2x00dev->intf_ap_count++; in rt2x00mac_add_interface()
243 rt2x00dev->intf_sta_count++; in rt2x00mac_add_interface()
257 rt2x00lib_config_intf(rt2x00dev, intf, vif->type, in rt2x00mac_add_interface()
265 rt2x00dev->packet_filter = 0; in rt2x00mac_add_interface()
274 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_remove_interface() local
282 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) || in rt2x00mac_remove_interface()
283 (vif->type == NL80211_IFTYPE_AP && !rt2x00dev->intf_ap_count) || in rt2x00mac_remove_interface()
284 (vif->type != NL80211_IFTYPE_AP && !rt2x00dev->intf_sta_count)) in rt2x00mac_remove_interface()
288 rt2x00dev->intf_ap_count--; in rt2x00mac_remove_interface()
290 rt2x00dev->intf_sta_count--; in rt2x00mac_remove_interface()
302 rt2x00lib_config_intf(rt2x00dev, intf, in rt2x00mac_remove_interface()
309 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_config() local
316 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_config()
326 rt2x00queue_stop_queue(rt2x00dev->rx); in rt2x00mac_config()
329 mutex_lock(&rt2x00dev->conf_mutex); in rt2x00mac_config()
335 rt2x00lib_config(rt2x00dev, conf, changed); in rt2x00mac_config()
344 rt2x00lib_config_antenna(rt2x00dev, rt2x00dev->default_ant); in rt2x00mac_config()
346 mutex_unlock(&rt2x00dev->conf_mutex); in rt2x00mac_config()
349 rt2x00queue_start_queue(rt2x00dev->rx); in rt2x00mac_config()
360 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_configure_filter() local
389 if (!rt2x00_has_cap_control_filters(rt2x00dev)) { in rt2x00mac_configure_filter()
393 if (!rt2x00_has_cap_control_filter_pspoll(rt2x00dev)) { in rt2x00mac_configure_filter()
398 rt2x00dev->packet_filter = *total_flags; in rt2x00mac_configure_filter()
400 rt2x00dev->ops->lib->config_filter(rt2x00dev, *total_flags); in rt2x00mac_configure_filter()
421 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_set_tim() local
423 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) in rt2x00mac_set_tim()
427 rt2x00dev->hw, IEEE80211_IFACE_ITER_RESUME_ALL, in rt2x00mac_set_tim()
428 rt2x00mac_set_tim_iter, rt2x00dev); in rt2x00mac_set_tim()
431 ieee80211_queue_work(rt2x00dev->hw, &rt2x00dev->intf_work); in rt2x00mac_set_tim()
459 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_set_key() local
460 int (*set_key) (struct rt2x00_dev *rt2x00dev, in rt2x00mac_set_key()
468 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_set_key()
472 if (!rt2x00_has_cap_hw_crypto(rt2x00dev) || (sta && sta->mfp)) in rt2x00mac_set_key()
488 crypto.bssidx = rt2x00lib_get_bssidx(rt2x00dev, vif); in rt2x00mac_set_key()
492 if (crypto.cipher == CIPHER_TKIP && rt2x00_is_usb(rt2x00dev)) in rt2x00mac_set_key()
528 set_key = rt2x00dev->ops->lib->config_pairwise_key; in rt2x00mac_set_key()
530 set_key = rt2x00dev->ops->lib->config_shared_key; in rt2x00mac_set_key()
535 return set_key(rt2x00dev, &crypto, key); in rt2x00mac_set_key()
544 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_sw_scan_start() local
545 set_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags); in rt2x00mac_sw_scan_start()
546 rt2x00link_stop_tuner(rt2x00dev); in rt2x00mac_sw_scan_start()
553 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_sw_scan_complete() local
554 clear_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags); in rt2x00mac_sw_scan_complete()
555 rt2x00link_start_tuner(rt2x00dev); in rt2x00mac_sw_scan_complete()
562 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_get_stats() local
569 memcpy(stats, &rt2x00dev->low_level_stats, sizeof(*stats)); in rt2x00mac_get_stats()
580 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_bss_info_changed() local
587 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_bss_info_changed()
594 rt2x00lib_config_intf(rt2x00dev, intf, vif->type, NULL, in rt2x00mac_bss_info_changed()
603 rt2x00dev->intf_beaconing--; in rt2x00mac_bss_info_changed()
606 if (rt2x00dev->intf_beaconing == 0) { in rt2x00mac_bss_info_changed()
611 rt2x00queue_stop_queue(rt2x00dev->bcn); in rt2x00mac_bss_info_changed()
618 rt2x00queue_clear_beacon(rt2x00dev, vif); in rt2x00mac_bss_info_changed()
620 rt2x00dev->intf_beaconing++; in rt2x00mac_bss_info_changed()
626 if (rt2x00_is_usb(rt2x00dev)) in rt2x00mac_bss_info_changed()
627 rt2x00queue_update_beacon(rt2x00dev, vif); in rt2x00mac_bss_info_changed()
629 if (rt2x00dev->intf_beaconing == 1) { in rt2x00mac_bss_info_changed()
634 rt2x00queue_start_queue(rt2x00dev->bcn); in rt2x00mac_bss_info_changed()
647 rt2x00dev->link.count = 0; in rt2x00mac_bss_info_changed()
650 rt2x00dev->intf_associated++; in rt2x00mac_bss_info_changed()
652 rt2x00dev->intf_associated--; in rt2x00mac_bss_info_changed()
654 rt2x00leds_led_assoc(rt2x00dev, !!rt2x00dev->intf_associated); in rt2x00mac_bss_info_changed()
664 rt2x00lib_config_erp(rt2x00dev, intf, bss_conf, changes); in rt2x00mac_bss_info_changed()
672 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_conf_tx() local
675 queue = rt2x00queue_get_tx_queue(rt2x00dev, queue_idx); in rt2x00mac_conf_tx()
696 rt2x00_dbg(rt2x00dev, in rt2x00mac_conf_tx()
707 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_rfkill_poll() local
708 bool active = !!rt2x00dev->ops->lib->rfkill_poll(rt2x00dev); in rt2x00mac_rfkill_poll()
717 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_flush() local
720 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00mac_flush()
723 set_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags); in rt2x00mac_flush()
725 tx_queue_for_each(rt2x00dev, queue) in rt2x00mac_flush()
728 clear_bit(DEVICE_STATE_FLUSHING, &rt2x00dev->flags); in rt2x00mac_flush()
734 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_set_antenna() local
735 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00mac_set_antenna()
736 struct antenna_setup *def = &rt2x00dev->default_ant; in rt2x00mac_set_antenna()
771 rt2x00lib_config_antenna(rt2x00dev, setup); in rt2x00mac_set_antenna()
779 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_get_antenna() local
780 struct link_ant *ant = &rt2x00dev->link.ant; in rt2x00mac_get_antenna()
781 struct antenna_setup *active = &rt2x00dev->link.ant.active; in rt2x00mac_get_antenna()
802 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_get_ringparam() local
805 tx_queue_for_each(rt2x00dev, queue) { in rt2x00mac_get_ringparam()
810 *rx = rt2x00dev->rx->length; in rt2x00mac_get_ringparam()
811 *rx_max = rt2x00dev->rx->limit; in rt2x00mac_get_ringparam()
817 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00mac_tx_frames_pending() local
820 tx_queue_for_each(rt2x00dev, queue) { in rt2x00mac_tx_frames_pending()