• B
    ath10k: fix core PCI suspend when WoWLAN is supported but disabled · 96378bd2
    Brian Norris 提交于
    For devices where the FW supports WoWLAN but user-space has not
    configured it, we don't do any PCI-specific suspend/resume operations,
    because mac80211 doesn't call drv_suspend() when !wowlan. This has
    particularly bad effects for some platforms, because we don't stop the
    power-save timer, and if this timer goes off after the PCI controller
    has suspended the link, Bad Things will happen.
    
    Commit 32faa3f0 ("ath10k: add the PCI PM core suspend/resume ops")
    got some of this right, in that it understood there was a problem on
    non-WoWLAN firmware. But it forgot the $subject case.
    
    Fix this by moving all the PCI driver suspend/resume logic exclusively
    into the driver PM hooks. This shouldn't affect WoWLAN support much
    (this just gets executed later on).
    
    I would just as well kill the entirety of ath10k_hif_suspend(), as it's
    not even implemented on the USB or SDIO drivers. I expect that we don't
    need the callback, except to return "supported" (i.e., 0) or "not
    supported" (i.e., -EOPNOTSUPP).
    
    Fixes: 32faa3f0 ("ath10k: add the PCI PM core suspend/resume ops")
    Fixes: 77258d40 ("ath10k: enable pci soc powersaving")
    Signed-off-by: NBrian Norris <briannorris@chromium.org>
    Cc: Ryan Hsu <ryanhsu@qti.qualcomm.com>
    Cc: Kalle Valo <kvalo@qca.qualcomm.com>
    Cc: Michal Kazior <michal.kazior@tieto.com>
    Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
    96378bd2
pci.c 86.7 KB