Felix, This whole patch series throws the NICs out of spec compliance. For instance, page 626 of the 802.11-2007 standard (Table 17-15) says that aSIFStime is 32 us in 10 MHz mode and 64 us in 5 MHz mode. This might be okay to do for certain implementations (as, apparently, AR9280/AR9380), but will break compatibility with any device obeying the standard instead. (I wonder that, if this code below still works, then it seems that you might not be properly downclocking the chips' reference clock...) Are you aware there's a standard for this? Why violate it? Dan On Sun, Apr 15, 2012 at 3:15 AM, Felix Fietkau <nbd@xxxxxxxxxxx> wrote: > Significantly improves performance on AR9280/AR9380 > > Signed-off-by: Felix Fietkau <nbd@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/hw.c | 11 +++++------ > 1 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c > index c7faf10..e408aaf 100644 > --- a/drivers/net/wireless/ath/ath9k/hw.c > +++ b/drivers/net/wireless/ath/ath9k/hw.c > @@ -1000,7 +1000,6 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah) > tx_lat += 11; > > slottime = 13; > - sifstime = 32; > } else if (IS_CHAN_QUARTER_RATE(chan)) { > eifs = 340; > rx_lat = 20; > @@ -1009,7 +1008,6 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah) > tx_lat += 22; > > slottime = 21; > - sifstime = 64; > } else { > if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah)) { > eifs = AR_D_GBL_IFS_EIFS_ASYNC_FIFO; > @@ -1023,12 +1021,13 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah) > tx_lat = MS(reg, AR_USEC_TX_LAT); > > slottime = ah->slottime; > - if (IS_CHAN_5GHZ(chan)) > - sifstime = 16; > - else > - sifstime = 10; > } > > + if (IS_CHAN_5GHZ(chan)) > + sifstime = 16; > + else > + sifstime = 10; > + > /* As defined by IEEE 802.11-2007 17.3.8.6 */ > acktimeout = slottime + sifstime + 3 * ah->coverage_class; > ctstimeout = acktimeout; > -- > 1.7.3.2 > > -- > 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 -- 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