• Ping-Ke Shih's avatar
    rtw88: 8723d: add IQ calibration · 1d229e88
    Ping-Ke Shih authored
    IQ calibration is used to calibrate RF characteristic to yield expected
    performance. Basically, we do calibration twice and compare the similarity
    to determine calibration is good or not, if not we do the third
    calibration, and then compare with the results of first and second
    calibration. If it still not similar, IQK is failed.
    
    Before doing calibration, we need to backup registers that will be
    modified in calibration procedure, and restore these registers after
    calibration is done.
    
    A calibration procedure can divided into four sub-procedures that are
    S1-TX, S1-RX, S0-TX and S0-RX. Where, S1 and S0 represent to path A and B
    respectively. Each sub-procedure configure proper registers, and then
    rigger one-shot calibration and poll until completion. For RX calibration,
    it needs to do twice one-shot calibration, first one is to yield parameter
    used by second one.
    
    The result of TX part is stored for TX power tracking that adjusts TX AGC
    to output expected power.
    Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
    Signed-off-by: default avatarYan-Hsuan Chuang <yhchuang@realtek.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200512102621.5148-3-yhchuang@realtek.com
    1d229e88
phy.c 52.1 KB