mac80211: update to wireless-testing 2010-06-28

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21988 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Felix Fietkau 2010-06-30 00:10:38 +00:00
parent c0edae12e1
commit 601604de20
20 changed files with 33 additions and 98 deletions

View File

@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211 PKG_NAME:=mac80211
PKG_VERSION:=2010-06-15 PKG_VERSION:=2010-06-28
PKG_RELEASE:=1 PKG_RELEASE:=1
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:=7d18106ca78213bf9ce27406cd79458c PKG_MD5SUM:=10100e68991ed0749ee52cfc1704966b
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)

View File

@ -1,6 +1,6 @@
--- a/config.mk --- a/config.mk
+++ b/config.mk +++ b/config.mk
@@ -257,8 +257,8 @@ endif @@ -268,8 +268,8 @@ endif
CONFIG_P54_PCI=m CONFIG_P54_PCI=m

View File

@ -9,7 +9,7 @@
ifeq ($(CONFIG_MAC80211),y) ifeq ($(CONFIG_MAC80211),y)
$(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular") $(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular")
@@ -488,8 +488,8 @@ endif @@ -495,8 +495,8 @@ endif
# We need the backported rfkill module on kernel < 2.6.31. # We need the backported rfkill module on kernel < 2.6.31.
# In more recent kernel versions use the in kernel rfkill module. # In more recent kernel versions use the in kernel rfkill module.
ifdef CONFIG_COMPAT_KERNEL_31 ifdef CONFIG_COMPAT_KERNEL_31

View File

@ -19,7 +19,7 @@
else else
include $(KLIB_BUILD)/.config include $(KLIB_BUILD)/.config
endif endif
@@ -240,21 +239,6 @@ CONFIG_IPW2200_QOS=y @@ -251,21 +250,6 @@ CONFIG_IPW2200_QOS=y
# #
# % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface # % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
@ -41,7 +41,7 @@
CONFIG_P54_PCI=m CONFIG_P54_PCI=m
# CONFIG_B44=m # CONFIG_B44=m
@@ -418,7 +402,6 @@ endif # end of SPI driver list @@ -429,7 +413,6 @@ endif # end of SPI driver list
ifneq ($(CONFIG_MMC),) ifneq ($(CONFIG_MMC),)

View File

@ -1,6 +1,6 @@
--- a/config.mk --- a/config.mk
+++ b/config.mk +++ b/config.mk
@@ -271,13 +271,13 @@ endif @@ -282,13 +282,13 @@ endif
CONFIG_MWL8K=m CONFIG_MWL8K=m
# Ethernet drivers go here # Ethernet drivers go here
@ -19,7 +19,7 @@
endif endif
CONFIG_HERMES=m CONFIG_HERMES=m
@@ -331,10 +331,10 @@ CONFIG_USB_NET_COMPAT_RNDIS_HOST=n @@ -342,10 +342,10 @@ CONFIG_USB_NET_COMPAT_RNDIS_HOST=n
CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n CONFIG_USB_NET_COMPAT_RNDIS_WLAN=n
CONFIG_USB_NET_COMPAT_CDCETHER=n CONFIG_USB_NET_COMPAT_CDCETHER=n
else else

View File

@ -9,7 +9,7 @@
else else
include $(KLIB_BUILD)/.config include $(KLIB_BUILD)/.config
endif endif
@@ -181,7 +181,7 @@ CONFIG_B43=m @@ -192,7 +192,7 @@ CONFIG_B43=m
CONFIG_B43_HWRNG=y CONFIG_B43_HWRNG=y
CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCI_AUTOSELECT=y
ifneq ($(CONFIG_PCMCIA),) ifneq ($(CONFIG_PCMCIA),)

View File

@ -1,6 +1,6 @@
--- a/config.mk --- a/config.mk
+++ b/config.mk +++ b/config.mk
@@ -387,7 +387,7 @@ endif # end of SPI driver list @@ -398,7 +398,7 @@ endif # end of SPI driver list
ifneq ($(CONFIG_MMC),) ifneq ($(CONFIG_MMC),)
@ -8,4 +8,4 @@
+# CONFIG_B43_SDIO=y +# CONFIG_B43_SDIO=y
CONFIG_WL1251_SDIO=m CONFIG_WL1251_SDIO=m
ifneq ($(CONFIG_ARM),) ifndef CONFIG_COMPAT_KERNEL_32

View File

@ -1,6 +1,6 @@
--- a/config.mk --- a/config.mk
+++ b/config.mk +++ b/config.mk
@@ -185,7 +185,7 @@ ifneq ($(CONFIG_PCMCIA),) @@ -196,7 +196,7 @@ ifneq ($(CONFIG_PCMCIA),)
endif endif
CONFIG_B43_LEDS=y CONFIG_B43_LEDS=y
CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_LP=y

View File

@ -1,6 +1,6 @@
--- a/config.mk --- a/config.mk
+++ b/config.mk +++ b/config.mk
@@ -233,12 +233,12 @@ CONFIG_RTL8180=m @@ -244,12 +244,12 @@ CONFIG_RTL8180=m
CONFIG_ADM8211=m CONFIG_ADM8211=m
@ -15,7 +15,7 @@
# CONFIG_RT2800PCI_RT30XX=y # CONFIG_RT2800PCI_RT30XX=y
# CONFIG_RT2800PCI_RT35XX=y # CONFIG_RT2800PCI_RT35XX=y
# CONFIG_RT2800PCI_SOC=y # CONFIG_RT2800PCI_SOC=y
@@ -344,7 +344,7 @@ CONFIG_RT2800USB_RT30XX=y @@ -355,7 +355,7 @@ CONFIG_RT2800USB_RT30XX=y
CONFIG_RT2800USB_RT35XX=y CONFIG_RT2800USB_RT35XX=y
CONFIG_RT2800USB_UNKNOWN=y CONFIG_RT2800USB_UNKNOWN=y
endif endif

View File

@ -11,7 +11,7 @@
{ {
--- a/compat/compat-2.6.29.c --- a/compat/compat-2.6.29.c
+++ b/compat/compat-2.6.29.c +++ b/compat/compat-2.6.29.c
@@ -50,7 +50,7 @@ void netdev_attach_ops(struct net_device @@ -51,7 +51,7 @@ void netdev_attach_ops(struct net_device
EXPORT_SYMBOL(netdev_attach_ops); EXPORT_SYMBOL(netdev_attach_ops);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23))

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/gpio.c --- a/drivers/net/wireless/ath/ath9k/gpio.c
+++ b/drivers/net/wireless/ath/ath9k/gpio.c +++ b/drivers/net/wireless/ath/ath9k/gpio.c
@@ -119,6 +119,9 @@ static void ath_unregister_led(struct at @@ -120,6 +120,9 @@ static void ath_unregister_led(struct at
void ath_deinit_leds(struct ath_softc *sc) void ath_deinit_leds(struct ath_softc *sc)
{ {
@ -10,7 +10,7 @@
ath_unregister_led(&sc->assoc_led); ath_unregister_led(&sc->assoc_led);
sc->sc_flags &= ~SC_OP_LED_ASSOCIATED; sc->sc_flags &= ~SC_OP_LED_ASSOCIATED;
ath_unregister_led(&sc->tx_led); ath_unregister_led(&sc->tx_led);
@@ -132,6 +135,9 @@ void ath_init_leds(struct ath_softc *sc) @@ -133,6 +136,9 @@ void ath_init_leds(struct ath_softc *sc)
char *trigger; char *trigger;
int ret; int ret;

View File

@ -8,7 +8,7 @@
#include <asm/unaligned.h> #include <asm/unaligned.h>
#include "hw.h" #include "hw.h"
@@ -450,8 +451,16 @@ static int ath9k_hw_init_macaddr(struct @@ -451,8 +452,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

@ -10,7 +10,7 @@
--- a/drivers/net/wireless/ath/ath9k/init.c --- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -534,6 +534,7 @@ static int ath9k_init_softc(u16 devid, s @@ -538,6 +538,7 @@ static int ath9k_init_softc(u16 devid, s
{ {
struct ath_hw *ah = NULL; struct ath_hw *ah = NULL;
struct ath_common *common; struct ath_common *common;
@ -18,7 +18,7 @@
int ret = 0, i; int ret = 0, i;
int csz = 0; int csz = 0;
@@ -545,6 +546,10 @@ static int ath9k_init_softc(u16 devid, s @@ -549,6 +550,10 @@ static int ath9k_init_softc(u16 devid, s
ah->hw_version.subsysid = subsysid; ah->hw_version.subsysid = subsysid;
sc->sc_ah = ah; sc->sc_ah = ah;
@ -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
@@ -421,10 +421,6 @@ static void ath9k_hw_init_defaults(struc @@ -422,10 +422,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"
@@ -435,18 +437,23 @@ static void ath9k_hw_init_defaults(struc @@ -436,18 +438,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
@@ -1401,7 +1401,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st @@ -1407,7 +1407,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

@ -8,7 +8,7 @@
#include "ath9k.h" #include "ath9k.h"
static char *dev_info = "ath9k"; static char *dev_info = "ath9k";
@@ -549,6 +550,8 @@ static int ath9k_init_softc(u16 devid, s @@ -553,6 +554,8 @@ static int ath9k_init_softc(u16 devid, s
pdata = (struct ath9k_platform_data *) sc->dev->platform_data; pdata = (struct ath9k_platform_data *) sc->dev->platform_data;
if (!pdata) if (!pdata)
ah->ah_flags |= AH_USE_EEPROM; ah->ah_flags |= AH_USE_EEPROM;
@ -17,7 +17,7 @@
common = ath9k_hw_common(ah); common = ath9k_hw_common(ah);
common->ops = &ath9k_common_ops; common->ops = &ath9k_common_ops;
@@ -671,6 +674,24 @@ void ath9k_set_hw_capab(struct ath_softc @@ -675,6 +678,24 @@ void ath9k_set_hw_capab(struct ath_softc
SET_IEEE80211_PERM_ADDR(hw, common->macaddr); SET_IEEE80211_PERM_ADDR(hw, common->macaddr);
} }
@ -42,7 +42,7 @@
int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid, int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid,
const struct ath_bus_ops *bus_ops) const struct ath_bus_ops *bus_ops)
{ {
@@ -689,6 +710,9 @@ int ath9k_init_device(u16 devid, struct @@ -693,6 +714,9 @@ int ath9k_init_device(u16 devid, struct
common = ath9k_hw_common(ah); common = ath9k_hw_common(ah);
ath9k_set_hw_capab(sc, hw); ath9k_set_hw_capab(sc, hw);
@ -54,7 +54,7 @@
ath9k_reg_notifier); ath9k_reg_notifier);
--- a/drivers/net/wireless/ath/ath9k/ath9k.h --- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -591,6 +591,8 @@ struct ath_softc { @@ -594,6 +594,8 @@ struct ath_softc {
int beacon_interval; int beacon_interval;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/gpio.c --- a/drivers/net/wireless/ath/ath9k/gpio.c
+++ b/drivers/net/wireless/ath/ath9k/gpio.c +++ b/drivers/net/wireless/ath/ath9k/gpio.c
@@ -138,7 +138,9 @@ void ath_init_leds(struct ath_softc *sc) @@ -139,7 +139,9 @@ void ath_init_leds(struct ath_softc *sc)
if (AR_SREV_9100(sc->sc_ah)) if (AR_SREV_9100(sc->sc_ah))
return; return;
@ -13,7 +13,7 @@
sc->sc_ah->led_pin = ATH_LED_PIN_DEF; sc->sc_ah->led_pin = ATH_LED_PIN_DEF;
--- a/drivers/net/wireless/ath/ath9k/ath9k.h --- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -463,6 +463,7 @@ void ath9k_btcoex_timer_pause(struct ath @@ -466,6 +466,7 @@ void ath9k_btcoex_timer_pause(struct ath
#define ATH_LED_PIN_DEF 1 #define ATH_LED_PIN_DEF 1
#define ATH_LED_PIN_9287 8 #define ATH_LED_PIN_9287 8

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath9k/init.c --- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -655,7 +655,11 @@ void ath9k_set_hw_capab(struct ath_softc @@ -659,7 +659,11 @@ void ath9k_set_hw_capab(struct ath_softc
hw->sta_data_size = sizeof(struct ath_node); hw->sta_data_size = sizeof(struct ath_node);
hw->vif_data_size = sizeof(struct ath_vif); hw->vif_data_size = sizeof(struct ath_vif);

View File

@ -1,62 +0,0 @@
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -328,6 +328,7 @@ static void ath_tx_complete_aggr(struct
u32 ba[WME_BA_BMP_SIZE >> 5];
int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0;
bool rc_update = true;
+ struct ieee80211_tx_rate rates[4];
skb = bf->bf_mpdu;
hdr = (struct ieee80211_hdr *)skb->data;
@@ -335,6 +336,8 @@ static void ath_tx_complete_aggr(struct
tx_info = IEEE80211_SKB_CB(skb);
hw = bf->aphy->hw;
+ memcpy(rates, tx_info->control.rates, sizeof(rates));
+
rcu_read_lock();
/* XXX: use ieee80211_find_sta! */
@@ -375,6 +378,9 @@ static void ath_tx_complete_aggr(struct
txfail = txpending = 0;
bf_next = bf->bf_next;
+ skb = bf->bf_mpdu;
+ tx_info = IEEE80211_SKB_CB(skb);
+
if (ATH_BA_ISSET(ba, ATH_BA_INDEX(seq_st, bf->bf_seqno))) {
/* transmit completion, subframe is
* acked by block ack */
@@ -428,6 +434,7 @@ static void ath_tx_complete_aggr(struct
spin_unlock_bh(&txq->axq_lock);
if (rc_update && (acked_cnt == 1 || txfail_cnt == 1)) {
+ memcpy(tx_info->control.rates, rates, sizeof(rates));
ath_tx_rc_status(bf, ts, nbad, txok, true);
rc_update = false;
} else {
@@ -2014,7 +2021,7 @@ static void ath_tx_rc_status(struct ath_
tx_info->status.rates[i].idx = -1;
}
- tx_info->status.rates[tx_rateindex].count = bf->bf_retries + 1;
+ tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1;
}
static void ath_wake_mac80211_queue(struct ath_softc *sc, struct ath_txq *txq)
@@ -2125,7 +2132,6 @@ static void ath_tx_processq(struct ath_s
* This frame is sent out as a single frame.
* Use hardware retry status for this frame.
*/
- bf->bf_retries = ts.ts_longretry;
if (ts.ts_status & ATH9K_TXERR_XRETRY)
bf->bf_state.bf_type |= BUF_XRETRY;
ath_tx_rc_status(bf, &ts, 0, txok, true);
@@ -2255,7 +2261,6 @@ void ath_tx_edma_tasklet(struct ath_soft
}
if (!bf_isampdu(bf)) {
- bf->bf_retries = txs.ts_longretry;
if (txs.ts_status & ATH9K_TXERR_XRETRY)
bf->bf_state.bf_type |= BUF_XRETRY;
ath_tx_rc_status(bf, &txs, 0, txok, true);

View File

@ -1,8 +1,6 @@
Index: compat-wireless-2010-06-10/drivers/net/wireless/rt2x00/rt2x00pci.c --- a/drivers/net/wireless/rt2x00/rt2x00pci.c
=================================================================== +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
--- compat-wireless-2010-06-10.orig/drivers/net/wireless/rt2x00/rt2x00pci.c 2010-06-20 15:01:59.000000000 +0200 @@ -327,8 +327,10 @@ int rt2x00pci_probe(struct pci_dev *pci_
+++ compat-wireless-2010-06-10/drivers/net/wireless/rt2x00/rt2x00pci.c 2010-06-20 15:02:32.000000000 +0200
@@ -327,8 +327,10 @@
pci_set_master(pci_dev); pci_set_master(pci_dev);
@ -13,4 +11,3 @@ Index: compat-wireless-2010-06-10/drivers/net/wireless/rt2x00/rt2x00pci.c
if (dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(32))) { if (dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(32))) {
ERROR_PROBE("PCI DMA not supported.\n"); ERROR_PROBE("PCI DMA not supported.\n");