ath9k_hw: do not apply the 2.4 ghz ack timeout workaround to cts
It is only used to workaround interoperability issues related to longer delays in receiving the block ack, so it is not necessary to apply it to the CTS exchange. Should improve throughput slightly, especially when there are lots of retransmissions. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
		
					parent
					
						
							
								2cca397f76
							
						
					
				
			
			
				commit
				
					
						adb5066ae2
					
				
			
		
					 1 changed files with 3 additions and 2 deletions
				
			
		|  | @ -960,7 +960,7 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah) | |||
| 	struct ath_common *common = ath9k_hw_common(ah); | ||||
| 	struct ieee80211_conf *conf = &common->hw->conf; | ||||
| 	const struct ath9k_channel *chan = ah->curchan; | ||||
| 	int acktimeout; | ||||
| 	int acktimeout, ctstimeout; | ||||
| 	int slottime; | ||||
| 	int sifstime; | ||||
| 	int rx_lat = 0, tx_lat = 0, eifs = 0; | ||||
|  | @ -1017,6 +1017,7 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah) | |||
| 
 | ||||
| 	/* As defined by IEEE 802.11-2007 17.3.8.6 */ | ||||
| 	acktimeout = slottime + sifstime + 3 * ah->coverage_class; | ||||
| 	ctstimeout = acktimeout; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Workaround for early ACK timeouts, add an offset to match the | ||||
|  | @ -1031,7 +1032,7 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah) | |||
| 	ath9k_hw_set_sifs_time(ah, sifstime); | ||||
| 	ath9k_hw_setslottime(ah, slottime); | ||||
| 	ath9k_hw_set_ack_timeout(ah, acktimeout); | ||||
| 	ath9k_hw_set_cts_timeout(ah, acktimeout); | ||||
| 	ath9k_hw_set_cts_timeout(ah, ctstimeout); | ||||
| 	if (ah->globaltxtimeout != (u32) -1) | ||||
| 		ath9k_hw_set_global_txtimeout(ah, ah->globaltxtimeout); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Felix Fietkau
				Felix Fietkau