ath9k: fix crash issues caused by the ar9300 support patch

SVN-Revision: 20887
This commit is contained in:
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 "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 + 1] = eeval & 0xff;
}

View File

@ -31,7 +31,7 @@
common->bus_ops = bus_ops;
--- a/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.subvendorid = 0;

View File

@ -11,7 +11,7 @@
#include "hw.h"
#include "hw-ops.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)
{
struct ath_common *common = ath9k_hw_common(ah);

View File

@ -1,6 +1,6 @@
--- a/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) {
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, 500);

View File

@ -1,6 +1,6 @@
--- a/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;
}
@ -37,7 +37,7 @@
{
--- a/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_set_sta_beacon_timers(struct ath_hw *ah,
const struct ath9k_beacon_state *bs);

View File

@ -1,6 +1,6 @@
--- a/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);
}
@ -46,7 +46,7 @@
ATH_TXBUF_RESET(tbf);
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);
spin_unlock_bh(&txq->axq_lock);
@ -57,7 +57,7 @@
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++;
}
@ -83,7 +83,7 @@
static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
struct list_head *bf_head,
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);
@ -94,7 +94,7 @@
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--;
txok = !(ts.ts_status & ATH9K_TXERR_MASK);
txq->axq_tx_inprogress = false;