diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-03-03 09:17:05 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-03-07 13:51:38 -0500 |
commit | 3a2923e83c6036f55ad4a39c8ee9a7d4accd9539 (patch) | |
tree | cfb344bda144fe1198aca0736b0ed03182435c7d /drivers/net/wireless/ath/ath9k/ar9003_mac.c | |
parent | fc16fd8808968063929bbb198eb8bb46d40e36ce (diff) |
ath9k: get rid of double queueing of rx frames on EDMA
Process rx status directly instead of separating the completion test from
the actual rx status processing.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ar9003_mac.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_mac.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c index 01d5c1a4d746..a66a13b76848 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c | |||
@@ -436,20 +436,14 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs, | |||
436 | struct ar9003_rxs *rxsp = (struct ar9003_rxs *) buf_addr; | 436 | struct ar9003_rxs *rxsp = (struct ar9003_rxs *) buf_addr; |
437 | unsigned int phyerr; | 437 | unsigned int phyerr; |
438 | 438 | ||
439 | /* TODO: byte swap on big endian for ar9300_10 */ | 439 | if ((rxsp->status11 & AR_RxDone) == 0) |
440 | 440 | return -EINPROGRESS; | |
441 | if (!rxs) { | ||
442 | if ((rxsp->status11 & AR_RxDone) == 0) | ||
443 | return -EINPROGRESS; | ||
444 | |||
445 | if (MS(rxsp->ds_info, AR_DescId) != 0x168c) | ||
446 | return -EINVAL; | ||
447 | 441 | ||
448 | if ((rxsp->ds_info & (AR_TxRxDesc | AR_CtrlStat)) != 0) | 442 | if (MS(rxsp->ds_info, AR_DescId) != 0x168c) |
449 | return -EINPROGRESS; | 443 | return -EINVAL; |
450 | 444 | ||
451 | return 0; | 445 | if ((rxsp->ds_info & (AR_TxRxDesc | AR_CtrlStat)) != 0) |
452 | } | 446 | return -EINPROGRESS; |
453 | 447 | ||
454 | rxs->rs_status = 0; | 448 | rxs->rs_status = 0; |
455 | rxs->rs_flags = 0; | 449 | rxs->rs_flags = 0; |