| 1 | --- a/drivers/net/wireless/ath/ath9k/hw.c |
| 2 | +++ b/drivers/net/wireless/ath/ath9k/hw.c |
| 3 | @@ -1006,16 +1006,26 @@ void ath9k_hw_init_global_settings(struc |
| 4 | |
| 5 | if (IS_CHAN_HALF_RATE(chan)) { |
| 6 | eifs = 175; |
| 7 | - rx_lat *= 2; |
| 8 | + |
| 9 | + if (!AR_SREV_9300_20_OR_LATER(ah)) |
| 10 | + rx_lat = 10; |
| 11 | + else |
| 12 | + rx_lat *= 2; |
| 13 | + |
| 14 | tx_lat *= 2; |
| 15 | if (IS_CHAN_A_FAST_CLOCK(ah, chan)) |
| 16 | - tx_lat += 11; |
| 17 | + tx_lat += 11; |
| 18 | |
| 19 | slottime = 13; |
| 20 | sifstime = 32; |
| 21 | } else if (IS_CHAN_QUARTER_RATE(chan)) { |
| 22 | eifs = 340; |
| 23 | - rx_lat = (rx_lat * 4) - 1; |
| 24 | + |
| 25 | + if (!AR_SREV_9300_20_OR_LATER(ah)) |
| 26 | + rx_lat = 20; |
| 27 | + else |
| 28 | + rx_lat = (rx_lat * 4) - 1; |
| 29 | + |
| 30 | tx_lat *= 4; |
| 31 | if (IS_CHAN_A_FAST_CLOCK(ah, chan)) |
| 32 | tx_lat += 22; |
| 33 | |