Lines Matching refs:rtwdev

22 	struct rtw_dev *rtwdev = hw->priv;
24 if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags)) {
29 rtw_tx(rtwdev, control, skb);
35 struct rtw_dev *rtwdev = hw->priv;
38 if (!test_bit(RTW_FLAG_RUNNING, rtwdev->flags))
41 spin_lock_bh(&rtwdev->txq_lock);
43 list_add_tail(&rtwtxq->list, &rtwdev->txqs);
44 spin_unlock_bh(&rtwdev->txq_lock);
48 __rtw_tx_work(rtwdev);
50 queue_work(rtwdev->tx_wq, &rtwdev->tx_work);
55 struct rtw_dev *rtwdev = hw->priv;
58 mutex_lock(&rtwdev->mutex);
59 ret = rtw_core_start(rtwdev);
60 mutex_unlock(&rtwdev->mutex);
67 struct rtw_dev *rtwdev = hw->priv;
69 mutex_lock(&rtwdev->mutex);
70 rtw_core_stop(rtwdev);
71 mutex_unlock(&rtwdev->mutex);
76 struct rtw_dev *rtwdev = hw->priv;
80 cancel_work_sync(&rtwdev->ips_work);
82 mutex_lock(&rtwdev->mutex);
84 rtw_leave_lps_deep(rtwdev);
88 ret = rtw_leave_ips(rtwdev);
90 rtw_err(rtwdev, "failed to leave idle state\n");
96 rtw_set_channel(rtwdev);
100 !test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
101 rtw_enter_ips(rtwdev);
104 mutex_unlock(&rtwdev->mutex);
149 struct rtw_dev *rtwdev = hw->priv;
156 if (rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_BCN_FILTER))
165 rtw_txq_init(rtwdev, vif->txq);
168 mutex_lock(&rtwdev->mutex);
170 port = find_first_zero_bit(rtwdev->hw_port, RTW_PORT_NUM);
172 mutex_unlock(&rtwdev->mutex);
175 set_bit(port, rtwdev->hw_port);
179 rtw_leave_lps_deep(rtwdev);
184 rtw_add_rsvd_page_bcn(rtwdev, rtwvif);
189 rtw_add_rsvd_page_bcn(rtwdev, rtwvif);
194 rtw_add_rsvd_page_sta(rtwdev, rtwvif);
200 clear_bit(rtwvif->port, rtwdev->hw_port);
201 mutex_unlock(&rtwdev->mutex);
211 rtw_vif_port_config(rtwdev, rtwvif, config);
212 rtw_core_port_switch(rtwdev, vif);
213 rtw_recalc_lps(rtwdev, vif);
215 mutex_unlock(&rtwdev->mutex);
217 rtw_dbg(rtwdev, RTW_DBG_STATE, "start vif %pM on port %d\n", vif->addr, rtwvif->port);
224 struct rtw_dev *rtwdev = hw->priv;
228 rtw_dbg(rtwdev, RTW_DBG_STATE, "stop vif %pM on port %d\n", vif->addr, rtwvif->port);
230 mutex_lock(&rtwdev->mutex);
232 rtw_leave_lps_deep(rtwdev);
234 rtw_txq_cleanup(rtwdev, vif->txq);
235 rtw_remove_rsvd_page(rtwdev, rtwvif);
243 rtw_vif_port_config(rtwdev, rtwvif, config);
244 clear_bit(rtwvif->port, rtwdev->hw_port);
245 rtw_recalc_lps(rtwdev, NULL);
247 mutex_unlock(&rtwdev->mutex);
254 struct rtw_dev *rtwdev = hw->priv;
256 rtw_dbg(rtwdev, RTW_DBG_STATE, "change vif %pM (%d)->(%d), p2p (%d)->(%d)\n",
272 struct rtw_dev *rtwdev = hw->priv;
277 mutex_lock(&rtwdev->mutex);
279 rtw_leave_lps_deep(rtwdev);
283 rtwdev->hal.rcr |= BIT_AM;
285 rtwdev->hal.rcr &= ~(BIT_AM);
289 rtwdev->hal.rcr |= BIT_ACRC32;
291 rtwdev->hal.rcr &= ~(BIT_ACRC32);
295 rtwdev->hal.rcr |= BIT_AAP;
297 rtwdev->hal.rcr &= ~(BIT_AAP);
301 rtwdev->hal.rcr &= ~(BIT_CBSSID_BCN | BIT_CBSSID_DATA);
303 rtwdev->hal.rcr |= BIT_CBSSID_BCN;
306 rtw_dbg(rtwdev, RTW_DBG_RX,
308 changed_flags, *new_flags, rtwdev->hal.rcr);
310 rtw_write32(rtwdev, REG_RCR, rtwdev->hal.rcr);
312 mutex_unlock(&rtwdev->mutex);
323 static u8 rtw_aifsn_to_aifs(struct rtw_dev *rtwdev,
331 sifs = rtwdev->hal.current_band_type == RTW_BAND_5G ? 16 : 10;
336 static void __rtw_conf_tx(struct rtw_dev *rtwdev,
347 aifs = rtw_aifsn_to_aifs(rtwdev, rtwvif, params->aifs);
348 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_TXOP_LMT, params->txop);
349 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_CWMAX, ecw_max);
350 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_CWMIN, ecw_min);
351 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_AIFS, aifs);
354 static void rtw_conf_tx(struct rtw_dev *rtwdev,
360 __rtw_conf_tx(rtwdev, rtwvif, ac);
368 struct rtw_dev *rtwdev = hw->priv;
370 struct rtw_coex *coex = &rtwdev->coex;
374 mutex_lock(&rtwdev->mutex);
376 rtw_leave_lps_deep(rtwdev);
381 rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_FINISH);
383 rtw_fw_download_rsvd_page(rtwdev);
384 rtw_send_rsvd_page_h2c(rtwdev);
385 rtw_fw_default_port(rtwdev, rtwvif);
386 rtw_coex_media_status_notify(rtwdev, vif->cfg.assoc);
388 rtw_bf_assoc(rtwdev, vif, conf);
390 rtw_leave_lps(rtwdev);
391 rtw_bf_disassoc(rtwdev, vif, conf);
395 if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
396 rtw_hw_scan_abort(rtwdev);
407 if (!rtw_core_check_sta_active(rtwdev))
408 rtw_clear_op_chan(rtwdev);
410 rtw_store_op_chan(rtwdev, true);
419 rtw_set_dtim_period(rtwdev, conf->dtim_period);
420 rtw_fw_download_rsvd_page(rtwdev);
421 rtw_send_rsvd_page_h2c(rtwdev);
426 rtw_write32_set(rtwdev, REG_FWHW_TXQ_CTRL,
429 rtw_write32_clr(rtwdev, REG_FWHW_TXQ_CTRL,
433 rtw_fw_beacon_filter_config(rtwdev, true, vif);
436 rtw_chip_set_gid_table(rtwdev, vif, conf);
439 rtw_conf_tx(rtwdev, rtwvif);
442 rtw_recalc_lps(rtwdev, NULL);
444 rtw_vif_port_config(rtwdev, rtwvif, config);
446 mutex_unlock(&rtwdev->mutex);
453 struct rtw_dev *rtwdev = hw->priv;
454 const struct rtw_chip_info *chip = rtwdev->chip;
456 mutex_lock(&rtwdev->mutex);
457 rtw_write32_set(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
458 rtwdev->ap_active = true;
459 rtw_store_op_chan(rtwdev, true);
460 chip->ops->phy_calibration(rtwdev);
461 mutex_unlock(&rtwdev->mutex);
470 struct rtw_dev *rtwdev = hw->priv;
472 mutex_lock(&rtwdev->mutex);
473 rtw_write32_clr(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
474 rtwdev->ap_active = false;
475 if (!rtw_core_check_sta_active(rtwdev))
476 rtw_clear_op_chan(rtwdev);
477 mutex_unlock(&rtwdev->mutex);
485 struct rtw_dev *rtwdev = hw->priv;
488 mutex_lock(&rtwdev->mutex);
490 rtw_leave_lps_deep(rtwdev);
493 __rtw_conf_tx(rtwdev, rtwvif, ac);
495 mutex_unlock(&rtwdev->mutex);
504 struct rtw_dev *rtwdev = hw->priv;
507 mutex_lock(&rtwdev->mutex);
508 ret = rtw_sta_add(rtwdev, sta, vif);
509 mutex_unlock(&rtwdev->mutex);
518 struct rtw_dev *rtwdev = hw->priv;
520 mutex_lock(&rtwdev->mutex);
521 rtw_fw_beacon_filter_config(rtwdev, false, vif);
522 rtw_sta_remove(rtwdev, sta, true);
523 mutex_unlock(&rtwdev->mutex);
531 struct rtw_dev *rtwdev = hw->priv;
533 ieee80211_queue_work(hw, &rtwdev->update_beacon_work);
542 struct rtw_dev *rtwdev = hw->priv;
543 struct rtw_sec_desc *sec = &rtwdev->sec;
576 mutex_lock(&rtwdev->mutex);
578 rtw_leave_lps_deep(rtwdev);
597 rtw_sec_write_cam(rtwdev, sec, sta, key,
601 rtw_hci_flush_all_queues(rtwdev, false);
602 rtw_mac_flush_all_queues(rtwdev, false);
603 rtw_sec_clear_cam(rtwdev, sec, key->hw_key_idx);
608 if (rtw_get_lps_deep_mode(rtwdev) == LPS_DEEP_MODE_PG)
609 rtw_fw_download_rsvd_page(rtwdev);
612 mutex_unlock(&rtwdev->mutex);
653 struct rtw_dev *rtwdev = hw->priv;
654 struct rtw_hal *hal = &rtwdev->hal;
667 struct rtw_dev *rtwdev = hw->priv;
670 mutex_lock(&rtwdev->mutex);
671 rtw_core_scan_start(rtwdev, rtwvif, mac_addr, false);
672 mutex_unlock(&rtwdev->mutex);
678 struct rtw_dev *rtwdev = hw->priv;
680 mutex_lock(&rtwdev->mutex);
681 rtw_core_scan_complete(rtwdev, vif, false);
682 mutex_unlock(&rtwdev->mutex);
689 struct rtw_dev *rtwdev = hw->priv;
691 mutex_lock(&rtwdev->mutex);
692 rtw_leave_lps_deep(rtwdev);
693 rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_START);
694 rtw_chip_prepare_tx(rtwdev);
695 mutex_unlock(&rtwdev->mutex);
700 struct rtw_dev *rtwdev = hw->priv;
702 mutex_lock(&rtwdev->mutex);
703 rtwdev->rts_threshold = value;
704 mutex_unlock(&rtwdev->mutex);
724 struct rtw_dev *rtwdev = hw->priv;
726 mutex_lock(&rtwdev->mutex);
727 rtw_leave_lps_deep(rtwdev);
729 rtw_hci_flush_queues(rtwdev, queues, drop);
730 rtw_mac_flush_queues(rtwdev, queues, drop);
731 mutex_unlock(&rtwdev->mutex);
735 struct rtw_dev *rtwdev;
758 rtw_update_sta_info(br_data->rtwdev, si, true);
761 static void rtw_ra_mask_info_update(struct rtw_dev *rtwdev,
767 br_data.rtwdev = rtwdev;
770 rtw_iterate_stas(rtwdev, rtw_ra_mask_info_update_iter, &br_data);
777 struct rtw_dev *rtwdev = hw->priv;
779 mutex_lock(&rtwdev->mutex);
780 rtw_ra_mask_info_update(rtwdev, vif, mask);
781 mutex_unlock(&rtwdev->mutex);
790 struct rtw_dev *rtwdev = hw->priv;
791 const struct rtw_chip_info *chip = rtwdev->chip;
797 mutex_lock(&rtwdev->mutex);
798 ret = chip->ops->set_antenna(rtwdev, tx_antenna, rx_antenna);
799 mutex_unlock(&rtwdev->mutex);
808 struct rtw_dev *rtwdev = hw->priv;
809 struct rtw_hal *hal = &rtwdev->hal;
821 struct rtw_dev *rtwdev = hw->priv;
824 mutex_lock(&rtwdev->mutex);
825 ret = rtw_wow_suspend(rtwdev, wowlan);
827 rtw_err(rtwdev, "failed to suspend for wow %d\n", ret);
828 mutex_unlock(&rtwdev->mutex);
835 struct rtw_dev *rtwdev = hw->priv;
838 mutex_lock(&rtwdev->mutex);
839 ret = rtw_wow_resume(rtwdev);
841 rtw_err(rtwdev, "failed to resume for wow %d\n", ret);
842 mutex_unlock(&rtwdev->mutex);
849 struct rtw_dev *rtwdev = hw->priv;
851 device_set_wakeup_enable(rtwdev->dev, enabled);
858 struct rtw_dev *rtwdev = hw->priv;
860 mutex_lock(&rtwdev->mutex);
862 clear_bit(RTW_FLAG_RESTARTING, rtwdev->flags);
863 mutex_unlock(&rtwdev->mutex);
869 struct rtw_dev *rtwdev = hw->priv;
872 if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD))
875 if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
878 mutex_lock(&rtwdev->mutex);
879 rtw_hw_scan_start(rtwdev, vif, req);
880 ret = rtw_hw_scan_offload(rtwdev, vif, true);
882 rtw_hw_scan_abort(rtwdev);
883 rtw_err(rtwdev, "HW scan failed with status: %d\n", ret);
885 mutex_unlock(&rtwdev->mutex);
893 struct rtw_dev *rtwdev = hw->priv;
895 if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD))
898 if (!test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
901 mutex_lock(&rtwdev->mutex);
902 rtw_hw_scan_abort(rtwdev);
903 mutex_unlock(&rtwdev->mutex);
909 struct rtw_dev *rtwdev = hw->priv;
911 mutex_lock(&rtwdev->mutex);
912 rtw_set_sar_specs(rtwdev, sar);
913 mutex_unlock(&rtwdev->mutex);
922 struct rtw_dev *rtwdev = hw->priv;
926 ieee80211_queue_work(rtwdev->hw, &si->rc_work);