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 c1e82f7..4dec09e 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;