hw.c (411132628f95dd3d51b84e0e2d8ff8f4f2d09cdb) | hw.c (0ce024cbcd5837596bc82861f1d3074d53e956f6) |
---|---|
1/* 2 * Copyright (c) 2008-2009 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 --- 354 unchanged lines hidden (view full) --- 363 ah->config.cck_trig_low = 100; 364 ah->config.enable_ani = 1; 365 366 for (i = 0; i < AR_EEPROM_MODAL_SPURS; i++) { 367 ah->config.spurchans[i][0] = AR_NO_SPUR; 368 ah->config.spurchans[i][1] = AR_NO_SPUR; 369 } 370 | 1/* 2 * Copyright (c) 2008-2009 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 --- 354 unchanged lines hidden (view full) --- 363 ah->config.cck_trig_low = 100; 364 ah->config.enable_ani = 1; 365 366 for (i = 0; i < AR_EEPROM_MODAL_SPURS; i++) { 367 ah->config.spurchans[i][0] = AR_NO_SPUR; 368 ah->config.spurchans[i][1] = AR_NO_SPUR; 369 } 370 |
371 ah->config.intr_mitigation = true; | 371 ah->config.rx_intr_mitigation = true; |
372 373 /* 374 * We need this for PCI devices only (Cardbus, PCI, miniPCI) 375 * _and_ if on non-uniprocessor systems (Multiprocessor/HT). 376 * This means we use it for all AR5416 devices, and the few 377 * minor PCI AR9280 devices out there. 378 * 379 * Serialization is required because these devices do not handle --- 775 unchanged lines hidden (view full) --- 1155 enum nl80211_iftype opmode) 1156{ 1157 ah->mask_reg = AR_IMR_TXERR | 1158 AR_IMR_TXURN | 1159 AR_IMR_RXERR | 1160 AR_IMR_RXORN | 1161 AR_IMR_BCNMISC; 1162 | 372 373 /* 374 * We need this for PCI devices only (Cardbus, PCI, miniPCI) 375 * _and_ if on non-uniprocessor systems (Multiprocessor/HT). 376 * This means we use it for all AR5416 devices, and the few 377 * minor PCI AR9280 devices out there. 378 * 379 * Serialization is required because these devices do not handle --- 775 unchanged lines hidden (view full) --- 1155 enum nl80211_iftype opmode) 1156{ 1157 ah->mask_reg = AR_IMR_TXERR | 1158 AR_IMR_TXURN | 1159 AR_IMR_RXERR | 1160 AR_IMR_RXORN | 1161 AR_IMR_BCNMISC; 1162 |
1163 if (ah->config.intr_mitigation) | 1163 if (ah->config.rx_intr_mitigation) |
1164 ah->mask_reg |= AR_IMR_RXINTM | AR_IMR_RXMINTR; 1165 else 1166 ah->mask_reg |= AR_IMR_RXOK; 1167 1168 ah->mask_reg |= AR_IMR_TXOK; 1169 1170 if (opmode == NL80211_IFTYPE_AP) 1171 ah->mask_reg |= AR_IMR_MIB; --- 914 unchanged lines hidden (view full) --- 2086 2087 REG_WRITE(ah, AR_STA_ID1, 2088 REG_READ(ah, AR_STA_ID1) | AR_STA_ID1_PRESERVE_SEQNUM); 2089 2090 ath9k_hw_set_dma(ah); 2091 2092 REG_WRITE(ah, AR_OBS, 8); 2093 | 1164 ah->mask_reg |= AR_IMR_RXINTM | AR_IMR_RXMINTR; 1165 else 1166 ah->mask_reg |= AR_IMR_RXOK; 1167 1168 ah->mask_reg |= AR_IMR_TXOK; 1169 1170 if (opmode == NL80211_IFTYPE_AP) 1171 ah->mask_reg |= AR_IMR_MIB; --- 914 unchanged lines hidden (view full) --- 2086 2087 REG_WRITE(ah, AR_STA_ID1, 2088 REG_READ(ah, AR_STA_ID1) | AR_STA_ID1_PRESERVE_SEQNUM); 2089 2090 ath9k_hw_set_dma(ah); 2091 2092 REG_WRITE(ah, AR_OBS, 8); 2093 |
2094 if (ah->config.intr_mitigation) { | 2094 if (ah->config.rx_intr_mitigation) { |
2095 REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500); 2096 REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 2000); 2097 } 2098 2099 ath9k_hw_init_bb(ah, chan); 2100 2101 if (!ath9k_hw_init_cal(ah, chan)) 2102 return -EIO; --- 643 unchanged lines hidden (view full) --- 2746 isr = REG_READ(ah, AR_ISR_RAC); 2747 if (isr == 0xffffffff) { 2748 *masked = 0; 2749 return false; 2750 } 2751 2752 *masked = isr & ATH9K_INT_COMMON; 2753 | 2095 REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500); 2096 REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, 2000); 2097 } 2098 2099 ath9k_hw_init_bb(ah, chan); 2100 2101 if (!ath9k_hw_init_cal(ah, chan)) 2102 return -EIO; --- 643 unchanged lines hidden (view full) --- 2746 isr = REG_READ(ah, AR_ISR_RAC); 2747 if (isr == 0xffffffff) { 2748 *masked = 0; 2749 return false; 2750 } 2751 2752 *masked = isr & ATH9K_INT_COMMON; 2753 |
2754 if (ah->config.intr_mitigation) { | 2754 if (ah->config.rx_intr_mitigation) { |
2755 if (isr & (AR_ISR_RXMINTR | AR_ISR_RXINTM)) 2756 *masked |= ATH9K_INT_RX; 2757 } 2758 2759 if (isr & (AR_ISR_RXOK | AR_ISR_RXERR)) 2760 *masked |= ATH9K_INT_RX; 2761 if (isr & 2762 (AR_ISR_TXOK | AR_ISR_TXDESC | AR_ISR_TXERR | --- 116 unchanged lines hidden (view full) --- 2879 mask |= AR_IMR_TXDESC; 2880 if (ah->txerr_interrupt_mask) 2881 mask |= AR_IMR_TXERR; 2882 if (ah->txeol_interrupt_mask) 2883 mask |= AR_IMR_TXEOL; 2884 } 2885 if (ints & ATH9K_INT_RX) { 2886 mask |= AR_IMR_RXERR; | 2755 if (isr & (AR_ISR_RXMINTR | AR_ISR_RXINTM)) 2756 *masked |= ATH9K_INT_RX; 2757 } 2758 2759 if (isr & (AR_ISR_RXOK | AR_ISR_RXERR)) 2760 *masked |= ATH9K_INT_RX; 2761 if (isr & 2762 (AR_ISR_TXOK | AR_ISR_TXDESC | AR_ISR_TXERR | --- 116 unchanged lines hidden (view full) --- 2879 mask |= AR_IMR_TXDESC; 2880 if (ah->txerr_interrupt_mask) 2881 mask |= AR_IMR_TXERR; 2882 if (ah->txeol_interrupt_mask) 2883 mask |= AR_IMR_TXEOL; 2884 } 2885 if (ints & ATH9K_INT_RX) { 2886 mask |= AR_IMR_RXERR; |
2887 if (ah->config.intr_mitigation) | 2887 if (ah->config.rx_intr_mitigation) |
2888 mask |= AR_IMR_RXMINTR | AR_IMR_RXINTM; 2889 else 2890 mask |= AR_IMR_RXOK | AR_IMR_RXDESC; 2891 if (!(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) 2892 mask |= AR_IMR_GENTMR; 2893 } 2894 2895 if (ints & (ATH9K_INT_BMISC)) { --- 1070 unchanged lines hidden --- | 2888 mask |= AR_IMR_RXMINTR | AR_IMR_RXINTM; 2889 else 2890 mask |= AR_IMR_RXOK | AR_IMR_RXDESC; 2891 if (!(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) 2892 mask |= AR_IMR_GENTMR; 2893 } 2894 2895 if (ints & (ATH9K_INT_BMISC)) { --- 1070 unchanged lines hidden --- |