.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /****************************************************************************** |
---|
2 | 3 | * |
---|
3 | 4 | * Copyright(c) 2003 - 2014 Intel Corporation. All rights reserved. |
---|
| 5 | + * Copyright (C) 2018 - 2019 Intel Corporation |
---|
4 | 6 | * |
---|
5 | 7 | * Portions of this file are derived from the ipw3945 project, as well |
---|
6 | 8 | * as portions of the ieee80211 subsystem header files. |
---|
7 | | - * |
---|
8 | | - * This program is free software; you can redistribute it and/or modify it |
---|
9 | | - * under the terms of version 2 of the GNU General Public License as |
---|
10 | | - * published by the Free Software Foundation. |
---|
11 | | - * |
---|
12 | | - * This program is distributed in the hope that it will be useful, but WITHOUT |
---|
13 | | - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
---|
14 | | - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
---|
15 | | - * more details. |
---|
16 | | - * |
---|
17 | | - * You should have received a copy of the GNU General Public License along with |
---|
18 | | - * this program; if not, write to the Free Software Foundation, Inc., |
---|
19 | | - * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA |
---|
20 | | - * |
---|
21 | | - * The full GNU General Public License is included in this distribution in the |
---|
22 | | - * file called LICENSE. |
---|
23 | 9 | * |
---|
24 | 10 | * Contact Information: |
---|
25 | 11 | * Intel Linux Wireless <linuxwifi@intel.com> |
---|
.. | .. |
---|
214 | 200 | iwl_leds_init(priv); |
---|
215 | 201 | |
---|
216 | 202 | wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); |
---|
| 203 | + wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_EXT_KEY_ID); |
---|
217 | 204 | |
---|
218 | 205 | ret = ieee80211_register_hw(priv->hw); |
---|
219 | 206 | if (ret) { |
---|
.. | .. |
---|
317 | 304 | |
---|
318 | 305 | priv->is_open = 1; |
---|
319 | 306 | IWL_DEBUG_MAC80211(priv, "leave\n"); |
---|
320 | | - return 0; |
---|
| 307 | + return ret; |
---|
321 | 308 | } |
---|
322 | 309 | |
---|
323 | 310 | static void iwlagn_mac_stop(struct ieee80211_hw *hw) |
---|
.. | .. |
---|
714 | 701 | return ret; |
---|
715 | 702 | } |
---|
716 | 703 | |
---|
717 | | -static inline bool iwl_enable_rx_ampdu(const struct iwl_cfg *cfg) |
---|
718 | | -{ |
---|
719 | | - if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG) |
---|
720 | | - return false; |
---|
721 | | - return true; |
---|
722 | | -} |
---|
723 | | - |
---|
724 | | -static inline bool iwl_enable_tx_ampdu(const struct iwl_cfg *cfg) |
---|
725 | | -{ |
---|
726 | | - if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG) |
---|
727 | | - return false; |
---|
728 | | - if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG) |
---|
729 | | - return true; |
---|
730 | | - |
---|
731 | | - /* disabled by default */ |
---|
732 | | - return false; |
---|
733 | | -} |
---|
734 | | - |
---|
735 | 704 | static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, |
---|
736 | 705 | struct ieee80211_vif *vif, |
---|
737 | 706 | struct ieee80211_ampdu_params *params) |
---|
.. | .. |
---|
756 | 725 | |
---|
757 | 726 | switch (action) { |
---|
758 | 727 | case IEEE80211_AMPDU_RX_START: |
---|
759 | | - if (!iwl_enable_rx_ampdu(priv->cfg)) |
---|
| 728 | + if (!iwl_enable_rx_ampdu()) |
---|
760 | 729 | break; |
---|
761 | 730 | IWL_DEBUG_HT(priv, "start Rx\n"); |
---|
762 | 731 | ret = iwl_sta_rx_agg_start(priv, sta, tid, *ssn); |
---|
.. | .. |
---|
768 | 737 | case IEEE80211_AMPDU_TX_START: |
---|
769 | 738 | if (!priv->trans->ops->txq_enable) |
---|
770 | 739 | break; |
---|
771 | | - if (!iwl_enable_tx_ampdu(priv->cfg)) |
---|
| 740 | + if (!iwl_enable_tx_ampdu()) |
---|
772 | 741 | break; |
---|
773 | 742 | IWL_DEBUG_HT(priv, "start Tx\n"); |
---|
774 | 743 | ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn); |
---|
.. | .. |
---|
1131 | 1100 | goto done; |
---|
1132 | 1101 | } |
---|
1133 | 1102 | |
---|
1134 | | - scd_queues = BIT(priv->cfg->base_params->num_of_queues) - 1; |
---|
| 1103 | + scd_queues = BIT(priv->trans->trans_cfg->base_params->num_of_queues) - 1; |
---|
1135 | 1104 | scd_queues &= ~(BIT(IWL_IPAN_CMD_QUEUE_NUM) | |
---|
1136 | 1105 | BIT(IWL_DEFAULT_CMD_QUEUE_NUM)); |
---|
1137 | 1106 | |
---|