• Felix Fietkau's avatar
    ath9k: fix beacon timer restart after a card reset · d8728ee9
    Felix Fietkau authored
    In AP mode, ath_beacon_config_ap only restarts the timer if a TSF
    restart is requested. Apparently this was added, because this function
    unconditionally sets the flag for TSF reset.
    
    The problem with this is, that ath9k_hw_reset() clobbers the timer
    registers (specified in the initvals), thus effectively disabling the
    SWBA interrupt whenever a card reset without TSF reset is issued
    (happens in a few places in the code).
    
    This patch fixes ath_beacon_config_ap to only issue the TSF reset flag
    when necessary, but reinitialize the timer unconditionally. Tests show,
    that this is enough to keep the SWBA interrupt going after a call to
    ath_reset()
    Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Cc: stable@kernel.org
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    d8728ee9
beacon.c 22.9 KB