Re: [PATCH 1/3] ath9k: fix beacon timer handling issues
From: Felix Fietkau <hidden>
Date: 2011-03-25 02:59:35
On 2011-03-25 3:50 AM, Sujith wrote:
Felix Fietkau wrote:quoted
AP mode beacon timers in ath9k are configured in milliseconds, which breaks when increasing ATH_BCBUF to 8 instead of 4 (due to rounding errors). Since the hardware timers are actually configured in microseconds, it's better to let the driver use that unit directly. To be able to do that, the beacon interval parameter abuse for passing certain flags needs to be removed. This is easy to do, because those flags are completely unnecessary anyway. ATH9K_BEACON_ENA is ignored, ATH9K_BEACON_RESET_TSF can be replaced with calling ath9k_hw_reset_tsf from the driver directly.I know this has been merged, but this changes the behaviour. Earlier, the HW TSF would be reset _after_ the beacon timers have been configured, but now this isn't so. Wouldn't this alter the timers ?
The HW TSF reset was still issued before the code would activate the timers (with the write to AR_TIMER_MODE), so I don't think this changes the behaviour of the timers. Since the timers are scheduled for absolute TSF32 values and (in case of a reset being issued) always set to TU_TO_USEC(intval / ATH_BCBUF), that leaves enough time for the timers to settle in after the TSF reset, so I don't expect any race conditions there. - Felix