Lines Matching refs:rtwdev
22 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_tx() local
28 ret = rtw89_core_tx_write(rtwdev, vif, sta, skb, &qsel); in rtw89_ops_tx()
30 rtw89_err(rtwdev, "failed to transmit skb: %d\n", ret); in rtw89_ops_tx()
34 rtw89_core_tx_kick_off(rtwdev, qsel); in rtw89_ops_tx()
40 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_wake_tx_queue() local
43 queue_work(rtwdev->txq_wq, &rtwdev->txq_work); in rtw89_ops_wake_tx_queue()
48 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_start() local
51 mutex_lock(&rtwdev->mutex); in rtw89_ops_start()
52 ret = rtw89_core_start(rtwdev); in rtw89_ops_start()
53 mutex_unlock(&rtwdev->mutex); in rtw89_ops_start()
60 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_stop() local
62 mutex_lock(&rtwdev->mutex); in rtw89_ops_stop()
63 rtw89_core_stop(rtwdev); in rtw89_ops_stop()
64 mutex_unlock(&rtwdev->mutex); in rtw89_ops_stop()
69 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_config() local
72 cancel_work_sync(&rtwdev->ips_work); in rtw89_ops_config()
74 mutex_lock(&rtwdev->mutex); in rtw89_ops_config()
75 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_config()
79 rtw89_leave_ips(rtwdev); in rtw89_ops_config()
83 rtwdev->lps_enabled = true; in rtw89_ops_config()
85 rtw89_leave_lps(rtwdev); in rtw89_ops_config()
86 rtwdev->lps_enabled = false; in rtw89_ops_config()
91 rtw89_config_entity_chandef(rtwdev, RTW89_SUB_ENTITY_0, in rtw89_ops_config()
93 rtw89_set_channel(rtwdev); in rtw89_ops_config()
98 rtw89_enter_ips(rtwdev); in rtw89_ops_config()
100 mutex_unlock(&rtwdev->mutex); in rtw89_ops_config()
108 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_add_interface() local
112 rtw89_debug(rtwdev, RTW89_DBG_STATE, "add vif %pM type %d, p2p %d\n", in rtw89_ops_add_interface()
115 mutex_lock(&rtwdev->mutex); in rtw89_ops_add_interface()
116 rtwvif->rtwdev = rtwdev; in rtw89_ops_add_interface()
117 list_add_tail(&rtwvif->list, &rtwdev->rtwvifs_list); in rtw89_ops_add_interface()
119 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_add_interface()
121 rtw89_traffic_stats_init(rtwdev, &rtwvif->stats); in rtw89_ops_add_interface()
123 rtwvif->port = rtw89_core_acquire_bit_map(rtwdev->hw_port, in rtw89_ops_add_interface()
136 ret = rtw89_mac_add_vif(rtwdev, rtwvif); in rtw89_ops_add_interface()
138 rtw89_core_release_bit_map(rtwdev->hw_port, rtwvif->port); in rtw89_ops_add_interface()
142 rtw89_core_txq_init(rtwdev, vif->txq); in rtw89_ops_add_interface()
144 rtw89_btc_ntfy_role_info(rtwdev, rtwvif, NULL, BTC_ROLE_START); in rtw89_ops_add_interface()
146 mutex_unlock(&rtwdev->mutex); in rtw89_ops_add_interface()
154 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_remove_interface() local
157 rtw89_debug(rtwdev, RTW89_DBG_STATE, "remove vif %pM type %d p2p %d\n", in rtw89_ops_remove_interface()
162 mutex_lock(&rtwdev->mutex); in rtw89_ops_remove_interface()
163 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_remove_interface()
164 rtw89_btc_ntfy_role_info(rtwdev, rtwvif, NULL, BTC_ROLE_STOP); in rtw89_ops_remove_interface()
165 rtw89_mac_remove_vif(rtwdev, rtwvif); in rtw89_ops_remove_interface()
166 rtw89_core_release_bit_map(rtwdev->hw_port, rtwvif->port); in rtw89_ops_remove_interface()
168 mutex_unlock(&rtwdev->mutex); in rtw89_ops_remove_interface()
175 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_change_interface() local
177 rtw89_debug(rtwdev, RTW89_DBG_STATE, "change vif %pM (%d)->(%d), p2p (%d)->(%d)\n", in rtw89_ops_change_interface()
193 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_configure_filter() local
195 mutex_lock(&rtwdev->mutex); in rtw89_ops_configure_filter()
196 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_configure_filter()
203 rtwdev->hal.rx_fltr &= ~B_AX_A_MC; in rtw89_ops_configure_filter()
205 rtwdev->hal.rx_fltr |= B_AX_A_MC; in rtw89_ops_configure_filter()
209 rtwdev->hal.rx_fltr |= B_AX_A_CRC32_ERR; in rtw89_ops_configure_filter()
211 rtwdev->hal.rx_fltr &= ~B_AX_A_CRC32_ERR; in rtw89_ops_configure_filter()
215 rtwdev->hal.rx_fltr &= ~B_AX_A_A1_MATCH; in rtw89_ops_configure_filter()
217 rtwdev->hal.rx_fltr |= B_AX_A_A1_MATCH; in rtw89_ops_configure_filter()
221 rtwdev->hal.rx_fltr &= ~B_AX_A_BCN_CHK_EN; in rtw89_ops_configure_filter()
222 rtwdev->hal.rx_fltr &= ~B_AX_A_BC; in rtw89_ops_configure_filter()
223 rtwdev->hal.rx_fltr &= ~B_AX_A_A1_MATCH; in rtw89_ops_configure_filter()
225 rtwdev->hal.rx_fltr |= B_AX_A_BCN_CHK_EN; in rtw89_ops_configure_filter()
226 rtwdev->hal.rx_fltr |= B_AX_A_BC; in rtw89_ops_configure_filter()
227 rtwdev->hal.rx_fltr |= B_AX_A_A1_MATCH; in rtw89_ops_configure_filter()
232 rtwdev->hal.rx_fltr &= ~B_AX_A_BC_CAM_MATCH; in rtw89_ops_configure_filter()
233 rtwdev->hal.rx_fltr &= ~B_AX_A_UC_CAM_MATCH; in rtw89_ops_configure_filter()
235 rtwdev->hal.rx_fltr |= B_AX_A_BC_CAM_MATCH; in rtw89_ops_configure_filter()
236 rtwdev->hal.rx_fltr |= B_AX_A_UC_CAM_MATCH; in rtw89_ops_configure_filter()
240 rtw89_write32_mask(rtwdev, in rtw89_ops_configure_filter()
243 rtwdev->hal.rx_fltr); in rtw89_ops_configure_filter()
244 if (!rtwdev->dbcc_en) in rtw89_ops_configure_filter()
246 rtw89_write32_mask(rtwdev, in rtw89_ops_configure_filter()
249 rtwdev->hal.rx_fltr); in rtw89_ops_configure_filter()
252 mutex_unlock(&rtwdev->mutex); in rtw89_ops_configure_filter()
262 static u8 rtw89_aifsn_to_aifs(struct rtw89_dev *rtwdev, in rtw89_aifsn_to_aifs() argument
266 const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_SUB_ENTITY_0); in rtw89_aifsn_to_aifs()
276 static void ____rtw89_conf_tx_edca(struct rtw89_dev *rtwdev, in ____rtw89_conf_tx_edca() argument
287 aifs = rtw89_aifsn_to_aifs(rtwdev, rtwvif, params->aifs); in ____rtw89_conf_tx_edca()
292 rtw89_fw_h2c_set_edca(rtwdev, rtwvif, ac_to_fw_idx[ac], val); in ____rtw89_conf_tx_edca()
302 static void ____rtw89_conf_tx_mu_edca(struct rtw89_dev *rtwdev, in ____rtw89_conf_tx_mu_edca() argument
317 aifs = aifsn ? rtw89_aifsn_to_aifs(rtwdev, rtwvif, aifsn) : 0; in ____rtw89_conf_tx_mu_edca()
324 rtw89_write32(rtwdev, reg, val); in ____rtw89_conf_tx_mu_edca()
326 rtw89_mac_set_hw_muedca_ctrl(rtwdev, rtwvif, true); in ____rtw89_conf_tx_mu_edca()
329 static void __rtw89_conf_tx(struct rtw89_dev *rtwdev, in __rtw89_conf_tx() argument
332 ____rtw89_conf_tx_edca(rtwdev, rtwvif, ac); in __rtw89_conf_tx()
333 ____rtw89_conf_tx_mu_edca(rtwdev, rtwvif, ac); in __rtw89_conf_tx()
336 static void rtw89_conf_tx(struct rtw89_dev *rtwdev, in rtw89_conf_tx() argument
342 __rtw89_conf_tx(rtwdev, rtwvif, ac); in rtw89_conf_tx()
345 static void rtw89_station_mode_sta_assoc(struct rtw89_dev *rtwdev, in rtw89_station_mode_sta_assoc() argument
356 rtw89_err(rtwdev, "can't find sta to set sta_assoc state\n"); in rtw89_station_mode_sta_assoc()
362 rtw89_core_sta_assoc(rtwdev, vif, sta); in rtw89_station_mode_sta_assoc()
370 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_bss_info_changed() local
373 mutex_lock(&rtwdev->mutex); in rtw89_ops_bss_info_changed()
374 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_bss_info_changed()
378 rtw89_station_mode_sta_assoc(rtwdev, vif, conf); in rtw89_ops_bss_info_changed()
379 rtw89_phy_set_bss_color(rtwdev, vif); in rtw89_ops_bss_info_changed()
380 rtw89_chip_cfg_txpwr_ul_tb_offset(rtwdev, vif); in rtw89_ops_bss_info_changed()
381 rtw89_mac_port_update(rtwdev, rtwvif); in rtw89_ops_bss_info_changed()
382 rtw89_mac_set_he_obss_narrow_bw_ru(rtwdev, vif); in rtw89_ops_bss_info_changed()
383 rtw89_store_op_chan(rtwdev, true); in rtw89_ops_bss_info_changed()
388 if (rtwdev->scanning) in rtw89_ops_bss_info_changed()
389 rtw89_hw_scan_abort(rtwdev, vif); in rtw89_ops_bss_info_changed()
395 rtw89_cam_bssid_changed(rtwdev, rtwvif); in rtw89_ops_bss_info_changed()
396 rtw89_fw_h2c_cam(rtwdev, rtwvif, NULL, NULL); in rtw89_ops_bss_info_changed()
400 rtw89_fw_h2c_update_beacon(rtwdev, rtwvif); in rtw89_ops_bss_info_changed()
403 rtw89_conf_tx(rtwdev, rtwvif); in rtw89_ops_bss_info_changed()
406 rtw89_phy_set_bss_color(rtwdev, vif); in rtw89_ops_bss_info_changed()
409 rtw89_mac_bf_set_gid_table(rtwdev, vif, conf); in rtw89_ops_bss_info_changed()
412 rtw89_process_p2p_ps(rtwdev, vif); in rtw89_ops_bss_info_changed()
414 mutex_unlock(&rtwdev->mutex); in rtw89_ops_bss_info_changed()
421 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_start_ap() local
424 mutex_lock(&rtwdev->mutex); in rtw89_ops_start_ap()
426 rtw89_cam_bssid_changed(rtwdev, rtwvif); in rtw89_ops_start_ap()
427 rtw89_mac_port_update(rtwdev, rtwvif); in rtw89_ops_start_ap()
428 rtw89_fw_h2c_assoc_cmac_tbl(rtwdev, vif, NULL); in rtw89_ops_start_ap()
429 rtw89_fw_h2c_role_maintain(rtwdev, rtwvif, NULL, RTW89_ROLE_TYPE_CHANGE); in rtw89_ops_start_ap()
430 rtw89_fw_h2c_join_info(rtwdev, rtwvif, NULL, true); in rtw89_ops_start_ap()
431 rtw89_fw_h2c_cam(rtwdev, rtwvif, NULL, NULL); in rtw89_ops_start_ap()
432 rtw89_chip_rfk_channel(rtwdev); in rtw89_ops_start_ap()
433 mutex_unlock(&rtwdev->mutex); in rtw89_ops_start_ap()
442 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_stop_ap() local
445 mutex_lock(&rtwdev->mutex); in rtw89_ops_stop_ap()
446 rtw89_fw_h2c_assoc_cmac_tbl(rtwdev, vif, NULL); in rtw89_ops_stop_ap()
447 rtw89_fw_h2c_join_info(rtwdev, rtwvif, NULL, true); in rtw89_ops_stop_ap()
448 mutex_unlock(&rtwdev->mutex); in rtw89_ops_stop_ap()
454 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_set_tim() local
458 ieee80211_queue_work(rtwdev->hw, &rtwvif->update_beacon_work); in rtw89_ops_set_tim()
468 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_conf_tx() local
471 mutex_lock(&rtwdev->mutex); in rtw89_ops_conf_tx()
472 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_conf_tx()
474 __rtw89_conf_tx(rtwdev, rtwvif, ac); in rtw89_ops_conf_tx()
475 mutex_unlock(&rtwdev->mutex); in rtw89_ops_conf_tx()
486 struct rtw89_dev *rtwdev = hw->priv; in __rtw89_ops_sta_state() local
490 return rtw89_core_sta_add(rtwdev, vif, sta); in __rtw89_ops_sta_state()
496 return rtw89_core_sta_assoc(rtwdev, vif, sta); in __rtw89_ops_sta_state()
501 return rtw89_core_sta_disassoc(rtwdev, vif, sta); in __rtw89_ops_sta_state()
505 return rtw89_core_sta_disconnect(rtwdev, vif, sta); in __rtw89_ops_sta_state()
509 return rtw89_core_sta_remove(rtwdev, vif, sta); in __rtw89_ops_sta_state()
520 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_sta_state() local
523 mutex_lock(&rtwdev->mutex); in rtw89_ops_sta_state()
524 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_sta_state()
526 mutex_unlock(&rtwdev->mutex); in rtw89_ops_sta_state()
536 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_set_key() local
539 mutex_lock(&rtwdev->mutex); in rtw89_ops_set_key()
540 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_set_key()
544 rtw89_btc_ntfy_specific_packet(rtwdev, PACKET_EAPOL_END); in rtw89_ops_set_key()
545 ret = rtw89_cam_sec_key_add(rtwdev, vif, sta, key); in rtw89_ops_set_key()
547 rtw89_err(rtwdev, "failed to add key to sec cam\n"); in rtw89_ops_set_key()
552 rtw89_hci_flush_queues(rtwdev, BIT(rtwdev->hw->queues) - 1, in rtw89_ops_set_key()
554 rtw89_mac_flush_txq(rtwdev, BIT(rtwdev->hw->queues) - 1, false); in rtw89_ops_set_key()
555 ret = rtw89_cam_sec_key_del(rtwdev, vif, sta, key, true); in rtw89_ops_set_key()
557 rtw89_err(rtwdev, "failed to remove key from sec cam\n"); in rtw89_ops_set_key()
564 mutex_unlock(&rtwdev->mutex); in rtw89_ops_set_key()
573 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_ampdu_action() local
586 mutex_lock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
588 mutex_unlock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
592 mutex_lock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
596 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_ampdu_action()
597 mutex_unlock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
600 mutex_lock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
601 rtw89_fw_h2c_ba_cam(rtwdev, rtwsta, true, params); in rtw89_ops_ampdu_action()
602 mutex_unlock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
605 mutex_lock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
606 rtw89_fw_h2c_ba_cam(rtwdev, rtwsta, false, params); in rtw89_ops_ampdu_action()
607 mutex_unlock(&rtwdev->mutex); in rtw89_ops_ampdu_action()
619 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_set_rts_threshold() local
621 mutex_lock(&rtwdev->mutex); in rtw89_ops_set_rts_threshold()
622 rtw89_leave_ps_mode(rtwdev); in rtw89_ops_set_rts_threshold()
623 if (test_bit(RTW89_FLAG_POWERON, rtwdev->flags)) in rtw89_ops_set_rts_threshold()
624 rtw89_mac_update_rts_threshold(rtwdev, RTW89_MAC_0); in rtw89_ops_set_rts_threshold()
625 mutex_unlock(&rtwdev->mutex); in rtw89_ops_set_rts_threshold()
642 void __rtw89_drop_packets(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif) in __rtw89_drop_packets() argument
648 rtw89_mac_pkt_drop_vif(rtwdev, rtwvif); in __rtw89_drop_packets()
650 rtw89_for_each_rtwvif(rtwdev, rtwvif) in __rtw89_drop_packets()
651 rtw89_mac_pkt_drop_vif(rtwdev, rtwvif); in __rtw89_drop_packets()
658 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_flush() local
660 mutex_lock(&rtwdev->mutex); in rtw89_ops_flush()
661 rtw89_leave_lps(rtwdev); in rtw89_ops_flush()
662 rtw89_hci_flush_queues(rtwdev, queues, drop); in rtw89_ops_flush()
664 if (drop && RTW89_CHK_FW_FEATURE(PACKET_DROP, &rtwdev->fw)) in rtw89_ops_flush()
665 __rtw89_drop_packets(rtwdev, vif); in rtw89_ops_flush()
667 rtw89_mac_flush_txq(rtwdev, queues, drop); in rtw89_ops_flush()
669 mutex_unlock(&rtwdev->mutex); in rtw89_ops_flush()
673 struct rtw89_dev *rtwdev; member
689 rtw89_phy_ra_updata_sta(br_data->rtwdev, sta, IEEE80211_RC_SUPP_RATES_CHANGED); in rtw89_ra_mask_info_update_iter()
692 static void rtw89_ra_mask_info_update(struct rtw89_dev *rtwdev, in rtw89_ra_mask_info_update() argument
696 struct rtw89_iter_bitrate_mask_data br_data = { .rtwdev = rtwdev, in rtw89_ra_mask_info_update()
700 ieee80211_iterate_stations_atomic(rtwdev->hw, rtw89_ra_mask_info_update_iter, in rtw89_ra_mask_info_update()
708 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_set_bitrate_mask() local
710 mutex_lock(&rtwdev->mutex); in rtw89_ops_set_bitrate_mask()
711 rtw89_phy_rate_pattern_vif(rtwdev, vif, mask); in rtw89_ops_set_bitrate_mask()
712 rtw89_ra_mask_info_update(rtwdev, vif, mask); in rtw89_ops_set_bitrate_mask()
713 mutex_unlock(&rtwdev->mutex); in rtw89_ops_set_bitrate_mask()
721 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_set_antenna() local
722 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_ops_set_antenna()
727 mutex_lock(&rtwdev->mutex); in rtw89_ops_set_antenna()
731 mutex_unlock(&rtwdev->mutex); in rtw89_ops_set_antenna()
739 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_get_antenna() local
740 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_ops_get_antenna()
752 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_sw_scan_start() local
755 mutex_lock(&rtwdev->mutex); in rtw89_ops_sw_scan_start()
756 rtw89_core_scan_start(rtwdev, rtwvif, mac_addr, false); in rtw89_ops_sw_scan_start()
757 mutex_unlock(&rtwdev->mutex); in rtw89_ops_sw_scan_start()
763 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_sw_scan_complete() local
765 mutex_lock(&rtwdev->mutex); in rtw89_ops_sw_scan_complete()
766 rtw89_core_scan_complete(rtwdev, vif, false); in rtw89_ops_sw_scan_complete()
767 mutex_unlock(&rtwdev->mutex); in rtw89_ops_sw_scan_complete()
773 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_reconfig_complete() local
776 rtw89_ser_recfg_done(rtwdev); in rtw89_ops_reconfig_complete()
782 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_hw_scan() local
785 if (!RTW89_CHK_FW_FEATURE(SCAN_OFFLOAD, &rtwdev->fw)) in rtw89_ops_hw_scan()
788 if (rtwdev->scanning) in rtw89_ops_hw_scan()
791 mutex_lock(&rtwdev->mutex); in rtw89_ops_hw_scan()
792 rtw89_hw_scan_start(rtwdev, vif, req); in rtw89_ops_hw_scan()
793 ret = rtw89_hw_scan_offload(rtwdev, vif, true); in rtw89_ops_hw_scan()
795 rtw89_hw_scan_abort(rtwdev, vif); in rtw89_ops_hw_scan()
796 rtw89_err(rtwdev, "HW scan failed with status: %d\n", ret); in rtw89_ops_hw_scan()
798 mutex_unlock(&rtwdev->mutex); in rtw89_ops_hw_scan()
806 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_cancel_hw_scan() local
808 if (!RTW89_CHK_FW_FEATURE(SCAN_OFFLOAD, &rtwdev->fw)) in rtw89_ops_cancel_hw_scan()
811 if (!rtwdev->scanning) in rtw89_ops_cancel_hw_scan()
814 mutex_lock(&rtwdev->mutex); in rtw89_ops_cancel_hw_scan()
815 rtw89_hw_scan_abort(rtwdev, vif); in rtw89_ops_cancel_hw_scan()
816 mutex_unlock(&rtwdev->mutex); in rtw89_ops_cancel_hw_scan()
823 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_sta_rc_update() local
825 rtw89_phy_ra_updata_sta(rtwdev, sta, changed); in rtw89_ops_sta_rc_update()
831 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_add_chanctx() local
834 mutex_lock(&rtwdev->mutex); in rtw89_ops_add_chanctx()
835 ret = rtw89_chanctx_ops_add(rtwdev, ctx); in rtw89_ops_add_chanctx()
836 mutex_unlock(&rtwdev->mutex); in rtw89_ops_add_chanctx()
844 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_remove_chanctx() local
846 mutex_lock(&rtwdev->mutex); in rtw89_ops_remove_chanctx()
847 rtw89_chanctx_ops_remove(rtwdev, ctx); in rtw89_ops_remove_chanctx()
848 mutex_unlock(&rtwdev->mutex); in rtw89_ops_remove_chanctx()
855 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_change_chanctx() local
857 mutex_lock(&rtwdev->mutex); in rtw89_ops_change_chanctx()
858 rtw89_chanctx_ops_change(rtwdev, ctx, changed); in rtw89_ops_change_chanctx()
859 mutex_unlock(&rtwdev->mutex); in rtw89_ops_change_chanctx()
867 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_assign_vif_chanctx() local
871 mutex_lock(&rtwdev->mutex); in rtw89_ops_assign_vif_chanctx()
872 ret = rtw89_chanctx_ops_assign_vif(rtwdev, rtwvif, ctx); in rtw89_ops_assign_vif_chanctx()
873 mutex_unlock(&rtwdev->mutex); in rtw89_ops_assign_vif_chanctx()
883 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_unassign_vif_chanctx() local
886 mutex_lock(&rtwdev->mutex); in rtw89_ops_unassign_vif_chanctx()
887 rtw89_chanctx_ops_unassign_vif(rtwdev, rtwvif, ctx); in rtw89_ops_unassign_vif_chanctx()
888 mutex_unlock(&rtwdev->mutex); in rtw89_ops_unassign_vif_chanctx()
895 struct rtw89_dev *rtwdev = rtwsta->rtwvif->rtwdev; in rtw89_set_tid_config_iter() local
897 rtw89_core_set_tid_config(rtwdev, sta, tid_config); in rtw89_set_tid_config_iter()
905 struct rtw89_dev *rtwdev = hw->priv; in rtw89_ops_set_tid_config() local
907 mutex_lock(&rtwdev->mutex); in rtw89_ops_set_tid_config()
909 rtw89_core_set_tid_config(rtwdev, sta, tid_config); in rtw89_ops_set_tid_config()
911 ieee80211_iterate_stations_atomic(rtwdev->hw, in rtw89_ops_set_tid_config()
914 mutex_unlock(&rtwdev->mutex); in rtw89_ops_set_tid_config()