These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / net / wireless / ath / carl9170 / main.c
index f1455a0..19d3d64 100644 (file)
@@ -1011,9 +1011,8 @@ static void carl9170_op_configure_filter(struct ieee80211_hw *hw,
        if (multicast != ar->cur_mc_hash)
                WARN_ON(carl9170_update_multicast(ar, multicast));
 
-       if (changed_flags & (FIF_OTHER_BSS | FIF_PROMISC_IN_BSS)) {
-               ar->sniffer_enabled = !!(*new_flags &
-                       (FIF_OTHER_BSS | FIF_PROMISC_IN_BSS));
+       if (changed_flags & FIF_OTHER_BSS) {
+               ar->sniffer_enabled = !!(*new_flags & FIF_OTHER_BSS);
 
                WARN_ON(carl9170_set_operating_mode(ar));
        }
@@ -1033,7 +1032,7 @@ static void carl9170_op_configure_filter(struct ieee80211_hw *hw,
                if (!(*new_flags & FIF_PSPOLL))
                        rx_filter |= CARL9170_RX_FILTER_CTL_PSPOLL;
 
-               if (!(*new_flags & (FIF_OTHER_BSS | FIF_PROMISC_IN_BSS))) {
+               if (!(*new_flags & FIF_OTHER_BSS)) {
                        rx_filter |= CARL9170_RX_FILTER_OTHER_RA;
                        rx_filter |= CARL9170_RX_FILTER_DECRY_FAIL;
                }
@@ -1416,7 +1415,7 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
                                    struct ieee80211_vif *vif,
                                    enum ieee80211_ampdu_mlme_action action,
                                    struct ieee80211_sta *sta,
-                                   u16 tid, u16 *ssn, u8 buf_size)
+                                   u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
 {
        struct ar9170 *ar = hw->priv;
        struct carl9170_sta_info *sta_info = (void *) sta->drv_priv;
@@ -1845,22 +1844,22 @@ void *carl9170_alloc(size_t priv_size)
        /* firmware decides which modes we support */
        hw->wiphy->interface_modes = 0;
 
-       hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS |
-                    IEEE80211_HW_MFP_CAPABLE |
-                    IEEE80211_HW_REPORTS_TX_ACK_STATUS |
-                    IEEE80211_HW_SUPPORTS_PS |
-                    IEEE80211_HW_PS_NULLFUNC_STACK |
-                    IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC |
-                    IEEE80211_HW_SUPPORTS_RC_TABLE |
-                    IEEE80211_HW_SIGNAL_DBM |
-                    IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
+       ieee80211_hw_set(hw, RX_INCLUDES_FCS);
+       ieee80211_hw_set(hw, MFP_CAPABLE);
+       ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
+       ieee80211_hw_set(hw, SUPPORTS_PS);
+       ieee80211_hw_set(hw, PS_NULLFUNC_STACK);
+       ieee80211_hw_set(hw, NEED_DTIM_BEFORE_ASSOC);
+       ieee80211_hw_set(hw, SUPPORTS_RC_TABLE);
+       ieee80211_hw_set(hw, SIGNAL_DBM);
+       ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES);
 
        if (!modparam_noht) {
                /*
                 * see the comment above, why we allow the user
                 * to disable HT by a module parameter.
                 */
-               hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
+               ieee80211_hw_set(hw, AMPDU_AGGREGATION);
        }
 
        hw->extra_tx_headroom = sizeof(struct _carl9170_tx_superframe);