Lines Matching refs:wcn
275 static void wcn36xx_update_survey(struct wcn36xx *wcn, int rssi, int snr, in wcn36xx_update_survey() argument
286 idx = wcn->hw->wiphy->bands[NL80211_BAND_2GHZ]->n_channels; in wcn36xx_update_survey()
288 sband = wcn->hw->wiphy->bands[band]; in wcn36xx_update_survey()
298 spin_lock(&wcn->survey_lock); in wcn36xx_update_survey()
299 wcn->chan_survey[idx].rssi = rssi; in wcn36xx_update_survey()
300 wcn->chan_survey[idx].snr = snr; in wcn36xx_update_survey()
301 spin_unlock(&wcn->survey_lock); in wcn36xx_update_survey()
306 int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb) in wcn36xx_rx_skb() argument
379 status.band = WCN36XX_BAND(wcn); in wcn36xx_rx_skb()
380 status.freq = WCN36XX_CENTER_FREQ(wcn); in wcn36xx_rx_skb()
383 wcn36xx_update_survey(wcn, status.signal, get_snr(bd), in wcn36xx_rx_skb()
428 if (bd->esf && !skb_queue_empty(&wcn->amsdu)) { in wcn36xx_rx_skb()
430 __skb_queue_purge_irq(&wcn->amsdu); in wcn36xx_rx_skb()
433 __skb_queue_tail(&wcn->amsdu, skb); in wcn36xx_rx_skb()
438 skb = wcn36xx_unchain_msdu(&wcn->amsdu); in wcn36xx_rx_skb()
443 ieee80211_rx_irqsafe(wcn->hw, skb); in wcn36xx_rx_skb()
453 __skb_queue_purge_irq(&wcn->amsdu); in wcn36xx_rx_skb()
471 static inline struct wcn36xx_vif *get_vif_by_addr(struct wcn36xx *wcn, in get_vif_by_addr() argument
476 list_for_each_entry(vif_priv, &wcn->vif_list, list) { in get_vif_by_addr()
485 static void wcn36xx_tx_start_ampdu(struct wcn36xx *wcn, in wcn36xx_tx_start_ampdu() argument
493 if (!conf_is_ht(&wcn->hw->conf)) in wcn36xx_tx_start_ampdu()
521 struct wcn36xx *wcn, in wcn36xx_set_tx_data() argument
555 __vif_priv = get_vif_by_addr(wcn, hdr->addr2); in wcn36xx_set_tx_data()
596 wcn36xx_tx_start_ampdu(wcn, sta_priv, skb); in wcn36xx_set_tx_data()
600 struct wcn36xx *wcn, in wcn36xx_set_tx_mgmt() argument
607 get_vif_by_addr(wcn, hdr->addr2); in wcn36xx_set_tx_mgmt()
614 bd->bd_rate = (WCN36XX_BAND(wcn) == NL80211_BAND_5GHZ) ? in wcn36xx_set_tx_mgmt()
649 int wcn36xx_start_tx(struct wcn36xx *wcn, in wcn36xx_start_tx() argument
682 ieee80211_stop_queues(wcn->hw); in wcn36xx_start_tx()
690 wcn36xx_set_tx_data(&bd, wcn, &vif_priv, sta_priv, skb, bcast); in wcn36xx_start_tx()
693 wcn36xx_set_tx_mgmt(&bd, wcn, &vif_priv, skb, bcast); in wcn36xx_start_tx()
698 ret = wcn36xx_dxe_tx_frame(wcn, vif_priv, &bd, skb, is_low); in wcn36xx_start_tx()
701 ieee80211_wake_queues(wcn->hw); in wcn36xx_start_tx()