From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Date: Thu, 5 Feb 2015 04:52:44 +0000 (+0530)
Subject: ath9k: Restart TSF2 timers on wakeup
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=aa96af82b873aeff93b11fcbb8577e0001dad221;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

ath9k: Restart TSF2 timers on wakeup

When coming out of WoW sleep, check and restart
timers based on TSF2.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
---

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_wow.c b/drivers/net/wireless/ath/ath9k/ar9003_wow.c
index efeb9d770899..bea41df9fbd7 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_wow.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_wow.c
@@ -252,6 +252,13 @@ u32 ath9k_hw_wow_wakeup(struct ath_hw *ah)
 	if (ah->is_pciexpress)
 		ath9k_hw_configpcipowersave(ah, false);
 
+	if (AR_SREV_9462(ah) || AR_SREV_9565(ah) || AR_SREV_9485(ah)) {
+		u32 dc = REG_READ(ah, AR_DIRECT_CONNECT);
+
+		if (!(dc & AR_DC_TSF2_ENABLE))
+			ath9k_hw_gen_timer_start_tsf2(ah);
+	}
+
 	ah->wow.wow_event_mask = 0;
 	ah->wow.wow_event_mask2 = 0;