summaryrefslogtreecommitdiff
path: root/package/mac80211/patches/570-ath9k-add-external_reset-callback-to-ath9k_platfom_d.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/570-ath9k-add-external_reset-callback-to-ath9k_platfom_d.patch')
-rw-r--r--package/mac80211/patches/570-ath9k-add-external_reset-callback-to-ath9k_platfom_d.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/package/mac80211/patches/570-ath9k-add-external_reset-callback-to-ath9k_platfom_d.patch b/package/mac80211/patches/570-ath9k-add-external_reset-callback-to-ath9k_platfom_d.patch
deleted file mode 100644
index 183a4f1..0000000
--- a/package/mac80211/patches/570-ath9k-add-external_reset-callback-to-ath9k_platfom_d.patch
+++ /dev/null
@@ -1,74 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/hw.c
-+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -1170,6 +1170,41 @@ static bool ath9k_hw_set_reset(struct at
- rst_flags |= AR_RTC_RC_MAC_COLD;
- }
-
-+ if (AR_SREV_9330(ah)) {
-+ int npend = 0;
-+ int i;
-+
-+ /* AR9330 WAR:
-+ * call external reset function to reset WMAC if:
-+ * - doing a cold reset
-+ * - we have pending frames in the TX queues
-+ */
-+
-+ for (i = 0; i < AR_NUM_QCU; i++) {
-+ npend = ath9k_hw_numtxpending(ah, i);
-+ if (npend)
-+ break;
-+ }
-+
-+ if (ah->external_reset &&
-+ (npend || type == ATH9K_RESET_COLD)) {
-+ int reset_err = 0;
-+
-+ ath_dbg(ath9k_hw_common(ah), ATH_DBG_RESET,
-+ "reset MAC via external reset\n");
-+
-+ reset_err = ah->external_reset();
-+ if (reset_err) {
-+ ath_err(ath9k_hw_common(ah),
-+ "External reset failed, err=%d\n",
-+ reset_err);
-+ return false;
-+ }
-+
-+ REG_WRITE(ah, AR_RTC_RESET, 1);
-+ }
-+ }
-+
- REG_WRITE(ah, AR_RTC_RC, rst_flags);
-
- REGWRITE_BUFFER_FLUSH(ah);
---- a/drivers/net/wireless/ath/ath9k/hw.h
-+++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -864,6 +864,7 @@ struct ath_hw {
-
- bool is_clk_25mhz;
- int (*get_mac_revision)(void);
-+ int (*external_reset)(void);
- };
-
- struct ath_bus_ops {
---- a/drivers/net/wireless/ath/ath9k/init.c
-+++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -576,6 +576,7 @@ static int ath9k_init_softc(u16 devid, s
- sc->sc_ah->led_pin = pdata->led_pin;
- ah->is_clk_25mhz = pdata->is_clk_25mhz;
- ah->get_mac_revision = pdata->get_mac_revision;
-+ ah->external_reset = pdata->external_reset;
- }
-
- common = ath9k_hw_common(ah);
---- a/include/linux/ath9k_platform.h
-+++ b/include/linux/ath9k_platform.h
-@@ -31,6 +31,7 @@ struct ath9k_platform_data {
-
- bool is_clk_25mhz;
- int (*get_mac_revision)(void);
-+ int (*external_reset)(void);
- };
-
- #endif /* _LINUX_ATH9K_PLATFORM_H */