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 ---