ath9k_htc: process rx spectral packets
authorOleksij Rempel <linux@rempel-privat.de>
Thu, 6 Nov 2014 07:53:37 +0000 (08:53 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 11 Nov 2014 21:31:15 +0000 (16:31 -0500)
use code provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c

index 2622002845ce4146fa6ee852b8b0ba98d13f006f..a0f58e2aa553825d65a7f1ecc4cc1e06338ea444 100644 (file)
@@ -1012,6 +1012,20 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
         * separately to avoid doing two lookups for a rate for each frame.
         */
        hdr = (struct ieee80211_hdr *)skb->data;
+
+       /*
+        * Process PHY errors and return so that the packet
+        * can be dropped.
+        */
+       if (rx_stats.rs_status & ATH9K_RXERR_PHY) {
+               /* TODO: Not using DFS processing now. */
+               if (ath_cmn_process_fft(&priv->spec_priv, hdr,
+                                   &rx_stats, rx_status->mactime)) {
+                       /* TODO: Code to collect spectral scan statistics */
+               }
+               goto rx_next;
+       }
+
        if (!ath9k_cmn_rx_accept(common, hdr, rx_status, &rx_stats,
                        &decrypt_error, priv->rxfilter))
                goto rx_next;