diff options
author | David S. Miller <davem@davemloft.net> | 2018-12-03 18:44:27 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-03 18:44:27 -0500 |
commit | ce01a56ba3d9a56e9c7dd4662e2753b102a17d62 (patch) | |
tree | f93abeb50254c299dd07d2f3d72da9d91797b2d2 /drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |
parent | 37a0bc39d726a15073cca64887f01e3a12b24a18 (diff) | |
parent | b72c51a58e6d63ef673ac96b8ab5bc98799c5f7b (diff) |
Merge tag 'wireless-drivers-next-for-davem-2018-11-30' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
Kalle Valo says:
====================
wireless-drivers-next patches for 4.21
First set of patches for 4.21. Most notable here is support for
Quantenna's QSR1000/QSR2000 chipsets and more flexible ways to provide
nvram files for brcmfmac.
Major changes:
brcmfmac
* add support for first trying to get a board specific nvram file
* add support for getting nvram contents from EFI variables
qtnfmac
* use single PCIe driver for all platforms and rename
Kconfig option CONFIG_QTNFMAC_PEARL_PCIE to CONFIG_QTNFMAC_PCIE
* add support for QSR1000/QSR2000 (Topaz) family of chipsets
ath10k
* add support for WCN3990 firmware crash recovery
* add firmware memory dump support for QCA4019
wil6210
* add firmware error recovery while in AP mode
ath9k
* remove experimental notice from dynack feature
iwlwifi
* PCI IDs for some new 9000-series cards
* improve antenna usage on connection problems
* new firmware debugging infrastructure
* some more work on 802.11ax
* improve support for multiple RF modules with 22000 devices
cordic
* move cordic macros and defines to a public header file
* convert brcmsmac and b43 to fully use cordic library
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/ops.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index af3fba10abc1..a31dc99b63f7 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |||
@@ -676,7 +676,6 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
676 | INIT_LIST_HEAD(&mvm->aux_roc_te_list); | 676 | INIT_LIST_HEAD(&mvm->aux_roc_te_list); |
677 | INIT_LIST_HEAD(&mvm->async_handlers_list); | 677 | INIT_LIST_HEAD(&mvm->async_handlers_list); |
678 | spin_lock_init(&mvm->time_event_lock); | 678 | spin_lock_init(&mvm->time_event_lock); |
679 | spin_lock_init(&mvm->queue_info_lock); | ||
680 | 679 | ||
681 | INIT_WORK(&mvm->async_handlers_wk, iwl_mvm_async_handlers_wk); | 680 | INIT_WORK(&mvm->async_handlers_wk, iwl_mvm_async_handlers_wk); |
682 | INIT_WORK(&mvm->roc_done_wk, iwl_mvm_roc_done_wk); | 681 | INIT_WORK(&mvm->roc_done_wk, iwl_mvm_roc_done_wk); |
@@ -770,7 +769,6 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
770 | memcpy(trans->dbg_conf_tlv, mvm->fw->dbg.conf_tlv, | 769 | memcpy(trans->dbg_conf_tlv, mvm->fw->dbg.conf_tlv, |
771 | sizeof(trans->dbg_conf_tlv)); | 770 | sizeof(trans->dbg_conf_tlv)); |
772 | trans->dbg_trigger_tlv = mvm->fw->dbg.trigger_tlv; | 771 | trans->dbg_trigger_tlv = mvm->fw->dbg.trigger_tlv; |
773 | trans->dbg_dump_mask = mvm->fw->dbg.dump_mask; | ||
774 | 772 | ||
775 | trans->iml = mvm->fw->iml; | 773 | trans->iml = mvm->fw->iml; |
776 | trans->iml_len = mvm->fw->iml_len; | 774 | trans->iml_len = mvm->fw->iml_len; |
@@ -846,6 +844,8 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
846 | 844 | ||
847 | iwl_mvm_tof_init(mvm); | 845 | iwl_mvm_tof_init(mvm); |
848 | 846 | ||
847 | iwl_mvm_toggle_tx_ant(mvm, &mvm->mgmt_last_antenna_idx); | ||
848 | |||
849 | return op_mode; | 849 | return op_mode; |
850 | 850 | ||
851 | out_unregister: | 851 | out_unregister: |
@@ -1110,11 +1110,7 @@ static void iwl_mvm_async_cb(struct iwl_op_mode *op_mode, | |||
1110 | static void iwl_mvm_stop_sw_queue(struct iwl_op_mode *op_mode, int hw_queue) | 1110 | static void iwl_mvm_stop_sw_queue(struct iwl_op_mode *op_mode, int hw_queue) |
1111 | { | 1111 | { |
1112 | struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); | 1112 | struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); |
1113 | unsigned long mq; | 1113 | unsigned long mq = mvm->hw_queue_to_mac80211[hw_queue]; |
1114 | |||
1115 | spin_lock_bh(&mvm->queue_info_lock); | ||
1116 | mq = mvm->hw_queue_to_mac80211[hw_queue]; | ||
1117 | spin_unlock_bh(&mvm->queue_info_lock); | ||
1118 | 1114 | ||
1119 | iwl_mvm_stop_mac_queues(mvm, mq); | 1115 | iwl_mvm_stop_mac_queues(mvm, mq); |
1120 | } | 1116 | } |
@@ -1140,11 +1136,7 @@ void iwl_mvm_start_mac_queues(struct iwl_mvm *mvm, unsigned long mq) | |||
1140 | static void iwl_mvm_wake_sw_queue(struct iwl_op_mode *op_mode, int hw_queue) | 1136 | static void iwl_mvm_wake_sw_queue(struct iwl_op_mode *op_mode, int hw_queue) |
1141 | { | 1137 | { |
1142 | struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); | 1138 | struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); |
1143 | unsigned long mq; | 1139 | unsigned long mq = mvm->hw_queue_to_mac80211[hw_queue]; |
1144 | |||
1145 | spin_lock_bh(&mvm->queue_info_lock); | ||
1146 | mq = mvm->hw_queue_to_mac80211[hw_queue]; | ||
1147 | spin_unlock_bh(&mvm->queue_info_lock); | ||
1148 | 1140 | ||
1149 | iwl_mvm_start_mac_queues(mvm, mq); | 1141 | iwl_mvm_start_mac_queues(mvm, mq); |
1150 | } | 1142 | } |
@@ -1242,7 +1234,7 @@ void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error) | |||
1242 | */ | 1234 | */ |
1243 | if (!mvm->fw_restart && fw_error) { | 1235 | if (!mvm->fw_restart && fw_error) { |
1244 | iwl_fw_dbg_collect_desc(&mvm->fwrt, &iwl_dump_desc_assert, | 1236 | iwl_fw_dbg_collect_desc(&mvm->fwrt, &iwl_dump_desc_assert, |
1245 | NULL, 0); | 1237 | false, 0); |
1246 | } else if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) { | 1238 | } else if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) { |
1247 | struct iwl_mvm_reprobe *reprobe; | 1239 | struct iwl_mvm_reprobe *reprobe; |
1248 | 1240 | ||