Thread (7 messages) 7 messages, 2 authors, 2011-03-25

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help