浏览代码

ath9k_htc: Fix RX filters

Add ATH9K_RX_FILTER_UNCOMP_BA_BAR and ATH9K_RX_FILTER_PSPOLL
when mac80211 requires it.

Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Sujith Manoharan 14 年之前
父节点
当前提交
4825f54a44
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      drivers/net/wireless/ath/ath9k/htc_drv_txrx.c

+ 7 - 2
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c

@@ -407,7 +407,7 @@ u32 ath9k_htc_calcrxfilter(struct ath9k_htc_priv *priv)
 	 */
 	 */
 	if (((ah->opmode != NL80211_IFTYPE_AP) &&
 	if (((ah->opmode != NL80211_IFTYPE_AP) &&
 	     (priv->rxfilter & FIF_PROMISC_IN_BSS)) ||
 	     (priv->rxfilter & FIF_PROMISC_IN_BSS)) ||
-	    (ah->opmode == NL80211_IFTYPE_MONITOR))
+	    ah->is_monitoring)
 		rfilt |= ATH9K_RX_FILTER_PROM;
 		rfilt |= ATH9K_RX_FILTER_PROM;
 
 
 	if (priv->rxfilter & FIF_CONTROL)
 	if (priv->rxfilter & FIF_CONTROL)
@@ -419,8 +419,13 @@ u32 ath9k_htc_calcrxfilter(struct ath9k_htc_priv *priv)
 	else
 	else
 		rfilt |= ATH9K_RX_FILTER_BEACON;
 		rfilt |= ATH9K_RX_FILTER_BEACON;
 
 
-	if (conf_is_ht(&priv->hw->conf))
+	if (conf_is_ht(&priv->hw->conf)) {
 		rfilt |= ATH9K_RX_FILTER_COMP_BAR;
 		rfilt |= ATH9K_RX_FILTER_COMP_BAR;
+		rfilt |= ATH9K_RX_FILTER_UNCOMP_BA_BAR;
+	}
+
+	if (priv->rxfilter & FIF_PSPOLL)
+		rfilt |= ATH9K_RX_FILTER_PSPOLL;
 
 
 	return rfilt;
 	return rfilt;