ath9k: fix sleep timer during suspend
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>
Thu, 22 May 2014 08:41:41 +0000 (14:11 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 22 May 2014 18:04:38 +0000 (14:04 -0400)
On idle state, sleep timer is scheduled to put the chip into fullsleep.
But during suspend, this timer is scheduled after the chip is moved to
fullsleep forcibily. This is causing below unnecessary error messages
in kernel log during suspend.

ath: phy2: timeout (100000 us) on reg 0x806c: 0xdeadbeef & 0x01f00000
!= 0x00000000
ath: phy2: RX failed to go idle in 10 ms RXSM=0xdeadbeef
ath: phy2: DMA failed to stop in 10 ms AR_CR=0xdeadbeef AR_DIAG_SW=0xdeadbeef
DMADBG_7=0xdeadbeef

Reported-by: Arkh4mKn1ght <arkh4mkn1ght@gmail.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/pci.c

index c1e82f779544741a86198792c8d39e7614ce019d..4dec09e565ed865470ff6bc5738e86c21d523906 100644 (file)
@@ -914,6 +914,7 @@ static int ath_pci_suspend(struct device *device)
         */
        ath9k_stop_btcoex(sc);
        ath9k_hw_disable(sc->sc_ah);
+       del_timer_sync(&sc->sleep_timer);
        ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_FULL_SLEEP);
 
        return 0;