mirror of
https://github.com/opnsense/src.git
synced 2026-02-19 02:30:08 -05:00
This commit really is "fix the OFDM duration calculation to match reality when running in 802.11g mode." The AR5212 init vals set AR_MISC_MODE to 0x0 and all the bits that can be set are set through code. The AR5416 and later initvals set AR_MISC_MODE to various other values (with the AR5212 AR_MISC_MODE options cleared), which include AR_PCU_CCK_SIFS_MODE . This adds 6uS to SIFS on non-CCK frames when transmitting. This fixes the issue where _DATA_ 802.11g OFDM frames were being TX'ed with the ACK duration set to 38uS, not 44uS as on the AR5212 (and other devices.) The AR5212 TX pathway obeys the software-programmed duration field in the packet, but the 11n TX pathway overrides that with a hardware-calculated duration. This was getting it wrong because of the above AR_MISC_MODE setting. I've verified that 11g data OFDM frames are now being TXed with the correct ACK+SIFS duration programmed in. |
||
|---|---|---|
| .. | ||
| ath_hal | ||
| ath_rate | ||
| ah_osdep.c | ||
| ah_osdep.h | ||
| if_ath.c | ||
| if_ath_debug.c | ||
| if_ath_debug.h | ||
| if_ath_keycache.c | ||
| if_ath_keycache.h | ||
| if_ath_misc.h | ||
| if_ath_pci.c | ||
| if_ath_sysctl.c | ||
| if_ath_sysctl.h | ||
| if_ath_tx.c | ||
| if_ath_tx.h | ||
| if_ath_tx_ht.c | ||
| if_ath_tx_ht.h | ||
| if_athioctl.h | ||
| if_athrate.h | ||
| if_athvar.h | ||