On 2013-12-15 21:13, Felix Fietkau wrote: > On 2013-12-14 15:11, Sujith Manoharan wrote: >> From: Sujith Manoharan <c_manoha@xxxxxxxxxxxxxxxx> >> >> This patch adds a driver workaround for a HW issue. >> >> A race condition in the HW results in missing interrupts, >> which can be avoided by a read/write with the ISR register. >> All chips in the AR9002 series are affected by this bug - AR9003 >> and above do not have this problem. >> >> Cc: stable@xxxxxxxxxxxxxxx >> Signed-off-by: Sujith Manoharan <c_manoha@xxxxxxxxxxxxxxxx> > Please don't apply this patch just yet, it seems to be causing interrupt > storms. I'm currently looking into it. This change on top of it should fix the interrupt storms (which were observed on AR913x): --- --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c @@ -133,6 +133,11 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked) *masked |= mask2; } + if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) { + REG_WRITE(ah, AR_ISR, isr); + REG_READ(ah, AR_ISR); + } + if (AR_SREV_9100(ah)) return true; @@ -164,11 +169,6 @@ static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked) } } - if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) { - REG_WRITE(ah, AR_ISR, isr); - REG_READ(ah, AR_ISR); - } - if (sync_cause) { ath9k_debug_sync_cause(common, sync_cause); fatal_int = -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html