aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k
diff options
context:
space:
mode:
authorZefir Kurtisi <zefir.kurtisi@neratec.com>2012-02-27 06:52:06 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-02-29 14:14:56 -0500
commitf4fb4b212d2668f831918023bc3ca451997faee6 (patch)
treefa186429022d120b43eb6b30074e8efeeb453b89 /drivers/net/wireless/ath/ath9k
parentaef6a62d8b517f7472105971d5e221ef55a320be (diff)
ath9k: decouple RX error checking for DFS
Previous RX error checking was done exclusive-or for different error types and caused DFS pulse events to be dropped when other error flags (e.g. CRC) were set simultaneously. This patch decouples PHY error processing from other types and ensures that all pulses detected by HW are accounted by the pattern detector. Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k')
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_mac.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
index 51687e3f63d8..8d1bca03bc0e 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
@@ -510,7 +510,11 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs,
510 */ 510 */
511 if (rxsp->status11 & AR_CRCErr) 511 if (rxsp->status11 & AR_CRCErr)
512 rxs->rs_status |= ATH9K_RXERR_CRC; 512 rxs->rs_status |= ATH9K_RXERR_CRC;
513 else if (rxsp->status11 & AR_PHYErr) { 513 else if (rxsp->status11 & AR_DecryptCRCErr)
514 rxs->rs_status |= ATH9K_RXERR_DECRYPT;
515 else if (rxsp->status11 & AR_MichaelErr)
516 rxs->rs_status |= ATH9K_RXERR_MIC;
517 if (rxsp->status11 & AR_PHYErr) {
514 phyerr = MS(rxsp->status11, AR_PHYErrCode); 518 phyerr = MS(rxsp->status11, AR_PHYErrCode);
515 /* 519 /*
516 * If we reach a point here where AR_PostDelimCRCErr is 520 * If we reach a point here where AR_PostDelimCRCErr is
@@ -532,11 +536,7 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs,
532 rxs->rs_status |= ATH9K_RXERR_PHY; 536 rxs->rs_status |= ATH9K_RXERR_PHY;
533 rxs->rs_phyerr = phyerr; 537 rxs->rs_phyerr = phyerr;
534 } 538 }
535 539 };
536 } else if (rxsp->status11 & AR_DecryptCRCErr)
537 rxs->rs_status |= ATH9K_RXERR_DECRYPT;
538 else if (rxsp->status11 & AR_MichaelErr)
539 rxs->rs_status |= ATH9K_RXERR_MIC;
540 } 540 }
541 541
542 if (rxsp->status11 & AR_KeyMiss) 542 if (rxsp->status11 & AR_KeyMiss)