• Carl Huang's avatar
    ath11k: implement suspend for QCA6390 PCI devices · d1b0c338
    Carl Huang authored
    Now that all the needed pieces are in place implement suspend support QCA6390
    PCI devices. All other devices will return -EOPNOTSUPP during suspend. The
    suspend is implemented by switching the firmware to WoW mode during suspend, so
    the firmware will be running on low power mode while host is in suspend.
    
    At the moment we are not able to shutdown and fully power off the device due to
    bugs in MHI subsystem, so WoW mode is a workaround for the time being.
    
    During suspend we enable WoW mode, disable CE irq and DP irq, then put MHI to
    suspend state.  During resume, driver resumes MHI firstly, then enables CE irq
    and dp IRQ, and sends WoW wakeup command to firmware.
    
    Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1
    Signed-off-by: default avatarCarl Huang <cjhuang@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1607708150-21066-11-git-send-email-kvalo@codeaurora.org
    d1b0c338
core.c 24 KB