• Rajkumar Manoharan's avatar
    ath9k: Fix power save usage count imbalance on deinit · c7c18060
    Rajkumar Manoharan authored
    While unloading the driver, the ps_usecount is incremented
    before configuring gpio registers in deinit_device.
    But it is failed to restore the ps_usecount after that.
    The problem is that the chip is forcibly moved to FULL SLEEP
    by radio_disable when mac80211 is reporting as idle
    though ps_usecount is not zero.
    
    This patch retores ps_usecount properly and ensures that
    the chip is always moved to full sleep only if ps usage
    count is zero which also helps in debugging deadbeef on
    multivif case. And also fixes the following warning.
    
    ath: DMA failed to stop in 10 ms AR_CR=0xdeadbeef AR_DIAG_SW=0xdeadbeef
    ath: Could not stop RX, we could be confusing the DMA engine when we
    start RX up
    ------------[ cut here ]------------
    WARNING: at drivers/net/wireless/ath/ath9k/recv.c:536
    ath_stoprecv+0xf4/0x100 [ath9k]()
    
    Cc: stable@kernel.org
    Cc: Paul Stewart <pstew@google.com>
    Signed-off-by: default avatarRajkumar Manoharan <rmanoharan@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    c7c18060
init.c 24 KB