mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-25 10:45:11 +02:00
mac80211: update to wireless-testing 2010-03-03
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20032 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
34cb0380a2
commit
cdd6a4a8bc
@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||||||
|
|
||||||
PKG_NAME:=mac80211
|
PKG_NAME:=mac80211
|
||||||
|
|
||||||
PKG_VERSION:=2010-02-16
|
PKG_VERSION:=2010-03-03
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=3
|
||||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||||
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
|
# http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
|
||||||
# http://wireless.kernel.org/download/compat-wireless-2.6
|
# http://wireless.kernel.org/download/compat-wireless-2.6
|
||||||
PKG_MD5SUM:=190060a705c2b78e9b0bc873a8803b37
|
PKG_MD5SUM:=af8da65ca4c25b1b69e3d2896d2bbb2f
|
||||||
|
|
||||||
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
||||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
#include <pcmcia/cs_types.h>
|
#include <pcmcia/cs_types.h>
|
||||||
#include <pcmcia/cistpl.h>
|
#include <pcmcia/cistpl.h>
|
||||||
#include <pcmcia/ds.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;
|
return skb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/net/wireless/nl80211.c
|
--- a/net/wireless/nl80211.c
|
||||||
+++ b/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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
+#include <linux/ath9k_platform.h>
|
+#include <linux/ath9k_platform.h>
|
||||||
#include "ath9k.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
|
@@ -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)
|
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
|
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||||
+++ b/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) {
|
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);
|
||||||
|
@ -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)
|
mac80211-$(CONFIG_MAC80211_RC_MINSTREL) += $(rc80211_minstrel-y)
|
||||||
--- a/net/mac80211/main.c
|
--- a/net/mac80211/main.c
|
||||||
+++ b/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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -24,7 +24,7 @@
|
|||||||
ret = rc80211_pid_init();
|
ret = rc80211_pid_init();
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_pid;
|
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:
|
err_netdev:
|
||||||
rc80211_pid_exit();
|
rc80211_pid_exit();
|
||||||
err_pid:
|
err_pid:
|
||||||
@ -33,7 +33,7 @@
|
|||||||
rc80211_minstrel_exit();
|
rc80211_minstrel_exit();
|
||||||
|
|
||||||
return ret;
|
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)
|
static void __exit ieee80211_exit(void)
|
||||||
{
|
{
|
||||||
rc80211_pid_exit();
|
rc80211_pid_exit();
|
||||||
@ -43,7 +43,7 @@
|
|||||||
/*
|
/*
|
||||||
--- a/net/mac80211/rate.h
|
--- a/net/mac80211/rate.h
|
||||||
+++ b/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
|
#ifdef CONFIG_MAC80211_RC_MINSTREL
|
||||||
extern int rc80211_minstrel_init(void);
|
extern int rc80211_minstrel_init(void);
|
||||||
extern void rc80211_minstrel_exit(void);
|
extern void rc80211_minstrel_exit(void);
|
||||||
@ -52,7 +52,7 @@
|
|||||||
#else
|
#else
|
||||||
static inline int rc80211_minstrel_init(void)
|
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)
|
static inline void rc80211_minstrel_exit(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user