|
@@ -1037,13 +1037,16 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
|
|
|
|
|
|
/*
|
|
/*
|
|
* Workaround for early ACK timeouts, add an offset to match the
|
|
* Workaround for early ACK timeouts, add an offset to match the
|
|
- * initval's 64us ack timeout value.
|
|
|
|
|
|
+ * initval's 64us ack timeout value. Use 48us for the CTS timeout.
|
|
* This was initially only meant to work around an issue with delayed
|
|
* This was initially only meant to work around an issue with delayed
|
|
* BA frames in some implementations, but it has been found to fix ACK
|
|
* BA frames in some implementations, but it has been found to fix ACK
|
|
* timeout issues in other cases as well.
|
|
* timeout issues in other cases as well.
|
|
*/
|
|
*/
|
|
- if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ)
|
|
|
|
|
|
+ if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) {
|
|
acktimeout += 64 - sifstime - ah->slottime;
|
|
acktimeout += 64 - sifstime - ah->slottime;
|
|
|
|
+ ctstimeout += 48 - sifstime - ah->slottime;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
ath9k_hw_set_sifs_time(ah, sifstime);
|
|
ath9k_hw_set_sifs_time(ah, sifstime);
|
|
ath9k_hw_setslottime(ah, slottime);
|
|
ath9k_hw_setslottime(ah, slottime);
|