On 5 October 2012 05:34, Felix Fietkau <nbd@xxxxxxxxxxx> wrote: > --- > --- a/drivers/net/wireless/ath/ath9k/ani.c > +++ b/drivers/net/wireless/ath/ath9k/ani.c > @@ -307,7 +307,8 @@ void ath9k_ani_reset(struct ath_hw *ah, > if (IS_CHAN_2GHZ(chan)) { > ah->ani_function = (ATH9K_ANI_SPUR_IMMUNITY_LEVEL | > ATH9K_ANI_FIRSTEP_LEVEL); > - if (AR_SREV_9300_20_OR_LATER(ah)) > + if (AR_SREV_9300_20_OR_LATER(ah) && > + ah->caps.rx_chainmask != 1) > ah->ani_function |= ATH9K_ANI_MRC_CCK; > } else > ah->ani_function = 0; Well, is it a RX chainmask thing, or is it a chip thing? It's totally possible to have an RX chainmask of say 0x2 or 0x4.. Also to figure out which registers triggered the interrupt is likely going to be a bit .. special. Maybe keep a circular buffer of the last N register accesses and dump them in time order whenever you get an interrupt. Adrian -- 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