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}