• F
    ath9k: use AP beacon miss as a trigger for fast recalibration · 70cf1533
    Felix Fietkau 提交于
    When beacons get stuck in AP mode, the most likely cause is interference.
    Such interference can often go on for a while, and too many consecutive
    beacon misses can lead to connected clients getting dropped.
    
    Since connected clients might not be subjected to the same interference
    if that happens to be very local, the AP should try to deal with it as
    good as it can. One way to do this is to trigger an NF calibration with
    automatic baseband update right after the beacon miss. In my tests with
    very strong interference, this allowed the AP to continue transmitting
    beacons after only 2-3 misses, which allows a normal client to stay
    connected.
    
    With some of the newer - really sensitive - chips, the maximum noise
    floor limit is very low, which can be problematic during very strong
    interference. To avoid an endless loop of stuck beacons -> nfcal ->
    periodic calibration -> stuck beacons, the beacon miss event also sets
    a flag, which allows the calibration code to bypass the chip specific
    maximum NF value. This flag is automatically cleared, as soon as the
    first NF median goes back below the limits for all chains.
    
    In my tests, this allowed an ath9k AP to survive very strong interference
    (measured NF: -68, or sometimes even higher) without losing connectivity
    to its clients. Even under these conditions, I was able to transmit
    several mbits/s through the interface.
    Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
    70cf1533
calib.c 11.2 KB