mac80211: update to wireless-testing 2010-07-26 + pending patches - adds a change that might fix some calibration issues
SVN-Revision: 22403master
parent
7a5f143f64
commit
0e417cf3ce
@ -1,32 +0,0 @@ |
||||
--- a/drivers/net/wireless/ath/ath9k/xmit.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
|
||||
@@ -518,6 +518,14 @@ static void ath_tx_complete_aggr(struct
|
||||
bf = bf_next;
|
||||
}
|
||||
|
||||
+ /* prepend un-acked frames to the beginning of the pending frame queue */
|
||||
+ if (!list_empty(&bf_pending)) {
|
||||
+ spin_lock_bh(&txq->axq_lock);
|
||||
+ list_splice(&bf_pending, &tid->buf_q);
|
||||
+ ath_tx_queue_tid(txq, tid);
|
||||
+ spin_unlock_bh(&txq->axq_lock);
|
||||
+ }
|
||||
+
|
||||
if (tid->state & AGGR_CLEANUP) {
|
||||
if (tid->baw_head == tid->baw_tail) {
|
||||
tid->state &= ~AGGR_ADDBA_COMPLETE;
|
||||
@@ -530,14 +538,6 @@ static void ath_tx_complete_aggr(struct
|
||||
return;
|
||||
}
|
||||
|
||||
- /* prepend un-acked frames to the beginning of the pending frame queue */
|
||||
- if (!list_empty(&bf_pending)) {
|
||||
- spin_lock_bh(&txq->axq_lock);
|
||||
- list_splice(&bf_pending, &tid->buf_q);
|
||||
- ath_tx_queue_tid(txq, tid);
|
||||
- spin_unlock_bh(&txq->axq_lock);
|
||||
- }
|
||||
-
|
||||
rcu_read_unlock();
|
||||
|
||||
if (needreset)
|
@ -1,46 +0,0 @@ |
||||
--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
@@ -1508,6 +1508,9 @@ static void ar5008_hw_do_getnf(struct at
|
||||
nf = MS(REG_READ(ah, AR_PHY_CH2_CCA), AR_PHY_CH2_MINCCA_PWR);
|
||||
nfarray[2] = sign_extend(nf, 9);
|
||||
|
||||
+ if (!IS_CHAN_HT40(ah->curchan))
|
||||
+ return;
|
||||
+
|
||||
nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR);
|
||||
nfarray[3] = sign_extend(nf, 9);
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar9002_phy.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.c
|
||||
@@ -477,7 +477,8 @@ static void ar9002_hw_do_getnf(struct at
|
||||
nfarray[0] = sign_extend(nf, 9);
|
||||
|
||||
nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR9280_PHY_EXT_MINCCA_PWR);
|
||||
- nfarray[3] = sign_extend(nf, 9);
|
||||
+ if (IS_CHAN_HT40(ah->curchan))
|
||||
+ nfarray[3] = sign_extend(nf, 9);
|
||||
|
||||
if (AR_SREV_9285(ah) || AR_SREV_9271(ah))
|
||||
return;
|
||||
@@ -486,7 +487,8 @@ static void ar9002_hw_do_getnf(struct at
|
||||
nfarray[1] = sign_extend(nf, 9);
|
||||
|
||||
nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR9280_PHY_CH1_EXT_MINCCA_PWR);
|
||||
- nfarray[4] = sign_extend(nf, 9);
|
||||
+ if (IS_CHAN_HT40(ah->curchan))
|
||||
+ nfarray[4] = sign_extend(nf, 9);
|
||||
}
|
||||
|
||||
static void ar9002_hw_set_nf_limits(struct ath_hw *ah)
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
|
||||
@@ -1029,6 +1029,9 @@ static void ar9003_hw_do_getnf(struct at
|
||||
nf = MS(REG_READ(ah, AR_PHY_CCA_2), AR_PHY_CH2_MINCCA_PWR);
|
||||
nfarray[2] = sign_extend(nf, 9);
|
||||
|
||||
+ if (!IS_CHAN_HT40(ah->curchan))
|
||||
+ return;
|
||||
+
|
||||
nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR);
|
||||
nfarray[3] = sign_extend(nf, 9);
|
||||
|
@ -1,30 +0,0 @@ |
||||
--- a/drivers/net/wireless/ath/ath9k/calib.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/calib.c
|
||||
@@ -172,26 +172,9 @@ void ath9k_hw_loadnf(struct ath_hw *ah,
|
||||
struct ath9k_nfcal_hist *h;
|
||||
unsigned i, j;
|
||||
int32_t val;
|
||||
- u8 chainmask;
|
||||
+ u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask;
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
|
||||
- if (AR_SREV_9300_20_OR_LATER(ah))
|
||||
- chainmask = 0x3F;
|
||||
- else if (AR_SREV_9285(ah) || AR_SREV_9271(ah))
|
||||
- chainmask = 0x9;
|
||||
- else if (AR_SREV_9280(ah) || AR_SREV_9287(ah)) {
|
||||
- if ((ah->rxchainmask & 0x2) || (ah->rxchainmask & 0x4))
|
||||
- chainmask = 0x1B;
|
||||
- else
|
||||
- chainmask = 0x09;
|
||||
- } else {
|
||||
- if (ah->rxchainmask & 0x4)
|
||||
- chainmask = 0x3F;
|
||||
- else if (ah->rxchainmask & 0x2)
|
||||
- chainmask = 0x1B;
|
||||
- else
|
||||
- chainmask = 0x09;
|
||||
- }
|
||||
h = ah->nfCalHist;
|
||||
|
||||
for (i = 0; i < NUM_NF_READINGS; i++) {
|
@ -1,20 +0,0 @@ |
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -756,7 +756,7 @@ static void ieee80211_iface_work(struct
|
||||
int len = skb->len;
|
||||
|
||||
mutex_lock(&local->sta_mtx);
|
||||
- sta = sta_info_get(sdata, mgmt->sa);
|
||||
+ sta = sta_info_get_bss(sdata, mgmt->sa);
|
||||
if (sta) {
|
||||
switch (mgmt->u.action.u.addba_req.action_code) {
|
||||
case WLAN_ACTION_ADDBA_REQ:
|
||||
@@ -797,7 +797,7 @@ static void ieee80211_iface_work(struct
|
||||
* right, so terminate the session.
|
||||
*/
|
||||
mutex_lock(&local->sta_mtx);
|
||||
- sta = sta_info_get(sdata, mgmt->sa);
|
||||
+ sta = sta_info_get_bss(sdata, mgmt->sa);
|
||||
if (sta) {
|
||||
u16 tid = *ieee80211_get_qos_ctl(hdr) &
|
||||
IEEE80211_QOS_CTL_TID_MASK;
|
@ -0,0 +1,20 @@ |
||||
--- a/net/mac80211/scan.c
|
||||
+++ b/net/mac80211/scan.c
|
||||
@@ -287,8 +287,6 @@ void ieee80211_scan_completed(struct iee
|
||||
local->scanning = 0;
|
||||
local->scan_channel = NULL;
|
||||
|
||||
- drv_sw_scan_complete(local);
|
||||
-
|
||||
/* we only have to protect scan_req and hw/sw scan */
|
||||
mutex_unlock(&local->scan_mtx);
|
||||
|
||||
@@ -298,6 +296,8 @@ void ieee80211_scan_completed(struct iee
|
||||
|
||||
ieee80211_configure_filter(local);
|
||||
|
||||
+ drv_sw_scan_complete(local);
|
||||
+
|
||||
ieee80211_offchannel_return(local, true);
|
||||
|
||||
done:
|
Loading…
Reference in new issue