• Sergey Ryazanov's avatar
    ath9k: fix AR9002 ADC and NF calibrations · d6cae2bc
    Sergey Ryazanov authored
    ADC calibration is only required for a 80 MHz sampling rate (i.e. for
    40 MHz channels), when the chip utilizes the pair of ADCs in interleved
    mode. Calibration on a 20 MHz channel will never be completed.
    
    Previous channel check is trying to exclude all channels where the
    calibration will get stuck. It effectively blocks the calibration run
    for HT20 channels, but fails to exclude 20 MHz channels without HT (e.g.
    legacy mode channels).
    
    Fix this issue by reworking the channel check to explicitly allow ADCs
    gain & DC offset calibrations for HT40 channels only. Also update the
    complicated comment to make it clear that these calibrations are for
    multi-ADC mode only.
    
    Stuck ADCs calibration blocks the NF calibration, what could make it
    impossible to work in a noisy evironment: too big Rx attentuation,
    invalid RSSI value, etc. So this change is actually more of a NF
    calibration fix rather then the ADC calibration fix.
    
    Run tested with AR9220.
    Signed-off-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200424004923.17129-2-ryazanov.s.a@gmail.com
    d6cae2bc
ar9002_calib.c 28.4 KB