recv.c (3a758134e66ca74a9df792616b5288b2fa2cfd7f) | recv.c (c82552c5b0cb1735dbcbad78b1ffc6d3c212dc56) |
---|---|
1/* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 961 unchanged lines hidden (view full) --- 970 int retval; 971 struct ath_rx_status rs; 972 enum ath9k_rx_qtype qtype; 973 bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); 974 int dma_type; 975 u64 tsf = 0; 976 unsigned long flags; 977 dma_addr_t new_buf_addr; | 1/* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 961 unchanged lines hidden (view full) --- 970 int retval; 971 struct ath_rx_status rs; 972 enum ath9k_rx_qtype qtype; 973 bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); 974 int dma_type; 975 u64 tsf = 0; 976 unsigned long flags; 977 dma_addr_t new_buf_addr; |
978 unsigned int budget = 512; |
|
978 979 if (edma) 980 dma_type = DMA_BIDIRECTIONAL; 981 else 982 dma_type = DMA_FROM_DEVICE; 983 984 qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP; 985 --- 130 unchanged lines hidden (view full) --- 1116 1117 if (edma) { 1118 ath_rx_edma_buf_link(sc, qtype); 1119 } else { 1120 ath_rx_buf_relink(sc, bf); 1121 if (!flush) 1122 ath9k_hw_rxena(ah); 1123 } | 979 980 if (edma) 981 dma_type = DMA_BIDIRECTIONAL; 982 else 983 dma_type = DMA_FROM_DEVICE; 984 985 qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP; 986 --- 130 unchanged lines hidden (view full) --- 1117 1118 if (edma) { 1119 ath_rx_edma_buf_link(sc, qtype); 1120 } else { 1121 ath_rx_buf_relink(sc, bf); 1122 if (!flush) 1123 ath9k_hw_rxena(ah); 1124 } |
1125 1126 if (!budget--) 1127 break; |
|
1124 } while (1); 1125 1126 if (!(ah->imask & ATH9K_INT_RXEOL)) { 1127 ah->imask |= (ATH9K_INT_RXEOL | ATH9K_INT_RXORN); 1128 ath9k_hw_set_interrupts(ah); 1129 } 1130 1131 return 0; 1132} | 1128 } while (1); 1129 1130 if (!(ah->imask & ATH9K_INT_RXEOL)) { 1131 ah->imask |= (ATH9K_INT_RXEOL | ATH9K_INT_RXORN); 1132 ath9k_hw_set_interrupts(ah); 1133 } 1134 1135 return 0; 1136} |