Lines Matching defs: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);
218 rtw_dbg(rtwdev, RTW_DBG_STATE, "start vif %pM on port %d\n", vif->addr, rtwvif->port);
220 rtw_dbg(rtwdev, RTW_DBG_STATE, "start vif %6D on port %d\n", vif->addr, ":", rtwvif->port);
228 struct rtw_dev *rtwdev = hw->priv;
233 rtw_dbg(rtwdev, RTW_DBG_STATE, "stop vif %pM on port %d\n", vif->addr, rtwvif->port);
235 rtw_dbg(rtwdev, RTW_DBG_STATE, "stop vif %6D on port %d\n", vif->addr, ":", rtwvif->port);
238 mutex_lock(&rtwdev->mutex);
240 rtw_leave_lps_deep(rtwdev);
242 rtw_txq_cleanup(rtwdev, vif->txq);
243 rtw_remove_rsvd_page(rtwdev, rtwvif);
251 rtw_vif_port_config(rtwdev, rtwvif, config);
252 clear_bit(rtwvif->port, rtwdev->hw_port);
253 rtw_recalc_lps(rtwdev, NULL);
255 mutex_unlock(&rtwdev->mutex);
262 struct rtw_dev *rtwdev = hw->priv;
265 rtw_dbg(rtwdev, RTW_DBG_STATE, "change vif %pM (%d)->(%d), p2p (%d)->(%d)\n",
268 rtw_dbg(rtwdev, RTW_DBG_STATE, "change vif %6D (%d)->(%d), p2p (%d)->(%d)\n",
285 struct rtw_dev *rtwdev = hw->priv;
290 mutex_lock(&rtwdev->mutex);
292 rtw_leave_lps_deep(rtwdev);
296 rtwdev->hal.rcr |= BIT_AM;
298 rtwdev->hal.rcr &= ~(BIT_AM);
302 rtwdev->hal.rcr |= BIT_ACRC32;
304 rtwdev->hal.rcr &= ~(BIT_ACRC32);
308 rtwdev->hal.rcr |= BIT_AAP;
310 rtwdev->hal.rcr &= ~(BIT_AAP);
314 rtwdev->hal.rcr &= ~(BIT_CBSSID_BCN | BIT_CBSSID_DATA);
316 rtwdev->hal.rcr |= BIT_CBSSID_BCN;
319 rtw_dbg(rtwdev, RTW_DBG_RX,
321 changed_flags, *new_flags, rtwdev->hal.rcr);
323 rtw_write32(rtwdev, REG_RCR, rtwdev->hal.rcr);
325 mutex_unlock(&rtwdev->mutex);
336 static u8 rtw_aifsn_to_aifs(struct rtw_dev *rtwdev,
344 sifs = rtwdev->hal.current_band_type == RTW_BAND_5G ? 16 : 10;
349 static void __rtw_conf_tx(struct rtw_dev *rtwdev,
360 aifs = rtw_aifsn_to_aifs(rtwdev, rtwvif, params->aifs);
361 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_TXOP_LMT, params->txop);
362 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_CWMAX, ecw_max);
363 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_CWMIN, ecw_min);
364 rtw_write32_mask(rtwdev, edca_param, BIT_MASK_AIFS, aifs);
367 static void rtw_conf_tx(struct rtw_dev *rtwdev,
373 __rtw_conf_tx(rtwdev, rtwvif, ac);
381 struct rtw_dev *rtwdev = hw->priv;
383 struct rtw_coex *coex = &rtwdev->coex;
387 mutex_lock(&rtwdev->mutex);
389 rtw_leave_lps_deep(rtwdev);
394 rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_FINISH);
396 rtw_fw_download_rsvd_page(rtwdev);
397 rtw_send_rsvd_page_h2c(rtwdev);
398 rtw_fw_default_port(rtwdev, rtwvif);
399 rtw_coex_media_status_notify(rtwdev, vif->cfg.assoc);
401 rtw_bf_assoc(rtwdev, vif, conf);
403 rtw_fw_beacon_filter_config(rtwdev, true, vif);
405 rtw_leave_lps(rtwdev);
406 rtw_bf_disassoc(rtwdev, vif, conf);
410 if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
411 rtw_hw_scan_abort(rtwdev);
422 if (!rtw_core_check_sta_active(rtwdev))
423 rtw_clear_op_chan(rtwdev);
425 rtw_store_op_chan(rtwdev, true);
434 rtw_set_dtim_period(rtwdev, conf->dtim_period);
435 rtw_fw_download_rsvd_page(rtwdev);
436 rtw_send_rsvd_page_h2c(rtwdev);
441 rtw_write32_set(rtwdev, REG_FWHW_TXQ_CTRL,
444 rtw_write32_clr(rtwdev, REG_FWHW_TXQ_CTRL,
448 rtw_fw_beacon_filter_config(rtwdev, true, vif);
451 rtw_chip_set_gid_table(rtwdev, vif, conf);
454 rtw_conf_tx(rtwdev, rtwvif);
457 rtw_recalc_lps(rtwdev, NULL);
459 rtw_vif_port_config(rtwdev, rtwvif, config);
461 mutex_unlock(&rtwdev->mutex);
468 struct rtw_dev *rtwdev = hw->priv;
469 const struct rtw_chip_info *chip = rtwdev->chip;
471 mutex_lock(&rtwdev->mutex);
472 rtw_write32_set(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
473 rtwdev->ap_active = true;
474 rtw_store_op_chan(rtwdev, true);
475 chip->ops->phy_calibration(rtwdev);
476 mutex_unlock(&rtwdev->mutex);
485 struct rtw_dev *rtwdev = hw->priv;
487 mutex_lock(&rtwdev->mutex);
488 rtw_write32_clr(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
489 rtwdev->ap_active = false;
490 if (!rtw_core_check_sta_active(rtwdev))
491 rtw_clear_op_chan(rtwdev);
492 mutex_unlock(&rtwdev->mutex);
500 struct rtw_dev *rtwdev = hw->priv;
503 mutex_lock(&rtwdev->mutex);
505 rtw_leave_lps_deep(rtwdev);
508 __rtw_conf_tx(rtwdev, rtwvif, ac);
510 mutex_unlock(&rtwdev->mutex);
519 struct rtw_dev *rtwdev = hw->priv;
522 mutex_lock(&rtwdev->mutex);
523 ret = rtw_sta_add(rtwdev, sta, vif);
524 mutex_unlock(&rtwdev->mutex);
533 struct rtw_dev *rtwdev = hw->priv;
535 mutex_lock(&rtwdev->mutex);
536 rtw_fw_beacon_filter_config(rtwdev, false, vif);
537 rtw_sta_remove(rtwdev, sta, true);
538 mutex_unlock(&rtwdev->mutex);
546 struct rtw_dev *rtwdev = hw->priv;
548 ieee80211_queue_work(hw, &rtwdev->update_beacon_work);
557 struct rtw_dev *rtwdev = hw->priv;
558 struct rtw_sec_desc *sec = &rtwdev->sec;
591 mutex_lock(&rtwdev->mutex);
593 rtw_leave_lps_deep(rtwdev);
612 rtw_sec_write_cam(rtwdev, sec, sta, key,
616 rtw_hci_flush_all_queues(rtwdev, false);
617 rtw_mac_flush_all_queues(rtwdev, false);
618 rtw_sec_clear_cam(rtwdev, sec, key->hw_key_idx);
623 if (rtw_get_lps_deep_mode(rtwdev) == LPS_DEEP_MODE_PG)
624 rtw_fw_download_rsvd_page(rtwdev);
627 mutex_unlock(&rtwdev->mutex);
668 struct rtw_dev *rtwdev = hw->priv;
669 struct rtw_hal *hal = &rtwdev->hal;
682 struct rtw_dev *rtwdev = hw->priv;
685 mutex_lock(&rtwdev->mutex);
686 rtw_core_scan_start(rtwdev, rtwvif, mac_addr, false);
687 mutex_unlock(&rtwdev->mutex);
693 struct rtw_dev *rtwdev = hw->priv;
695 mutex_lock(&rtwdev->mutex);
696 rtw_core_scan_complete(rtwdev, vif, false);
697 mutex_unlock(&rtwdev->mutex);
704 struct rtw_dev *rtwdev = hw->priv;
706 mutex_lock(&rtwdev->mutex);
707 rtw_leave_lps_deep(rtwdev);
708 rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_START);
709 rtw_chip_prepare_tx(rtwdev);
710 mutex_unlock(&rtwdev->mutex);
715 struct rtw_dev *rtwdev = hw->priv;
717 mutex_lock(&rtwdev->mutex);
718 rtwdev->rts_threshold = value;
719 mutex_unlock(&rtwdev->mutex);
739 struct rtw_dev *rtwdev = hw->priv;
741 mutex_lock(&rtwdev->mutex);
742 rtw_leave_lps_deep(rtwdev);
744 rtw_hci_flush_queues(rtwdev, queues, drop);
745 rtw_mac_flush_queues(rtwdev, queues, drop);
746 mutex_unlock(&rtwdev->mutex);
750 struct rtw_dev *rtwdev;
773 rtw_update_sta_info(br_data->rtwdev, si, true);
776 static void rtw_ra_mask_info_update(struct rtw_dev *rtwdev,
782 br_data.rtwdev = rtwdev;
785 rtw_iterate_stas(rtwdev, rtw_ra_mask_info_update_iter, &br_data);
792 struct rtw_dev *rtwdev = hw->priv;
794 mutex_lock(&rtwdev->mutex);
795 rtw_ra_mask_info_update(rtwdev, vif, mask);
796 mutex_unlock(&rtwdev->mutex);
805 struct rtw_dev *rtwdev = hw->priv;
806 const struct rtw_chip_info *chip = rtwdev->chip;
812 mutex_lock(&rtwdev->mutex);
813 ret = chip->ops->set_antenna(rtwdev, tx_antenna, rx_antenna);
814 mutex_unlock(&rtwdev->mutex);
823 struct rtw_dev *rtwdev = hw->priv;
824 struct rtw_hal *hal = &rtwdev->hal;
836 struct rtw_dev *rtwdev = hw->priv;
839 mutex_lock(&rtwdev->mutex);
840 ret = rtw_wow_suspend(rtwdev, wowlan);
842 rtw_err(rtwdev, "failed to suspend for wow %d\n", ret);
843 mutex_unlock(&rtwdev->mutex);
850 struct rtw_dev *rtwdev = hw->priv;
853 mutex_lock(&rtwdev->mutex);
854 ret = rtw_wow_resume(rtwdev);
856 rtw_err(rtwdev, "failed to resume for wow %d\n", ret);
857 mutex_unlock(&rtwdev->mutex);
864 struct rtw_dev *rtwdev = hw->priv;
866 device_set_wakeup_enable(rtwdev->dev, enabled);
873 struct rtw_dev *rtwdev = hw->priv;
875 mutex_lock(&rtwdev->mutex);
877 clear_bit(RTW_FLAG_RESTARTING, rtwdev->flags);
878 mutex_unlock(&rtwdev->mutex);
884 struct rtw_dev *rtwdev = hw->priv;
887 if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD))
890 if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
893 mutex_lock(&rtwdev->mutex);
894 rtw_hw_scan_start(rtwdev, vif, req);
895 ret = rtw_hw_scan_offload(rtwdev, vif, true);
897 rtw_hw_scan_abort(rtwdev);
898 rtw_err(rtwdev, "HW scan failed with status: %d\n", ret);
900 mutex_unlock(&rtwdev->mutex);
908 struct rtw_dev *rtwdev = hw->priv;
910 if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD))
913 if (!test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
916 mutex_lock(&rtwdev->mutex);
917 rtw_hw_scan_abort(rtwdev);
918 mutex_unlock(&rtwdev->mutex);
924 struct rtw_dev *rtwdev = hw->priv;
926 mutex_lock(&rtwdev->mutex);
927 rtw_set_sar_specs(rtwdev, sar);
928 mutex_unlock(&rtwdev->mutex);
937 struct rtw_dev *rtwdev = hw->priv;
941 ieee80211_queue_work(rtwdev->hw, &si->rc_work);