ath9k: fix crash issues caused by the ar9300 support patch

SVN-Revision: 20887
owl
Felix Fietkau 2010-04-15 20:37:20 +00:00
parent 14428874ae
commit 28718f2d5f
7 changed files with 753 additions and 602 deletions

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
#include <asm/unaligned.h> #include <asm/unaligned.h>
#include "hw.h" #include "hw.h"
@@ -431,8 +432,16 @@ static int ath9k_hw_init_macaddr(struct @@ -440,8 +441,16 @@ static int ath9k_hw_init_macaddr(struct
common->macaddr[2 * i] = eeval >> 8; common->macaddr[2 * i] = eeval >> 8;
common->macaddr[2 * i + 1] = eeval & 0xff; common->macaddr[2 * i + 1] = eeval & 0xff;
} }

View File

@ -31,7 +31,7 @@
common->bus_ops = bus_ops; common->bus_ops = bus_ops;
--- a/drivers/net/wireless/ath/ath9k/hw.c --- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -404,10 +404,6 @@ static void ath9k_hw_init_defaults(struc @@ -413,10 +413,6 @@ static void ath9k_hw_init_defaults(struc
ah->hw_version.magic = AR5416_MAGIC; ah->hw_version.magic = AR5416_MAGIC;
ah->hw_version.subvendorid = 0; ah->hw_version.subvendorid = 0;

View File

@ -11,7 +11,7 @@
#include "hw.h" #include "hw.h"
#include "hw-ops.h" #include "hw-ops.h"
#include "rc.h" #include "rc.h"
@@ -416,18 +418,23 @@ static void ath9k_hw_init_defaults(struc @@ -425,18 +427,23 @@ static void ath9k_hw_init_defaults(struc
static int ath9k_hw_init_macaddr(struct ath_hw *ah) static int ath9k_hw_init_macaddr(struct ath_hw *ah)
{ {
struct ath_common *common = ath9k_hw_common(ah); struct ath_common *common = ath9k_hw_common(ah);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c --- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1298,7 +1298,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st @@ -1303,7 +1303,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
if (ah->config.rx_intr_mitigation) { if (ah->config.rx_intr_mitigation) {
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500); REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c --- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1131,6 +1131,34 @@ static bool ath9k_hw_channel_change(stru @@ -1136,6 +1136,34 @@ static bool ath9k_hw_channel_change(stru
return true; return true;
} }
@ -37,7 +37,7 @@
{ {
--- a/drivers/net/wireless/ath/ath9k/hw.h --- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -846,6 +846,7 @@ void ath9k_hw_set11nmac2040(struct ath_h @@ -851,6 +851,7 @@ void ath9k_hw_set11nmac2040(struct ath_h
void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period); void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period);
void ath9k_hw_set_sta_beacon_timers(struct ath_hw *ah, void ath9k_hw_set_sta_beacon_timers(struct ath_hw *ah,
const struct ath9k_beacon_state *bs); const struct ath9k_beacon_state *bs);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/xmit.c --- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -260,19 +260,40 @@ static void ath_tx_set_retry(struct ath_ @@ -261,19 +261,40 @@ static void ath_tx_set_retry(struct ath_
hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_RETRY); hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_RETRY);
} }
@ -46,7 +46,7 @@
ATH_TXBUF_RESET(tbf); ATH_TXBUF_RESET(tbf);
tbf->aphy = bf->aphy; tbf->aphy = bf->aphy;
@@ -1084,9 +1105,7 @@ void ath_draintxq(struct ath_softc *sc, @@ -1081,9 +1102,7 @@ void ath_draintxq(struct ath_softc *sc,
list_del(&bf->list); list_del(&bf->list);
spin_unlock_bh(&txq->axq_lock); spin_unlock_bh(&txq->axq_lock);
@ -57,7 +57,7 @@
continue; continue;
} }
} }
@@ -1306,25 +1325,6 @@ static void ath_tx_txqaddbuf(struct ath_ @@ -1325,25 +1344,6 @@ static void ath_tx_txqaddbuf(struct ath_
txq->axq_depth++; txq->axq_depth++;
} }
@ -83,7 +83,7 @@
static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid, static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
struct list_head *bf_head, struct list_head *bf_head,
struct ath_tx_control *txctl) struct ath_tx_control *txctl)
@@ -1806,9 +1806,7 @@ int ath_tx_start(struct ieee80211_hw *hw @@ -1825,9 +1825,7 @@ int ath_tx_start(struct ieee80211_hw *hw
} }
spin_unlock_bh(&txq->axq_lock); spin_unlock_bh(&txq->axq_lock);
@ -94,7 +94,7 @@
return r; return r;
} }
@@ -2122,13 +2120,12 @@ static void ath_tx_processq(struct ath_s @@ -2141,13 +2139,12 @@ static void ath_tx_processq(struct ath_s
txq->axq_depth--; txq->axq_depth--;
txok = !(ts.ts_status & ATH9K_TXERR_MASK); txok = !(ts.ts_status & ATH9K_TXERR_MASK);
txq->axq_tx_inprogress = false; txq->axq_tx_inprogress = false;