• Zong-Zhe Yang's avatar
    rtw88: coex: Fix ACL Tx pause during BT inquiry/page. · 001a3c90
    Zong-Zhe Yang authored
    Add a set of logic with corresponding coexistence parameters to
    handle the situation under BT inquiry/page.
    
    We will set PSTDMA while WL-Busy + BT inquiry/page to separate
    WL/BT slots. PSTDMA can protect WL data rate and BT performance.
    
    If WL-Busy + BT inquiry/page and there was BT device paired,
    We will set the mechanism to 4Slot PSTDMA.
    In 4Slot PSTDMA, the paired devices can perform more smoothly
    and prevent some issues trigger from insufficient data.
    
    And to avoid A2DP glitch or disconnection, we will adjust ACL
    data priority higher than inquiry/page.
    
    In addition, we found sometimes BT inquiry/page still working
    last for seconds after BT had notified inquiry/page finished.
    It will lead to A2DP glitch cause of ACL data, inquiry/page
    priority toggled. To fix the corner, we add a timer to remain
    the inquiry/page status.
    
    And we found WL busy/idle threshold is too sensitive,
    it will keep switching in some weak network environment and
    coexistence mechanism will switch between TDMA and PSTDMA.
    
    The very frequently switching may destroyed not only the
    handshake with AP, but BT performance. And it will trigger
    some unexpected error.
    
    To prevent the frequently switching, we add a timer to delay
    the status change while WL busy switch to idle.
    Signed-off-by: default avatarZong-Zhe Yang <kevin_yang@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/20200715023324.8600-1-yhchuang@realtek.com
    001a3c90
rtw8822c.c 129 KB