mac80211: update to wireless-testing 2010-03-03
SVN-Revision: 20032
This commit is contained in:
parent
4437156961
commit
c5885e669e
13 changed files with 11 additions and 119 deletions
|
@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||
|
||||
PKG_NAME:=mac80211
|
||||
|
||||
PKG_VERSION:=2010-02-16
|
||||
PKG_VERSION:=2010-03-03
|
||||
PKG_RELEASE:=3
|
||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
|
||||
# http://wireless.kernel.org/download/compat-wireless-2.6
|
||||
PKG_MD5SUM:=190060a705c2b78e9b0bc873a8803b37
|
||||
PKG_MD5SUM:=af8da65ca4c25b1b69e3d2896d2bbb2f
|
||||
|
||||
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
#include <pcmcia/cs_types.h>
|
||||
#include <pcmcia/cistpl.h>
|
||||
#include <pcmcia/ds.h>
|
||||
@@ -68,9 +68,9 @@ static inline struct sk_buff *netdev_all
|
||||
@@ -70,9 +70,9 @@ static inline struct sk_buff *netdev_all
|
||||
return skb;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -5662,7 +5662,11 @@ int nl80211_send_action(struct cfg80211_
|
||||
@@ -5789,7 +5789,11 @@ int nl80211_send_action(struct cfg80211_
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
+#include <linux/ath9k_platform.h>
|
||||
#include "ath9k.h"
|
||||
|
||||
static struct pci_device_id ath_pci_id_table[] __devinitdata = {
|
||||
static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {
|
||||
@@ -52,21 +53,36 @@ static void ath_pci_read_cachesize(struc
|
||||
|
||||
static bool ath_pci_eeprom_read(struct ath_common *common, u32 off, u16 *data)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
@@ -2103,7 +2103,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
|
||||
@@ -2113,7 +2113,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);
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/rc.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/rc.c
|
||||
@@ -668,7 +668,7 @@ static void ath_get_rate(void *priv, str
|
||||
struct ieee80211_tx_rate *rates = tx_info->control.rates;
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
|
||||
__le16 fc = hdr->frame_control;
|
||||
- u8 try_per_rate, i = 0, rix, nrix;
|
||||
+ u8 try_per_rate, i = 0, rix;
|
||||
int is_probe = 0;
|
||||
|
||||
if (rate_control_send_low(sta, priv_sta, txrc))
|
||||
@@ -688,26 +688,25 @@ static void ath_get_rate(void *priv, str
|
||||
|
||||
rate_table = sc->cur_rate_table;
|
||||
rix = ath_rc_get_highest_rix(sc, ath_rc_priv, rate_table, &is_probe);
|
||||
- nrix = rix;
|
||||
|
||||
if (is_probe) {
|
||||
/* set one try for probe rates. For the
|
||||
* probes don't enable rts */
|
||||
ath_rc_rate_set_series(rate_table, &rates[i++], txrc,
|
||||
- 1, nrix, 0);
|
||||
+ 1, rix, 0);
|
||||
|
||||
/* Get the next tried/allowed rate. No RTS for the next series
|
||||
* after the probe rate
|
||||
*/
|
||||
- ath_rc_get_lower_rix(rate_table, ath_rc_priv, rix, &nrix);
|
||||
+ ath_rc_get_lower_rix(rate_table, ath_rc_priv, rix, &rix);
|
||||
ath_rc_rate_set_series(rate_table, &rates[i++], txrc,
|
||||
- try_per_rate, nrix, 0);
|
||||
+ try_per_rate, rix, 0);
|
||||
|
||||
tx_info->flags |= IEEE80211_TX_CTL_RATE_CTRL_PROBE;
|
||||
} else {
|
||||
/* Set the choosen rate. No RTS for first series entry. */
|
||||
ath_rc_rate_set_series(rate_table, &rates[i++], txrc,
|
||||
- try_per_rate, nrix, 0);
|
||||
+ try_per_rate, rix, 0);
|
||||
}
|
||||
|
||||
/* Fill in the other rates for multirate retry */
|
||||
@@ -716,10 +715,10 @@ static void ath_get_rate(void *priv, str
|
||||
if (i + 1 == 4)
|
||||
try_per_rate = 8;
|
||||
|
||||
- ath_rc_get_lower_rix(rate_table, ath_rc_priv, rix, &nrix);
|
||||
+ ath_rc_get_lower_rix(rate_table, ath_rc_priv, rix, &rix);
|
||||
/* All other rates in the series have RTS enabled */
|
||||
ath_rc_rate_set_series(rate_table, &rates[i], txrc,
|
||||
- try_per_rate, nrix, 1);
|
||||
+ try_per_rate, rix, 1);
|
||||
}
|
||||
|
||||
/*
|
|
@ -1,22 +0,0 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/beacon.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/beacon.c
|
||||
@@ -526,16 +526,13 @@ static void ath_beacon_config_ap(struct
|
||||
{
|
||||
u32 nexttbtt, intval;
|
||||
|
||||
- /* Configure the timers only when the TSF has to be reset */
|
||||
-
|
||||
- if (!(sc->sc_flags & SC_OP_TSF_RESET))
|
||||
- return;
|
||||
-
|
||||
/* NB: the beacon interval is kept internally in TU's */
|
||||
intval = conf->beacon_interval & ATH9K_BEACON_PERIOD;
|
||||
intval /= ATH_BCBUF; /* for staggered beacons */
|
||||
nexttbtt = intval;
|
||||
- intval |= ATH9K_BEACON_RESET_TSF;
|
||||
+
|
||||
+ if (sc->sc_flags & SC_OP_TSF_RESET)
|
||||
+ intval |= ATH9K_BEACON_RESET_TSF;
|
||||
|
||||
/*
|
||||
* In AP mode we enable the beacon timers and SWBA interrupts to
|
|
@ -1,31 +0,0 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
@@ -1326,6 +1326,16 @@ static void ath9k_hw_override_ini(struct
|
||||
* Necessary to avoid issues on AR5416 2.0
|
||||
*/
|
||||
REG_WRITE(ah, 0x9800 + (651 << 2), 0x11);
|
||||
+
|
||||
+ /*
|
||||
+ * Disable RIFS search on some chips to avoid baseband
|
||||
+ * hang issues.
|
||||
+ */
|
||||
+ if (AR_SREV_9100(ah) || AR_SREV_9160(ah)) {
|
||||
+ val = REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS);
|
||||
+ val &= ~AR_PHY_RIFS_INIT_DELAY;
|
||||
+ REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val);
|
||||
+ }
|
||||
}
|
||||
|
||||
static u32 ath9k_hw_def_ini_fixup(struct ath_hw *ah,
|
||||
--- a/drivers/net/wireless/ath/ath9k/phy.h
|
||||
+++ b/drivers/net/wireless/ath/ath9k/phy.h
|
||||
@@ -384,6 +384,9 @@ bool ath9k_hw_set_rf_regs(struct ath_hw
|
||||
|
||||
#define AR_PHY_HEAVY_CLIP_ENABLE 0x99E0
|
||||
|
||||
+#define AR_PHY_HEAVY_CLIP_FACTOR_RIFS 0x99EC
|
||||
+#define AR_PHY_RIFS_INIT_DELAY 0x03ff0000
|
||||
+
|
||||
#define AR_PHY_M_SLEEP 0x99f0
|
||||
#define AR_PHY_REFCLKDLY 0x99f4
|
||||
#define AR_PHY_REFCLKPD 0x99f8
|
|
@ -13,7 +13,7 @@
|
|||
mac80211-$(CONFIG_MAC80211_RC_MINSTREL) += $(rc80211_minstrel-y)
|
||||
--- a/net/mac80211/main.c
|
||||
+++ b/net/mac80211/main.c
|
||||
@@ -710,6 +710,10 @@ static int __init ieee80211_init(void)
|
||||
@@ -714,6 +714,10 @@ static int __init ieee80211_init(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
ret = rc80211_pid_init();
|
||||
if (ret)
|
||||
goto err_pid;
|
||||
@@ -722,6 +726,8 @@ static int __init ieee80211_init(void)
|
||||
@@ -726,6 +730,8 @@ static int __init ieee80211_init(void)
|
||||
err_netdev:
|
||||
rc80211_pid_exit();
|
||||
err_pid:
|
||||
|
@ -33,7 +33,7 @@
|
|||
rc80211_minstrel_exit();
|
||||
|
||||
return ret;
|
||||
@@ -730,6 +736,7 @@ static int __init ieee80211_init(void)
|
||||
@@ -734,6 +740,7 @@ static int __init ieee80211_init(void)
|
||||
static void __exit ieee80211_exit(void)
|
||||
{
|
||||
rc80211_pid_exit();
|
||||
|
@ -43,7 +43,7 @@
|
|||
/*
|
||||
--- a/net/mac80211/rate.h
|
||||
+++ b/net/mac80211/rate.h
|
||||
@@ -136,6 +136,8 @@ static inline void rc80211_pid_exit(void
|
||||
@@ -137,6 +137,8 @@ static inline void rc80211_pid_exit(void
|
||||
#ifdef CONFIG_MAC80211_RC_MINSTREL
|
||||
extern int rc80211_minstrel_init(void);
|
||||
extern void rc80211_minstrel_exit(void);
|
||||
|
@ -52,7 +52,7 @@
|
|||
#else
|
||||
static inline int rc80211_minstrel_init(void)
|
||||
{
|
||||
@@ -144,6 +146,13 @@ static inline int rc80211_minstrel_init(
|
||||
@@ -145,6 +147,13 @@ static inline int rc80211_minstrel_init(
|
||||
static inline void rc80211_minstrel_exit(void)
|
||||
{
|
||||
}
|
Loading…
Reference in a new issue