• Chih-Kang Chang's avatar
    wifi: rtw89: wow: refine WoWLAN flows of HCI interrupts and low power mode · baaf806e
    Chih-Kang Chang authored
    After enabling packet offload, the TX will be stuck after resume from
    WoWLAN mode. And the 8852c gets error messages like
    
    rtw89_8852ce 0000:04:00.0: No busy txwd pages available
    rtw89_8852ce 0000:04:00.0: queue 0 txwd 100 is not idle
    rtw89_8852ce 0000:04:00.0: queue 0 txwd 101 is not idle
    rtw89_8852ce 0000:04:00.0: queue 0 txwd 102 is not idle
    rtw89_8852ce 0000:04:00.0: queue 0 txwd 103 is not idle
    
    If suspend/resume many times that firmware will download failed and
    disconnection.
    
    To fix these issues, We removed the rtw89_hci_disable_intr() and
    rtw89_hci_enable_intr() during rtw89_wow_swap_fw() to prevent add packet
    offload can't receive c2h back due to interrupt disable. Only 8852C and
    8922A needs to disable interrupt before downloading fw.
    
    Furthermore, we avoid using low power HCI mode on WoWLAN mode, to prevent
    interrupt enabled, then get interrupt and calculate RXBD mismatched due to
    software RXBD index already reset but hardware RXBD index not yet.
    
    Fixes: 5c12bb66 ("wifi: rtw89: refine packet offload flow")
    Signed-off-by: default avatarChih-Kang Chang <gary.chang@realtek.com>
    Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
    Link: https://msgid.link/20240502022505.28966-3-pkshih@realtek.com
    baaf806e
ps.c 8.35 KB