mac80211: update compat-wireless to 2009-03-07
SVN-Revision: 14795
This commit is contained in:
parent
58a11bcb40
commit
28f3acc031
9 changed files with 2 additions and 773 deletions
|
@ -17,12 +17,12 @@ ifneq ($(CONFIG_LINUX_2_6_21)$(CONFIG_LINUX_2_6_23)$(CONFIG_LINUX_2_6_24)$(CONFI
|
|||
PKG_MD5SUM:=9563ceeed86bca0859ad5f010623277c
|
||||
PATCH_DIR:=./patches-old
|
||||
else
|
||||
PKG_VERSION:=2009-03-05
|
||||
PKG_VERSION:=2009-03-07
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:= \
|
||||
http://www.orbit-lab.org/kernel/compat-wireless-2.6/2009/03 \
|
||||
http://wireless.kernel.org/download/compat-wireless-2.6
|
||||
PKG_MD5SUM:=3e96bcca2be64536e206e425f0f26cfd
|
||||
PKG_MD5SUM:=4cb60588d90cbb0eb573cddd669cf35b
|
||||
endif
|
||||
|
||||
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
||||
|
|
|
@ -1,116 +0,0 @@
|
|||
From 26f9e08ed236c602fa92b9de93b272f78cc4026b Mon Sep 17 00:00:00 2001
|
||||
From: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
Date: Wed, 4 Mar 2009 22:22:15 +0100
|
||||
Subject: [PATCH] rt2x00: Use rt2x00usb_register_multiwrite()
|
||||
|
||||
rt2x00usb.h contains a wrapper for writing multiple
|
||||
bytes to the hardware in a single action. Replace
|
||||
all individual calls to rt2x00usb_vendor_request_buff
|
||||
with rt2x00usb_register_multiwrite.
|
||||
|
||||
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2500usb.c | 9 ++-------
|
||||
drivers/net/wireless/rt2x00/rt73usb.c | 31 ++++++++-----------------------
|
||||
2 files changed, 10 insertions(+), 30 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
|
||||
@@ -348,7 +348,6 @@ static int rt2500usb_config_key(struct r
|
||||
struct rt2x00lib_crypto *crypto,
|
||||
struct ieee80211_key_conf *key)
|
||||
{
|
||||
- int timeout;
|
||||
u32 mask;
|
||||
u16 reg;
|
||||
|
||||
@@ -376,12 +375,8 @@ static int rt2500usb_config_key(struct r
|
||||
* rt2x00usb_vendor_request() to send the key to the hardware.
|
||||
*/
|
||||
reg = KEY_ENTRY(key->hw_key_idx);
|
||||
- timeout = REGISTER_TIMEOUT32(sizeof(crypto->key));
|
||||
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
||||
- USB_VENDOR_REQUEST_OUT, reg,
|
||||
- crypto->key,
|
||||
- sizeof(crypto->key),
|
||||
- timeout);
|
||||
+ rt2500usb_register_multiwrite(rt2x00dev, reg,
|
||||
+ crypto->key, sizeof(crypto->key));
|
||||
|
||||
/*
|
||||
* The driver does not support the IV/EIV generation
|
||||
--- a/drivers/net/wireless/rt2x00/rt73usb.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
|
||||
@@ -273,7 +273,6 @@ static int rt73usb_config_shared_key(str
|
||||
{
|
||||
struct hw_key_entry key_entry;
|
||||
struct rt2x00_field32 field;
|
||||
- int timeout;
|
||||
u32 mask;
|
||||
u32 reg;
|
||||
|
||||
@@ -309,12 +308,8 @@ static int rt73usb_config_shared_key(str
|
||||
sizeof(key_entry.rx_mic));
|
||||
|
||||
reg = SHARED_KEY_ENTRY(key->hw_key_idx);
|
||||
- timeout = REGISTER_TIMEOUT32(sizeof(key_entry));
|
||||
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
||||
- USB_VENDOR_REQUEST_OUT, reg,
|
||||
- &key_entry,
|
||||
- sizeof(key_entry),
|
||||
- timeout);
|
||||
+ rt2x00usb_register_multiwrite(rt2x00dev, reg,
|
||||
+ &key_entry, sizeof(key_entry));
|
||||
|
||||
/*
|
||||
* The cipher types are stored over 2 registers.
|
||||
@@ -375,7 +370,6 @@ static int rt73usb_config_pairwise_key(s
|
||||
{
|
||||
struct hw_pairwise_ta_entry addr_entry;
|
||||
struct hw_key_entry key_entry;
|
||||
- int timeout;
|
||||
u32 mask;
|
||||
u32 reg;
|
||||
|
||||
@@ -410,12 +404,8 @@ static int rt73usb_config_pairwise_key(s
|
||||
sizeof(key_entry.rx_mic));
|
||||
|
||||
reg = PAIRWISE_KEY_ENTRY(key->hw_key_idx);
|
||||
- timeout = REGISTER_TIMEOUT32(sizeof(key_entry));
|
||||
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
||||
- USB_VENDOR_REQUEST_OUT, reg,
|
||||
- &key_entry,
|
||||
- sizeof(key_entry),
|
||||
- timeout);
|
||||
+ rt2x00usb_register_multiwrite(rt2x00dev, reg,
|
||||
+ &key_entry, sizeof(key_entry));
|
||||
|
||||
/*
|
||||
* Send the address and cipher type to the hardware register.
|
||||
@@ -1112,11 +1102,8 @@ static int rt73usb_load_firmware(struct
|
||||
/*
|
||||
* Write firmware to device.
|
||||
*/
|
||||
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
||||
- USB_VENDOR_REQUEST_OUT,
|
||||
- FIRMWARE_IMAGE_BASE,
|
||||
- data, len,
|
||||
- REGISTER_TIMEOUT32(len));
|
||||
+ rt2x00usb_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE,
|
||||
+ (void *)data, len);
|
||||
|
||||
/*
|
||||
* Send firmware request to device to load firmware,
|
||||
@@ -1554,10 +1541,8 @@ static void rt73usb_write_beacon(struct
|
||||
* Write entire beacon with descriptor to register.
|
||||
*/
|
||||
beacon_base = HW_BEACON_OFFSET(entry->entry_idx);
|
||||
- rt2x00usb_vendor_request_large_buff(rt2x00dev, USB_MULTI_WRITE,
|
||||
- USB_VENDOR_REQUEST_OUT, beacon_base,
|
||||
- entry->skb->data, entry->skb->len,
|
||||
- REGISTER_TIMEOUT32(entry->skb->len));
|
||||
+ rt2x00usb_register_multiwrite(rt2x00dev, beacon_base,
|
||||
+ entry->skb->data, entry->skb->len);
|
||||
|
||||
/*
|
||||
* Clean up the beacon skb.
|
|
@ -1,141 +0,0 @@
|
|||
From 8f94fb99b3f88aeff95743633afcc88147b7a475 Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Thu, 5 Mar 2009 15:07:10 +0100
|
||||
Subject: [PATCH] ath9k: create a common debugfs_root for all device instances
|
||||
|
||||
The driver are trying to create an 'ath9k' directory in debugfs for each
|
||||
device currently. If there are more than one device in the system, the
|
||||
second try will always fail.
|
||||
|
||||
Changes-licensed-under: ISC
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/debug.c | 24 ++++++++++++++++++------
|
||||
drivers/net/wireless/ath9k/debug.h | 12 +++++++++++-
|
||||
drivers/net/wireless/ath9k/main.c | 13 ++++++++++++-
|
||||
3 files changed, 41 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/debug.c
|
||||
+++ b/drivers/net/wireless/ath9k/debug.c
|
||||
@@ -19,6 +19,8 @@
|
||||
static unsigned int ath9k_debug = DBG_DEFAULT;
|
||||
module_param_named(debug, ath9k_debug, uint, 0);
|
||||
|
||||
+static struct dentry *ath9k_debugfs_root;
|
||||
+
|
||||
void DPRINTF(struct ath_softc *sc, int dbg_mask, const char *fmt, ...)
|
||||
{
|
||||
if (!sc)
|
||||
@@ -491,12 +493,8 @@ int ath9k_init_debug(struct ath_softc *s
|
||||
{
|
||||
sc->debug.debug_mask = ath9k_debug;
|
||||
|
||||
- sc->debug.debugfs_root = debugfs_create_dir(KBUILD_MODNAME, NULL);
|
||||
- if (!sc->debug.debugfs_root)
|
||||
- goto err;
|
||||
-
|
||||
sc->debug.debugfs_phy = debugfs_create_dir(wiphy_name(sc->hw->wiphy),
|
||||
- sc->debug.debugfs_root);
|
||||
+ ath9k_debugfs_root);
|
||||
if (!sc->debug.debugfs_phy)
|
||||
goto err;
|
||||
|
||||
@@ -538,5 +536,19 @@ void ath9k_exit_debug(struct ath_softc *
|
||||
debugfs_remove(sc->debug.debugfs_interrupt);
|
||||
debugfs_remove(sc->debug.debugfs_dma);
|
||||
debugfs_remove(sc->debug.debugfs_phy);
|
||||
- debugfs_remove(sc->debug.debugfs_root);
|
||||
+}
|
||||
+
|
||||
+int ath9k_debug_create_root(void)
|
||||
+{
|
||||
+ ath9k_debugfs_root = debugfs_create_dir(KBUILD_MODNAME, NULL);
|
||||
+ if (!ath9k_debugfs_root)
|
||||
+ return -ENOENT;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void ath9k_debug_remove_root(void)
|
||||
+{
|
||||
+ debugfs_remove(ath9k_debugfs_root);
|
||||
+ ath9k_debugfs_root = NULL;
|
||||
}
|
||||
--- a/drivers/net/wireless/ath9k/debug.h
|
||||
+++ b/drivers/net/wireless/ath9k/debug.h
|
||||
@@ -102,7 +102,6 @@ struct ath_stats {
|
||||
|
||||
struct ath9k_debug {
|
||||
int debug_mask;
|
||||
- struct dentry *debugfs_root;
|
||||
struct dentry *debugfs_phy;
|
||||
struct dentry *debugfs_dma;
|
||||
struct dentry *debugfs_interrupt;
|
||||
@@ -114,6 +113,8 @@ struct ath9k_debug {
|
||||
void DPRINTF(struct ath_softc *sc, int dbg_mask, const char *fmt, ...);
|
||||
int ath9k_init_debug(struct ath_softc *sc);
|
||||
void ath9k_exit_debug(struct ath_softc *sc);
|
||||
+int ath9k_debug_create_root(void);
|
||||
+void ath9k_debug_remove_root(void);
|
||||
void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status);
|
||||
void ath_debug_stat_rc(struct ath_softc *sc, struct sk_buff *skb);
|
||||
void ath_debug_stat_retries(struct ath_softc *sc, int rix,
|
||||
@@ -135,6 +136,15 @@ static inline void ath9k_exit_debug(stru
|
||||
{
|
||||
}
|
||||
|
||||
+static inline int ath9k_debug_create_root(void)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static inline void ath9k_debug_remove_root(void)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
static inline void ath_debug_stat_interrupt(struct ath_softc *sc,
|
||||
enum ath9k_int status)
|
||||
{
|
||||
--- a/drivers/net/wireless/ath9k/main.c
|
||||
+++ b/drivers/net/wireless/ath9k/main.c
|
||||
@@ -2864,12 +2864,20 @@ static int __init ath9k_init(void)
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
+ error = ath9k_debug_create_root();
|
||||
+ if (error) {
|
||||
+ printk(KERN_ERR
|
||||
+ "ath9k: Unable to create debugfs root: %d\n",
|
||||
+ error);
|
||||
+ goto err_rate_unregister;
|
||||
+ }
|
||||
+
|
||||
error = ath_pci_init();
|
||||
if (error < 0) {
|
||||
printk(KERN_ERR
|
||||
"ath9k: No PCI devices found, driver not installed.\n");
|
||||
error = -ENODEV;
|
||||
- goto err_rate_unregister;
|
||||
+ goto err_remove_root;
|
||||
}
|
||||
|
||||
error = ath_ahb_init();
|
||||
@@ -2883,6 +2891,8 @@ static int __init ath9k_init(void)
|
||||
err_pci_exit:
|
||||
ath_pci_exit();
|
||||
|
||||
+ err_remove_root:
|
||||
+ ath9k_debug_remove_root();
|
||||
err_rate_unregister:
|
||||
ath_rate_control_unregister();
|
||||
err_out:
|
||||
@@ -2894,6 +2904,7 @@ static void __exit ath9k_exit(void)
|
||||
{
|
||||
ath_ahb_exit();
|
||||
ath_pci_exit();
|
||||
+ ath9k_debug_remove_root();
|
||||
ath_rate_control_unregister();
|
||||
printk(KERN_INFO "%s: Driver unloaded\n", dev_info);
|
||||
}
|
|
@ -1,161 +0,0 @@
|
|||
From 0f1a8ac314c886aa3a4c14e3d868207483ad343c Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Thu, 5 Mar 2009 10:18:35 +0100
|
||||
Subject: [PATCH v2 1/3] ath9k: cleanup AR5416 version checking macros
|
||||
|
||||
Currently we have two different versions of this macros. Because they
|
||||
would have to do the same thing, we should simplify and merge them.
|
||||
|
||||
Changes-licensed-under: ISC
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/eeprom.c | 16 ++++++++--------
|
||||
drivers/net/wireless/ath9k/hw.c | 4 ++--
|
||||
drivers/net/wireless/ath9k/mac.h | 2 +-
|
||||
drivers/net/wireless/ath9k/reg.h | 19 +++++++++++--------
|
||||
4 files changed, 22 insertions(+), 19 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/eeprom.c
|
||||
+++ b/drivers/net/wireless/ath9k/eeprom.c
|
||||
@@ -640,7 +640,7 @@ static void ath9k_hw_get_4k_gain_boundar
|
||||
pPdGainBoundaries[i] =
|
||||
min((u16)AR5416_MAX_RATE_POWER, pPdGainBoundaries[i]);
|
||||
|
||||
- if ((i == 0) && !AR_SREV_5416_V20_OR_LATER(ah)) {
|
||||
+ if ((i == 0) && !AR_SREV_5416_20_OR_LATER(ah)) {
|
||||
minDelta = pPdGainBoundaries[0] - 23;
|
||||
pPdGainBoundaries[0] = 23;
|
||||
} else {
|
||||
@@ -755,7 +755,7 @@ static bool ath9k_hw_set_4k_power_cal_ta
|
||||
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3, 0);
|
||||
|
||||
for (i = 0; i < AR5416_MAX_CHAINS; i++) {
|
||||
- if (AR_SREV_5416_V20_OR_LATER(ah) &&
|
||||
+ if (AR_SREV_5416_20_OR_LATER(ah) &&
|
||||
(ah->rxchainmask == 5 || ah->txchainmask == 5) &&
|
||||
(i != 0)) {
|
||||
regChainOffset = (i == 1) ? 0x2000 : 0x1000;
|
||||
@@ -771,7 +771,7 @@ static bool ath9k_hw_set_4k_power_cal_ta
|
||||
&tMinCalPower, gainBoundaries,
|
||||
pdadcValues, numXpdGain);
|
||||
|
||||
- if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) {
|
||||
+ if ((i == 0) || AR_SREV_5416_20_OR_LATER(ah)) {
|
||||
REG_WRITE(ah, AR_PHY_TPCRG5 + regChainOffset,
|
||||
SM(pdGainOverlap_t2,
|
||||
AR_PHY_TPCRG5_PD_GAIN_OVERLAP)
|
||||
@@ -1707,7 +1707,7 @@ static bool ath9k_hw_def_set_board_value
|
||||
break;
|
||||
}
|
||||
|
||||
- if (AR_SREV_5416_V20_OR_LATER(ah) &&
|
||||
+ if (AR_SREV_5416_20_OR_LATER(ah) &&
|
||||
(ah->rxchainmask == 5 || ah->txchainmask == 5)
|
||||
&& (i != 0))
|
||||
regChainOffset = (i == 1) ? 0x2000 : 0x1000;
|
||||
@@ -1728,7 +1728,7 @@ static bool ath9k_hw_def_set_board_value
|
||||
SM(pModal->iqCalQCh[i],
|
||||
AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF));
|
||||
|
||||
- if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) {
|
||||
+ if ((i == 0) || AR_SREV_5416_20_OR_LATER(ah)) {
|
||||
if (AR5416_VER_MASK >= AR5416_EEP_MINOR_VER_3) {
|
||||
txRxAttenLocal = pModal->txRxAttenCh[i];
|
||||
if (AR_SREV_9280_10_OR_LATER(ah)) {
|
||||
@@ -2094,7 +2094,7 @@ static void ath9k_hw_get_def_gain_bounda
|
||||
pPdGainBoundaries[i] =
|
||||
min((u16)AR5416_MAX_RATE_POWER, pPdGainBoundaries[i]);
|
||||
|
||||
- if ((i == 0) && !AR_SREV_5416_V20_OR_LATER(ah)) {
|
||||
+ if ((i == 0) && !AR_SREV_5416_20_OR_LATER(ah)) {
|
||||
minDelta = pPdGainBoundaries[0] - 23;
|
||||
pPdGainBoundaries[0] = 23;
|
||||
} else {
|
||||
@@ -2228,7 +2228,7 @@ static bool ath9k_hw_set_def_power_cal_t
|
||||
xpdGainValues[2]);
|
||||
|
||||
for (i = 0; i < AR5416_MAX_CHAINS; i++) {
|
||||
- if (AR_SREV_5416_V20_OR_LATER(ah) &&
|
||||
+ if (AR_SREV_5416_20_OR_LATER(ah) &&
|
||||
(ah->rxchainmask == 5 || ah->txchainmask == 5) &&
|
||||
(i != 0)) {
|
||||
regChainOffset = (i == 1) ? 0x2000 : 0x1000;
|
||||
@@ -2262,7 +2262,7 @@ static bool ath9k_hw_set_def_power_cal_t
|
||||
numXpdGain);
|
||||
}
|
||||
|
||||
- if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) {
|
||||
+ if ((i == 0) || AR_SREV_5416_20_OR_LATER(ah)) {
|
||||
if (OLC_FOR_AR9280_20_LATER) {
|
||||
REG_WRITE(ah,
|
||||
AR_PHY_TPCRG5 + regChainOffset,
|
||||
--- a/drivers/net/wireless/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath9k/hw.c
|
||||
@@ -1160,7 +1160,7 @@ static void ath9k_hw_override_ini(struct
|
||||
REG_SET_BIT(ah, AR_DIAG_SW, (AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT));
|
||||
|
||||
|
||||
- if (!AR_SREV_5416_V20_OR_LATER(ah) ||
|
||||
+ if (!AR_SREV_5416_20_OR_LATER(ah) ||
|
||||
AR_SREV_9280_10_OR_LATER(ah))
|
||||
return;
|
||||
|
||||
@@ -1262,7 +1262,7 @@ static int ath9k_hw_process_ini(struct a
|
||||
REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_EXTERNAL_RADIO);
|
||||
ah->eep_ops->set_addac(ah, chan);
|
||||
|
||||
- if (AR_SREV_5416_V22_OR_LATER(ah)) {
|
||||
+ if (AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
|
||||
} else {
|
||||
struct ar5416IniArray temp;
|
||||
--- a/drivers/net/wireless/ath9k/mac.h
|
||||
+++ b/drivers/net/wireless/ath9k/mac.h
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef MAC_H
|
||||
#define MAC_H
|
||||
|
||||
-#define RXSTATUS_RATE(ah, ads) (AR_SREV_5416_V20_OR_LATER(ah) ? \
|
||||
+#define RXSTATUS_RATE(ah, ads) (AR_SREV_5416_20_OR_LATER(ah) ? \
|
||||
MS(ads->ds_rxstatus0, AR_RxRate) : \
|
||||
(ads->ds_rxstatus3 >> 2) & 0xFF)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/reg.h
|
||||
+++ b/drivers/net/wireless/ath9k/reg.h
|
||||
@@ -161,10 +161,6 @@
|
||||
#define AR_SREV_VERSION_9100 0x014
|
||||
|
||||
#define AR_SREV_9100(ah) ((ah->hw_version.macVersion) == AR_SREV_VERSION_9100)
|
||||
-#define AR_SREV_5416_V20_OR_LATER(_ah) \
|
||||
- (AR_SREV_9100((_ah)) || AR_SREV_5416_20_OR_LATER(_ah))
|
||||
-#define AR_SREV_5416_V22_OR_LATER(_ah) \
|
||||
- (AR_SREV_9100((_ah)) || AR_SREV_5416_22_OR_LATER(_ah))
|
||||
|
||||
#define AR_ISR 0x0080
|
||||
#define AR_ISR_RXOK 0x00000001
|
||||
@@ -748,12 +744,19 @@
|
||||
|
||||
#define AR_SREV_9100_OR_LATER(_ah) \
|
||||
(((_ah)->hw_version.macVersion >= AR_SREV_VERSION_5416_PCIE))
|
||||
+
|
||||
+#define AR_SREV_5416(_ah) \
|
||||
+ (((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCI) || \
|
||||
+ ((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCIE))
|
||||
#define AR_SREV_5416_20_OR_LATER(_ah) \
|
||||
- (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9160) || \
|
||||
- ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_20))
|
||||
+ (((AR_SREV_5416(_ah)) && \
|
||||
+ ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_20)) || \
|
||||
+ ((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100))
|
||||
#define AR_SREV_5416_22_OR_LATER(_ah) \
|
||||
- (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9160) || \
|
||||
- ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22))
|
||||
+ (((AR_SREV_5416(_ah)) && \
|
||||
+ ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22)) || \
|
||||
+ ((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100))
|
||||
+
|
||||
#define AR_SREV_9160(_ah) \
|
||||
(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9160))
|
||||
#define AR_SREV_9160_10_OR_LATER(_ah) \
|
|
@ -1,60 +0,0 @@
|
|||
From 895dd2cb9def6733323719312ead20155b43b8e5 Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Thu, 5 Mar 2009 09:56:14 +0100
|
||||
Subject: [PATCH v2 2/3] ath9k: move ar9100 version checking macros into a more appropriate place
|
||||
|
||||
All other version checking macros are in a common location within the
|
||||
reg.h file. The AR_SREV_9100_OR_LATER macro is wrong currently, but will
|
||||
be fixed with the next patch.
|
||||
|
||||
Changes-licensed-under: ISC
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/reg.h | 13 ++++++-------
|
||||
1 files changed, 6 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/reg.h
|
||||
+++ b/drivers/net/wireless/ath9k/reg.h
|
||||
@@ -158,10 +158,6 @@
|
||||
#define AR_CST_TIMEOUT_LIMIT 0xFFFF0000
|
||||
#define AR_CST_TIMEOUT_LIMIT_S 16
|
||||
|
||||
-#define AR_SREV_VERSION_9100 0x014
|
||||
-
|
||||
-#define AR_SREV_9100(ah) ((ah->hw_version.macVersion) == AR_SREV_VERSION_9100)
|
||||
-
|
||||
#define AR_ISR 0x0080
|
||||
#define AR_ISR_RXOK 0x00000001
|
||||
#define AR_ISR_RXDESC 0x00000002
|
||||
@@ -730,6 +726,7 @@
|
||||
#define AR_SREV_REVISION_5416_10 0
|
||||
#define AR_SREV_REVISION_5416_20 1
|
||||
#define AR_SREV_REVISION_5416_22 2
|
||||
+#define AR_SREV_VERSION_9100 0x14
|
||||
#define AR_SREV_VERSION_9160 0x40
|
||||
#define AR_SREV_REVISION_9160_10 0
|
||||
#define AR_SREV_REVISION_9160_11 1
|
||||
@@ -742,9 +739,6 @@
|
||||
#define AR_SREV_REVISION_9285_11 1
|
||||
#define AR_SREV_REVISION_9285_12 2
|
||||
|
||||
-#define AR_SREV_9100_OR_LATER(_ah) \
|
||||
- (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_5416_PCIE))
|
||||
-
|
||||
#define AR_SREV_5416(_ah) \
|
||||
(((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCI) || \
|
||||
((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCIE))
|
||||
@@ -757,6 +751,11 @@
|
||||
((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22)) || \
|
||||
((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100))
|
||||
|
||||
+#define AR_SREV_9100(ah) \
|
||||
+ ((ah->hw_version.macVersion) == AR_SREV_VERSION_9100)
|
||||
+#define AR_SREV_9100_OR_LATER(_ah) \
|
||||
+ (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_5416_PCIE))
|
||||
+
|
||||
#define AR_SREV_9160(_ah) \
|
||||
(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9160))
|
||||
#define AR_SREV_9160_10_OR_LATER(_ah) \
|
|
@ -1,201 +0,0 @@
|
|||
From e379668f86409b5027f58a14614f6c876484404c Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Thu, 5 Mar 2009 08:32:55 +0100
|
||||
Subject: [PATCH v2 3/3] ath9k: fix AR_SREV_9100_OR_LATER macro
|
||||
|
||||
The current macro is wrong, because detects some AR5416 devices as an
|
||||
AR9100 device. The AR5416 devices would have performance issues after
|
||||
this change, because the contents of the ar5416 specific and of the
|
||||
ar9100 specificinitval arrays are swapped. Fortunately we can correct
|
||||
this with the rename of the arrays simply.
|
||||
|
||||
Changes-licesed-under: ISC
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/initvals.h | 44 ++++++++++++++++----------------
|
||||
drivers/net/wireless/ath9k/reg.h | 2 +-
|
||||
2 files changed, 23 insertions(+), 23 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/initvals.h
|
||||
+++ b/drivers/net/wireless/ath9k/initvals.h
|
||||
@@ -14,7 +14,7 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
-static const u32 ar5416Modes_9100[][6] = {
|
||||
+static const u32 ar5416Modes[][6] = {
|
||||
{ 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 },
|
||||
{ 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 },
|
||||
{ 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 },
|
||||
@@ -78,7 +78,7 @@ static const u32 ar5416Modes_9100[][6] =
|
||||
{ 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Common_9100[][2] = {
|
||||
+static const u32 ar5416Common[][2] = {
|
||||
{ 0x0000000c, 0x00000000 },
|
||||
{ 0x00000030, 0x00020015 },
|
||||
{ 0x00000034, 0x00000005 },
|
||||
@@ -456,12 +456,12 @@ static const u32 ar5416Common_9100[][2]
|
||||
{ 0x0000a3e0, 0x000001ce },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank0_9100[][2] = {
|
||||
+static const u32 ar5416Bank0[][2] = {
|
||||
{ 0x000098b0, 0x1e5795e5 },
|
||||
{ 0x000098e0, 0x02008020 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416BB_RfGain_9100[][3] = {
|
||||
+static const u32 ar5416BB_RfGain[][3] = {
|
||||
{ 0x00009a00, 0x00000000, 0x00000000 },
|
||||
{ 0x00009a04, 0x00000040, 0x00000040 },
|
||||
{ 0x00009a08, 0x00000080, 0x00000080 },
|
||||
@@ -528,21 +528,21 @@ static const u32 ar5416BB_RfGain_9100[][
|
||||
{ 0x00009afc, 0x000000f9, 0x000000f9 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank1_9100[][2] = {
|
||||
+static const u32 ar5416Bank1[][2] = {
|
||||
{ 0x000098b0, 0x02108421 },
|
||||
{ 0x000098ec, 0x00000008 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank2_9100[][2] = {
|
||||
+static const u32 ar5416Bank2[][2] = {
|
||||
{ 0x000098b0, 0x0e73ff17 },
|
||||
{ 0x000098e0, 0x00000420 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank3_9100[][3] = {
|
||||
+static const u32 ar5416Bank3[][3] = {
|
||||
{ 0x000098f0, 0x01400018, 0x01c00018 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank6_9100[][3] = {
|
||||
+static const u32 ar5416Bank6[][3] = {
|
||||
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
@@ -579,7 +579,7 @@ static const u32 ar5416Bank6_9100[][3] =
|
||||
{ 0x000098d0, 0x0000000f, 0x0010000f },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank6TPC_9100[][3] = {
|
||||
+static const u32 ar5416Bank6TPC[][3] = {
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
@@ -615,13 +615,13 @@ static const u32 ar5416Bank6TPC_9100[][3
|
||||
{ 0x000098d0, 0x0000000f, 0x0010000f },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank7_9100[][2] = {
|
||||
+static const u32 ar5416Bank7[][2] = {
|
||||
{ 0x0000989c, 0x00000500 },
|
||||
{ 0x0000989c, 0x00000800 },
|
||||
{ 0x000098cc, 0x0000000e },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Addac_9100[][2] = {
|
||||
+static const u32 ar5416Addac[][2] = {
|
||||
{0x0000989c, 0x00000000 },
|
||||
{0x0000989c, 0x00000003 },
|
||||
{0x0000989c, 0x00000000 },
|
||||
@@ -661,7 +661,7 @@ static const u32 ar5416Addac_9100[][2] =
|
||||
{0x000098cc, 0x00000000 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Modes[][6] = {
|
||||
+static const u32 ar5416Modes_9100[][6] = {
|
||||
{ 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 },
|
||||
{ 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 },
|
||||
{ 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 },
|
||||
@@ -735,7 +735,7 @@ static const u32 ar5416Modes[][6] = {
|
||||
{ 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Common[][2] = {
|
||||
+static const u32 ar5416Common_9100[][2] = {
|
||||
{ 0x0000000c, 0x00000000 },
|
||||
{ 0x00000030, 0x00020015 },
|
||||
{ 0x00000034, 0x00000005 },
|
||||
@@ -1109,12 +1109,12 @@ static const u32 ar5416Common[][2] = {
|
||||
{ 0x0000a3e0, 0x000001ce },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank0[][2] = {
|
||||
+static const u32 ar5416Bank0_9100[][2] = {
|
||||
{ 0x000098b0, 0x1e5795e5 },
|
||||
{ 0x000098e0, 0x02008020 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416BB_RfGain[][3] = {
|
||||
+static const u32 ar5416BB_RfGain_9100[][3] = {
|
||||
{ 0x00009a00, 0x00000000, 0x00000000 },
|
||||
{ 0x00009a04, 0x00000040, 0x00000040 },
|
||||
{ 0x00009a08, 0x00000080, 0x00000080 },
|
||||
@@ -1181,21 +1181,21 @@ static const u32 ar5416BB_RfGain[][3] =
|
||||
{ 0x00009afc, 0x000000f9, 0x000000f9 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank1[][2] = {
|
||||
+static const u32 ar5416Bank1_9100[][2] = {
|
||||
{ 0x000098b0, 0x02108421},
|
||||
{ 0x000098ec, 0x00000008},
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank2[][2] = {
|
||||
+static const u32 ar5416Bank2_9100[][2] = {
|
||||
{ 0x000098b0, 0x0e73ff17},
|
||||
{ 0x000098e0, 0x00000420},
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank3[][3] = {
|
||||
+static const u32 ar5416Bank3_9100[][3] = {
|
||||
{ 0x000098f0, 0x01400018, 0x01c00018 },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank6[][3] = {
|
||||
+static const u32 ar5416Bank6_9100[][3] = {
|
||||
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
@@ -1233,7 +1233,7 @@ static const u32 ar5416Bank6[][3] = {
|
||||
};
|
||||
|
||||
|
||||
-static const u32 ar5416Bank6TPC[][3] = {
|
||||
+static const u32 ar5416Bank6TPC_9100[][3] = {
|
||||
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
{ 0x0000989c, 0x00000000, 0x00000000 },
|
||||
@@ -1270,13 +1270,13 @@ static const u32 ar5416Bank6TPC[][3] = {
|
||||
{ 0x000098d0, 0x0000000f, 0x0010000f },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Bank7[][2] = {
|
||||
+static const u32 ar5416Bank7_9100[][2] = {
|
||||
{ 0x0000989c, 0x00000500 },
|
||||
{ 0x0000989c, 0x00000800 },
|
||||
{ 0x000098cc, 0x0000000e },
|
||||
};
|
||||
|
||||
-static const u32 ar5416Addac[][2] = {
|
||||
+static const u32 ar5416Addac_9100[][2] = {
|
||||
{0x0000989c, 0x00000000 },
|
||||
{0x0000989c, 0x00000000 },
|
||||
{0x0000989c, 0x00000000 },
|
||||
--- a/drivers/net/wireless/ath9k/reg.h
|
||||
+++ b/drivers/net/wireless/ath9k/reg.h
|
||||
@@ -754,7 +754,7 @@
|
||||
#define AR_SREV_9100(ah) \
|
||||
((ah->hw_version.macVersion) == AR_SREV_VERSION_9100)
|
||||
#define AR_SREV_9100_OR_LATER(_ah) \
|
||||
- (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_5416_PCIE))
|
||||
+ (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100))
|
||||
|
||||
#define AR_SREV_9160(_ah) \
|
||||
(((_ah)->hw_version.macVersion == AR_SREV_VERSION_9160))
|
|
@ -1,24 +0,0 @@
|
|||
From c464fc7b864a15422d2d7e52f3ac3c09999a8514 Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Fri, 6 Mar 2009 09:46:06 +0100
|
||||
Subject: [PATCH 1/2] ath9k: fix compile error in ahb.c
|
||||
|
||||
drivers/net/wireless/ath9k/ahb.c: In function 'ath_ahb_probe':
|
||||
drivers/net/wireless/ath9k/ahb.c:136: error: 'aphy' undeclared (first
|
||||
use in this function)
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/ahb.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/ahb.c
|
||||
+++ b/drivers/net/wireless/ath9k/ahb.c
|
||||
@@ -60,6 +60,7 @@ static struct ath_bus_ops ath_ahb_bus_op
|
||||
static int ath_ahb_probe(struct platform_device *pdev)
|
||||
{
|
||||
void __iomem *mem;
|
||||
+ struct ath_wiphy *aphy;
|
||||
struct ath_softc *sc;
|
||||
struct ieee80211_hw *hw;
|
||||
struct resource *res;
|
|
@ -1,27 +0,0 @@
|
|||
From 15af1877e9fbb75c4a7506ab86e743c49a195e97 Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Fri, 6 Mar 2009 09:46:27 +0100
|
||||
Subject: [PATCH 2/2] ath9k: fix compile error in debug.c
|
||||
|
||||
drivers/net/wireless/ath9k/debug.c: In function 'read_file_wiphy':
|
||||
drivers/net/wireless/ath9k/debug.c:377: error: implicit declaration of
|
||||
function 'put_unaligned_le32'
|
||||
drivers/net/wireless/ath9k/debug.c:378: error: implicit declaration of
|
||||
function 'put_unaligned_le16'
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/debug.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/debug.c
|
||||
+++ b/drivers/net/wireless/ath9k/debug.c
|
||||
@@ -14,6 +14,8 @@
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
+#include <asm/unaligned.h>
|
||||
+
|
||||
#include "ath9k.h"
|
||||
|
||||
static unsigned int ath9k_debug = DBG_DEFAULT;
|
|
@ -1,41 +0,0 @@
|
|||
From eb96b22223352ed6446532c2436f301e86970144 Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Fri, 6 Mar 2009 10:50:37 +0100
|
||||
Subject: [PATCH] ath9k: always compile ath_radio_{en,dis}able
|
||||
|
||||
ath_radio_{en,dis}able is only compiled if RFKILL is enabled, but it is
|
||||
required by the 'ath9k_wiphy_select' function.
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
---
|
||||
drivers/net/wireless/ath9k/main.c | 12 ++++++------
|
||||
1 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath9k/main.c
|
||||
+++ b/drivers/net/wireless/ath9k/main.c
|
||||
@@ -1090,12 +1090,6 @@ fail:
|
||||
ath_deinit_leds(sc);
|
||||
}
|
||||
|
||||
-#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
|
||||
-
|
||||
-/*******************/
|
||||
-/* Rfkill */
|
||||
-/*******************/
|
||||
-
|
||||
void ath_radio_enable(struct ath_softc *sc)
|
||||
{
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
@@ -1172,6 +1166,12 @@ void ath_radio_disable(struct ath_softc
|
||||
ath9k_ps_restore(sc);
|
||||
}
|
||||
|
||||
+#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
|
||||
+
|
||||
+/*******************/
|
||||
+/* Rfkill */
|
||||
+/*******************/
|
||||
+
|
||||
static bool ath_is_rfkill_set(struct ath_softc *sc)
|
||||
{
|
||||
struct ath_hw *ah = sc->sc_ah;
|
Loading…
Reference in a new issue