Please pull 'upstream' branch of rt2x00
Hi John,
Well over a month since my last rt2x00 patches, but finally a real rt2x00 update. The first 2 patches are updates based on recent mac80211 changes, especially the configuration patch is important.
I also noticed that the recent Kconfig fixes introduced a possibility of a build error, not sure if it was reported by somebody yet, but in any case it was possible to build mac80211 as module and rt2x00 compiled into the kernel, causing obvious problems.
Ivo
---
The following changes since commit 43288a0fdd6b970dec3017ceaffb70cf6347e5f0:
John W. Linville (1):
ath5k: fixup warnings created by "ath5k: Reset key cache..."
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (5):
rt2x00: Optimize configuration handling
rt2x00: Remove ieee80211_bss_conf from rt2x00_intf
rt2x00: Improve interface_modes initialization
rt2x00: Fix build error when mac80211=M rt2x00=Y
rt2x00: Release rt2x00 2.2.2drivers/net/wireless/rt2x00/Kconfig | 2 +- drivers/net/wireless/rt2x00/rt2400pci.c | 167 ++++++++++----------- drivers/net/wireless/rt2x00/rt2500pci.c | 206 ++++++++++++------------- drivers/net/wireless/rt2x00/rt2500usb.c | 110 ++++++------- drivers/net/wireless/rt2x00/rt2x00.h | 44 ++---- drivers/net/wireless/rt2x00/rt2x00config.c | 164 +++----------------- drivers/net/wireless/rt2x00/rt2x00dev.c | 16 ++- drivers/net/wireless/rt2x00/rt2x00lib.h | 3 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 12 +-- drivers/net/wireless/rt2x00/rt61pci.c | 231 ++++++++++++++-------------- drivers/net/wireless/rt2x00/rt73usb.c | 216 +++++++++++++------------- 11 files changed, 501 insertions(+), 670 deletions(-)
PATCH 2/5 rt2x00: Remove ieee80211_bss_conf from rt2x00_intf
In reply to Ivo van DoornWe can safely remove ieee80211_bss_conf from rt2x00_intf, it is provided by mac80211 in ieee80211_vif as well. (rt2x00_intf is the drv_priv field of ieee80211_vif).
--- drivers/net/wireless/rt2x00/rt2x00.h | 7 ------- drivers/net/wireless/rt2x00/rt2x00dev.c | 2 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 1 - 3 files changed, 1 insertions(+), 9 deletions(-)
drivers/net/wireless/rt2x00/rt2x00.h +0 -7
@@ -348,13 +348,6 @@ struct rt2x00_intf {spinlock_t lock;/* -* BSS configuration. Copied from the structure -* passed to us through the bss_info_changed() -* callback funtion. -*/ -struct ieee80211_bss_conf conf; - -/* * MAC of the device. */ u8 mac[ETH_ALEN ];
drivers/net/wireless/rt2x00/rt2x00dev.c +1 -1
@@ -417,7 +417,7 @@ static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac,*/ spin_lock (&intf->lock); -memcpy (&conf, &intf->conf,sizeof (conf)); +memcpy (&conf, &vif->bss_conf,sizeof (conf)); delayed_flags = intf->delayed_flags; intf->delayed_flags =0 ;
drivers/net/wireless/rt2x00/rt2x00mac.c +0 -1
@@ -634,7 +634,6 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, }spin_lock (&intf->lock); -memcpy (&intf->conf, bss_conf,sizeof (*bss_conf));if (delayed) { intf->delayed_flags |= delayed;schedule_work (&rt2x00dev->intf_work);
Signature · 1 line
1.5.6.1
PATCH 3/5 rt2x00: Improve interface_modes initialization
All operating modes which require beaconing should depend on the availability of beacon entries from the hardware.
--- drivers/net/wireless/rt2x00/rt2x00dev.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)
drivers/net/wireless/rt2x00/rt2x00dev.c +10 -4
@@ -1056,10 +1056,16 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)*/ rt2x00dev->hw->vif_data_size =sizeof (struct rt2x00_intf ); - rt2x00dev->hw->wiphy->interface_modes = -BIT (NL80211_IFTYPE_AP ) | -BIT (NL80211_IFTYPE_STATION ) | -BIT (NL80211_IFTYPE_ADHOC ); +/* +* Determine which operating modes are supported, all modes +* which require beaconing, depend on the availability of +* beacon entries. +*/ + rt2x00dev->hw->wiphy->interface_modes =BIT (NL80211_IFTYPE_STATION ); +if (rt2x00dev->ops->bcn->entry_num >0 ) + rt2x00dev->hw->wiphy->interface_modes |= +BIT (NL80211_IFTYPE_ADHOC ) | +BIT (NL80211_IFTYPE_AP );/* * Let the driver probe the device to detect the capabilities.
Signature · 1 line
1.5.6.1
PATCH 4/5 rt2x00: Fix build error when mac80211=M rt2x00=Y
Make menuconfig RT2X00 a tristate instead of boolean, otherwise we do not correctly inherit the mac80211 value on which RT2X00 depends, and makes it possible to compile rt2x00 into the kernel while mac80211 is a module.
--- drivers/net/wireless/rt2x00/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/net/wireless/rt2x00/Kconfig +1 -1
@@ -1,5 +1,5 @@ menuconfig RT2X00 - bool "Ralink driver support" + tristate "Ralink driver support" depends on MAC80211 && WLAN_80211 && EXPERIMENTAL ---help--- This will enable the experimental support for the Ralink drivers,
Signature · 1 line
1.5.6.1
PATCH 5/5 rt2x00: Release rt2x00 2.2.2
Version bump.
--- drivers/net/wireless/rt2x00/rt2x00.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/net/wireless/rt2x00/rt2x00.h +1 -1
@@ -44,7 +44,7 @@/* * Module information. */ -#define DRV_VERSION "2.2.1" +#define DRV_VERSION "2.2.2"#define DRV_PROJECT "http://rt2x00.serialmonkey.com"/*
Signature · 1 line
1.5.6.1
PATCH 1/5 rt2x00: Optimize configuration handling
In reply to Ivo van DoornImplement latest changed from mac80211 configuration handling to optmize configuration handling in rt2x00.
* Remove set_retry_limit callback function, handled through config()
* Move config_antenna to its own callback function, it isn't handled by mac80211 anymore
* Use IEEE80211_CONF_CHANGED_* flags and remove manual checks
* Removed deprecated short slot setting through config() and put it in config_erp() through which mac80211 now configures it
* Remove config_phymode() and move contents to config_erp() since it only managed the basic rates which is now determined by mac80211 through config_erp().
---
Patch has a size of 52Kb, it can be found here:
http://www.kernel.org/pub/linux/kernel/people/ivd/patches/0001-rt2x00-Optimize-configuration-handling.patch