Cohen, Guy | 1 Jul 03:48
Picon
Favicon

RE: [WIP] mac80211: kill mgmt interface


Jiri Benc wrote:
> > Can one run multiple MLME (e.g. hostapd) instances to run multiple
> virtual master mode interfaces
> > for different networks? With different BSSID?
> 
> I don't think that would be ever possible when using monitor
> interfaces.
> 
> On the other hand, it doesn't make much sense to support that. The
> interfaces are not completely independent, e.g. you cannot tune to
> different channels on different virtual interfaces. Therefore, at
least
> a minimal knowledge about virtual interfaces would be needed in more
> complicated user space MLMEs.

This is a required feature for Access Points (multiple BSSID).
Daniel Drake | 1 Jul 18:35
Picon
Favicon

[PATCH] zd1211rw-mac80211: Defer firmware load until first ifup

While playing with the firmware a while back, I discovered a way to
access the device's entire address space before the firmware has been
loaded.

Previously we were loading the firmware early on (during probe) so that
we could read the MAC address from the EEPROM and register a netdevice.
Now that we can read the EEPROM without having firmware, we can defer
firmware loading until later while still reading the MAC address early
on.

This has the advantage that zd1211rw can now be built into the kernel --
previously if this was the case, zd1211rw would be loaded before the
filesystem is available and firmware loading would fail.

Firmware load and other device initialization operations now happen the
first time the interface is brought up.

Some architectural changes were needed: handling of the is_zd1211b flag
was moved into the zd_usb structure, MAC address handling was obviously
changed, and a preinit_hw stage was added (the order is now: init,
preinit_hw, init_hw).

Signed-off-by: Daniel Drake <dsd@...>
Signed-off-by: Ulrich Kunitz <kune@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.c   |   88 +++---------------
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.h   |   13 ++-
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c    |   45 ++++++---
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.h    |    3 +-
 .../net/wireless/mac80211/zd1211rw/zd_rf_al2230.c  |    2 +-
(Continue reading)

Daniel Drake | 1 Jul 18:37
Picon
Favicon

[PATCH] zd1211rw-mac80211: Detect more AL2230S radios

Zen Kato has a device which reports the 0xa RF type. The vendor driver
treats this as AL2230S, the same as devices with the AL2230S bit in the POD.

Signed-off-by: Daniel Drake <dsd@...>
Signed-off-by: Ulrich Kunitz <kune@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_rf.c     |    3 ++-
 drivers/net/wireless/mac80211/zd1211rw/zd_rf.h     |    2 +-
 .../net/wireless/mac80211/zd1211rw/zd_rf_al2230.c  |   10 ++++++----
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_rf.c b/drivers/net/wireless/mac80211/zd1211rw/zd_rf.c
index 7407409..abe5d38 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_rf.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_rf.c
@@ -34,7 +34,7 @@ static const char * const rfs[] = {
 	[AL2210_RF]	= "AL2210_RF",
 	[MAXIM_NEW_RF]	= "MAXIM_NEW_RF",
 	[UW2453_RF]	= "UW2453_RF",
-	[UNKNOWN_A_RF]	= "UNKNOWN_A_RF",
+	[AL2230S_RF]	= "AL2230S_RF",
 	[RALINK_RF]	= "RALINK_RF",
 	[INTERSIL_RF]	= "INTERSIL_RF",
 	[RF2959_RF]	= "RF2959_RF",
@@ -77,6 +77,7 @@ int zd_rf_init_hw(struct zd_rf *rf, u8 type)
 		r = zd_rf_init_rf2959(rf);
 		break;
 	case AL2230_RF:
+	case AL2230S_RF:
 		r = zd_rf_init_al2230(rf);
(Continue reading)

Daniel Drake | 1 Jul 18:37
Picon
Favicon

[PATCH] zd1211rw-mac80211: Add ID for Buffalo WLI-U2-KG54L

Tested by Zen Kato
zd1211b chip 0411:00da v4810 high 00-16-01 AL2230S_RF pa0 g--N-

Signed-off-by: Daniel Drake <dsd@...>
Signed-off-by: Ulrich Kunitz <kune@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
index fbb3ed0..30ae209 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
@@ -69,6 +69,7 @@ static struct usb_device_id usb_ids[] = {
 	{ USB_DEVICE(0x0586, 0x3412), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0586, 0x3413), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0053, 0x5301), .driver_info = DEVICE_ZD1211B },
+	{ USB_DEVICE(0x0411, 0x00da), .driver_info = DEVICE_ZD1211B },
 	/* "Driverless" devices that need ejecting */
 	{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
 	{ USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },
--

-- 
1.5.2.2

Daniel Drake | 1 Jul 18:39
Picon
Favicon

[PATCH] zd1211rw-mac80211: basic regulatory domain support

This patch causes zd1211rw-mac80211 to interpret the regdomain in the
EEPROM and restrict the channels accordingly, like the softmac driver does.

It is understood that mac80211 regulatory domain handling will change
significantly in the not-too-distant future.

Signed-off-by: Daniel Drake <dsd@...>
Signed-off-by: Ulrich Kunitz <kune@...>
---
 drivers/net/wireless/mac80211/zd1211rw/Makefile    |    2 +-
 .../net/wireless/mac80211/zd1211rw/zd_ieee80211.c  |  100 ++++++++++++++++++++
 .../net/wireless/mac80211/zd1211rw/zd_ieee80211.h  |    8 +-
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c    |    8 +-
 4 files changed, 106 insertions(+), 12 deletions(-)
 create mode 100644 drivers/net/wireless/mac80211/zd1211rw/zd_ieee80211.c

diff --git a/drivers/net/wireless/mac80211/zd1211rw/Makefile b/drivers/net/wireless/mac80211/zd1211rw/Makefile
index 564b863..d3eee56 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/Makefile
+++ b/drivers/net/wireless/mac80211/zd1211rw/Makefile
@@ -3,7 +3,7 @@ obj-$(CONFIG_ZD1211RW_MAC80211) += zd1211rw-mac80211.o
 zd1211rw-mac80211-objs := zd_chip.o zd_mac.o \
 		zd_rf_al2230.o zd_rf_rf2959.o \
 		zd_rf_al7230b.o zd_rf_uw2453.o \
-		zd_rf.o zd_usb.o zd_util.o
+		zd_ieee80211.o zd_rf.o zd_usb.o zd_util.o

 ifeq ($(CONFIG_ZD1211RW_MAC80211_DEBUG),y)
 EXTRA_CFLAGS += -DDEBUG
diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_ieee80211.c b/drivers/net/wireless/mac80211/zd1211rw/zd_ieee80211.c
(Continue reading)

Daniel Drake | 1 Jul 18:40
Picon
Favicon

[PATCH] zd1211rw-mac80211: Fix SSI reporting

zd1211rw-mac80211 currently reports different values for signal level
than zd1211rw-softmac. This is because the softmac driver passes the raw
strength value, whereas zd1211rw-mac80211 is performing some other
calculation.

Signed-off-by: Daniel Drake <dsd@...>
Signed-off-by: Ulrich Kunitz <kune@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.c |    8 --------
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.h |    1 -
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c  |    2 +-
 3 files changed, 1 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c b/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c
index 75728bb..662e66e 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c
@@ -1464,14 +1464,6 @@ u8 zd_rx_qual_percent(const void *rx_frame, unsigned int size,
 		cck_qual_percent(status->signal_quality_cck);
 }

-u8 zd_rx_strength_percent(u8 rssi)
-{
-	int r = (rssi*100) / 41;
-	if (r > 100)
-		r = 100;
-	return (u8) r;
-}
-
 u16 zd_rx_rate(const void *rx_frame, const struct rx_status *status)
(Continue reading)

Daniel Drake | 1 Jul 19:21
Picon
Favicon

[PATCH] zd1211rw: Allow channels 1-11 for unrecognised regulatory domains

Zen Kato's device has a regulatory domain value of 0x49, which is not an
IEEE 802.11 code and is not even identified in the vendor driver.

Recent versions of the vendor driver don't even look at the regdomain
value any more, and just allow channels 1-11 everywhere. This patch
brings us more in line with that behaviour, by allowing channels 1-11
for regdomains which we don't know about.

Signed-off-by: Daniel Drake <dsd@...>
---
 zd_mac.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

Index: linux-2.6/drivers/net/wireless/zd1211rw/zd_mac.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/zd1211rw/zd_mac.c
+++ linux-2.6/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -113,11 +113,14 @@ int zd_mac_init_hw(struct zd_mac *mac, u
 	if (r)
 		goto disable_int;
 	if (!zd_regdomain_supported(default_regdomain)) {
-		dev_dbg_f(zd_mac_dev(mac),
-			  "Regulatory Domain %#04x is not supported.\n",
-		          default_regdomain);
-		r = -EINVAL;
-		goto disable_int;
+		/* The vendor driver overrides the regulatory domain and
+		 * allowed channel registers and unconditionally restricts
+		 * available channels to 1-11 everywhere. Match their
+		 * questionable behaviour only for regdomains which we don't
(Continue reading)

Daniel Drake | 1 Jul 19:22
Picon
Favicon

[PATCH] zd1211rw: Detect more AL2230S radios

Zen Kato has a device which reports the 0xa RF type. The vendor driver
treats this as AL2230S, the same as devices with the AL2230S bit in the POD.

Signed-off-by: Daniel Drake <dsd@...>
---
 zd_rf.c        |    3 ++-
 zd_rf.h        |    2 +-
 zd_rf_al2230.c |   10 ++++++----
 3 files changed, 9 insertions(+), 6 deletions(-)

Index: linux-2.6/drivers/net/wireless/zd1211rw/zd_rf.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/zd1211rw/zd_rf.c
+++ linux-2.6/drivers/net/wireless/zd1211rw/zd_rf.c
@@ -34,7 +34,7 @@ static const char * const rfs[] = {
 	[AL2210_RF]	= "AL2210_RF",
 	[MAXIM_NEW_RF]	= "MAXIM_NEW_RF",
 	[UW2453_RF]	= "UW2453_RF",
-	[UNKNOWN_A_RF]	= "UNKNOWN_A_RF",
+	[AL2230S_RF]	= "AL2230S_RF",
 	[RALINK_RF]	= "RALINK_RF",
 	[INTERSIL_RF]	= "INTERSIL_RF",
 	[RF2959_RF]	= "RF2959_RF",
@@ -77,6 +77,7 @@ int zd_rf_init_hw(struct zd_rf *rf, u8 t
 		r = zd_rf_init_rf2959(rf);
 		break;
 	case AL2230_RF:
+	case AL2230S_RF:
 		r = zd_rf_init_al2230(rf);
 		break;
(Continue reading)

Daniel Drake | 1 Jul 19:22
Picon
Favicon

[PATCH] zd1211rw: Add ID for Buffalo WLI-U2-KG54L

Tested by Zen Kato
zd1211b chip 0411:00da v4810 high 00-16-01 AL2230S_RF pa0 g--N-

Signed-off-by: Daniel Drake <dsd <at> gentoo.org>
---
 zd_usb.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Index: linux-2.6/drivers/net/wireless/zd1211rw/zd_usb.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/zd1211rw/zd_usb.c
+++ linux-2.6/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -71,6 +71,7 @@ static struct usb_device_id usb_ids[] = 
 	{ USB_DEVICE(0x0586, 0x3412), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0586, 0x3413), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0053, 0x5301), .driver_info = DEVICE_ZD1211B },
+	{ USB_DEVICE(0x0411, 0x00da), .driver_info = DEVICE_ZD1211B },
 	/* "Driverless" devices that need ejecting */
 	{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
 	{ USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Daniel Drake | 1 Jul 19:22
Picon
Favicon

[PATCH] zd1211rw: Defer firmware load until first ifup

While playing with the firmware a while back, I discovered a way to
access the device's entire address space before the firmware has been
loaded.

Previously we were loading the firmware early on (during probe) so that
we could read the MAC address from the EEPROM and register a netdevice.
Now that we can read the EEPROM without having firmware, we can defer
firmware loading until later while still reading the MAC address early
on.

This has the advantage that zd1211rw can now be built into the kernel --
previously if this was the case, zd1211rw would be loaded before the
filesystem is available and firmware loading would fail.

Firmware load and other device initialization operations now happen the
first time the interface is brought up.

Some architectural changes were needed: handling of the is_zd1211b flag
was moved into the zd_usb structure, MAC address handling was obviously
changed, and a preinit_hw stage was added (the order is now: init,
preinit_hw, init_hw).

Signed-off-by: Daniel Drake <dsd@...>
---
 zd_chip.c       |   88 ++++++++-----------------------------------------
 zd_chip.h       |   13 ++++---
 zd_mac.c        |   46 ++++++++++++++++++--------
 zd_mac.h        |    3 +-
 zd_rf_al2230.c  |    2 +-
 zd_rf_al7230b.c |    2 +-
(Continue reading)


Gmane