aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/314-ath9k-Use-tsf-offset-helper-in-ath9k_hw_reset.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/314-ath9k-Use-tsf-offset-helper-in-ath9k_hw_reset.patch')
-rw-r--r--package/kernel/mac80211/patches/314-ath9k-Use-tsf-offset-helper-in-ath9k_hw_reset.patch65
1 files changed, 0 insertions, 65 deletions
diff --git a/package/kernel/mac80211/patches/314-ath9k-Use-tsf-offset-helper-in-ath9k_hw_reset.patch b/package/kernel/mac80211/patches/314-ath9k-Use-tsf-offset-helper-in-ath9k_hw_reset.patch
deleted file mode 100644
index e725a8bd60..0000000000
--- a/package/kernel/mac80211/patches/314-ath9k-Use-tsf-offset-helper-in-ath9k_hw_reset.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From: Benjamin Berg <benjamin.berg@open-mesh.com>
-Date: Mon, 4 Jul 2016 14:37:22 +0200
-Subject: [PATCH] ath9k: Use tsf offset helper in ath9k_hw_reset
-
-These changes make ath9k_hw_reset more consistent with other places that
-handle the TSF value by using the same helper routine.
-
-A slight improvement is to not assume that a fixed time of 1.5ms has
-passed for the initval writes when compared to the first write attempt.
-Instead the TSF value is re-calculated which will yield a higher accuracy
-of the restored TSF timer.
-
-Signed-off-by: Benjamin Berg <benjamin.berg@open-mesh.com>
----
-
---- a/drivers/net/wireless/ath/ath9k/hw.c
-+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -1832,8 +1832,9 @@ int ath9k_hw_reset(struct ath_hw *ah, st
- u32 saveLedState;
- u32 saveDefAntenna;
- u32 macStaId1;
-+ struct timespec tsf_ts;
-+ u32 tsf_offset;
- u64 tsf = 0;
-- s64 usec = 0;
- int r;
- bool start_mci_reset = false;
- bool save_fullsleep = ah->chip_fullsleep;
-@@ -1877,8 +1878,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st
- macStaId1 = REG_READ(ah, AR_STA_ID1) & AR_STA_ID1_BASE_RATE_11B;
-
- /* Save TSF before chip reset, a cold reset clears it */
-+ getrawmonotonic(&tsf_ts);
- tsf = ath9k_hw_gettsf64(ah);
-- usec = ktime_to_us(ktime_get_raw());
-
- saveLedState = REG_READ(ah, AR_CFG_LED) &
- (AR_CFG_LED_ASSOC_CTL | AR_CFG_LED_MODE_SEL |
-@@ -1911,8 +1912,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st
- }
-
- /* Restore TSF */
-- usec = ktime_to_us(ktime_get_raw()) - usec;
-- ath9k_hw_settsf64(ah, tsf + usec);
-+ tsf_offset = ath9k_hw_get_tsf_offset(&tsf_ts, NULL);
-+ ath9k_hw_settsf64(ah, tsf + tsf_offset);
-
- if (AR_SREV_9280_20_OR_LATER(ah))
- REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE);
-@@ -1932,12 +1933,11 @@ int ath9k_hw_reset(struct ath_hw *ah, st
- /*
- * Some AR91xx SoC devices frequently fail to accept TSF writes
- * right after the chip reset. When that happens, write a new
-- * value after the initvals have been applied, with an offset
-- * based on measured time difference
-+ * value after the initvals have been applied.
- */
- if (AR_SREV_9100(ah) && (ath9k_hw_gettsf64(ah) < tsf)) {
-- tsf += 1500;
-- ath9k_hw_settsf64(ah, tsf);
-+ tsf_offset = ath9k_hw_get_tsf_offset(&tsf_ts, NULL);
-+ ath9k_hw_settsf64(ah, tsf + tsf_offset);
- }
-
- ath9k_hw_init_mfp(ah);