Skip to contentSkip to conversation

Please pull 'upstream' branch of rt2x00

PATCH New Ivo van Doorn 1 participant 6 messages Oct 29, 2008 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

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.2
 drivers/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(-)
#2 lore raw

PATCH 2/5 rt2x00: Remove ieee80211_bss_conf from rt2x00_intf

In reply to Ivo van Doorn

We 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
index 4d983e6..ca1f9fe 100644
@@ -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
index e1feab8..c42e4fd 100644
@@ -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
index 3a3b5ad..8fc2315 100644
@@ -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
#3 lore raw

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
index c42e4fd..477a944 100644
@@ -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
#4 lore raw

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
index f839ce0..95511ac 100644
@@ -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
#5 lore raw

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
index ca1f9fe..f85eedb 100644
@@ -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
#1 lore raw

PATCH 1/5 rt2x00: Optimize configuration handling

In reply to Ivo van Doorn

Implement 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