* Please pull 'upstream' branch of rt2x00
@ 2008-02-03 14:41 Ivo van Doorn
2008-02-03 14:42 ` [PATCH 01/19] rt2x00: Update copyright notice Ivo van Doorn
` (18 more replies)
0 siblings, 19 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-02-03 14:41 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the 2.1.0 release of rt2x00.
The most important changes in this release:
- Queue handling overhaul
- Multiple virtual AP interfaces support for rt61 and rt73
- LED class support
- Adhoc & master mode enabled
Note that this patch series is _not_ intended for 2.6.25,
a lot might still be broken because the code has changed so much.
Adhoc and master mode is only enabled for testing purposes, in no way
it means that it is working for all drivers...
With these changes adding support for rt2800pci and rt2800usb will
be easier as well. Hopefully I can soon provide an initial version for
those 2 drivers as well.
All indivual patches can also be found here:
http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.1.0/
Ivo
---
The following changes since commit e0e6138382c56aa99a1aabe5dddddbb332b5a4f8:
Stefano Brivio (1):
rc80211-pid: fix rate adjustment
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Adam Baker (1):
rt2x00: don't write past the end when writing short descriptors on rt61
Ivo van Doorn (18):
rt2x00: Update copyright notice
rt2x00: Queue handling overhaul
rt2x00: Add new USB ID to rt2500usb
rt2x00: Fix tx parameter initialization
rt2x00: Enable master and adhoc mode again
rt2x00: Driver requiring firmware should select crc algo
rt2x00: Add per-interface structure
rt2x00: Rate structure overhaul
rt2x00: Remove HWMODE_{A,B,G}
rt2x00: Remove TX_MGMT queue usage
rt2x00: Initialize QID from queue->qid
rt2x00: Use ieee80211_channel_to_frequency()
rt2x00: Make use of MAC80211_LED_TRIGGERS
rt2x00: Enable LED class support for rt2500usb/rt73usb
rt2x00: Fix rate initialization
rt2x00: Move beacon and atim queue defines into rt2x00
rt2x00: Fix queue index handling
rt2x00: Release rt2x00 2.1.0
drivers/net/wireless/rt2x00/Kconfig | 43 ++
drivers/net/wireless/rt2x00/Makefile | 6 +-
drivers/net/wireless/rt2x00/rt2400pci.c | 431 +++++++++------
drivers/net/wireless/rt2x00/rt2400pci.h | 2 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 436 +++++++++------
drivers/net/wireless/rt2x00/rt2500pci.h | 2 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 497 ++++++++++--------
drivers/net/wireless/rt2x00/rt2500usb.h | 5 +-
drivers/net/wireless/rt2x00/rt2x00.h | 288 ++++++-----
drivers/net/wireless/rt2x00/rt2x00config.c | 140 +++---
drivers/net/wireless/rt2x00/rt2x00debug.c | 34 +-
drivers/net/wireless/rt2x00/rt2x00debug.h | 2 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 756 +++++++++++---------------
drivers/net/wireless/rt2x00/rt2x00dump.h | 8 +-
drivers/net/wireless/rt2x00/rt2x00firmware.c | 43 ++-
drivers/net/wireless/rt2x00/rt2x00leds.c | 217 ++++++++
drivers/net/wireless/rt2x00/rt2x00leds.h | 63 +++
drivers/net/wireless/rt2x00/rt2x00lib.h | 100 ++++-
drivers/net/wireless/rt2x00/rt2x00mac.c | 221 +++++---
drivers/net/wireless/rt2x00/rt2x00pci.c | 238 ++++-----
drivers/net/wireless/rt2x00/rt2x00pci.h | 57 ++-
drivers/net/wireless/rt2x00/rt2x00queue.c | 295 ++++++++++
drivers/net/wireless/rt2x00/rt2x00queue.h | 447 +++++++++++++++
drivers/net/wireless/rt2x00/rt2x00reg.h | 75 +---
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 2 +-
drivers/net/wireless/rt2x00/rt2x00ring.h | 290 ----------
drivers/net/wireless/rt2x00/rt2x00usb.c | 345 ++++++++-----
drivers/net/wireless/rt2x00/rt2x00usb.h | 179 +++++--
drivers/net/wireless/rt2x00/rt61pci.c | 601 +++++++++++----------
drivers/net/wireless/rt2x00/rt61pci.h | 21 +-
drivers/net/wireless/rt2x00/rt73usb.c | 468 +++++++++-------
drivers/net/wireless/rt2x00/rt73usb.h | 20 +-
32 files changed, 3831 insertions(+), 2501 deletions(-)
create mode 100644 drivers/net/wireless/rt2x00/rt2x00leds.c
create mode 100644 drivers/net/wireless/rt2x00/rt2x00leds.h
create mode 100644 drivers/net/wireless/rt2x00/rt2x00queue.c
create mode 100644 drivers/net/wireless/rt2x00/rt2x00queue.h
delete mode 100644 drivers/net/wireless/rt2x00/rt2x00ring.h
^ permalink raw reply [flat|nested] 73+ messages in thread* [PATCH 01/19] rt2x00: Update copyright notice 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn @ 2008-02-03 14:42 ` Ivo van Doorn 2008-02-03 14:45 ` [PATCH 02/19] rt2x00: Queue handling overhaul Ivo van Doorn ` (17 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:42 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2400pci.c | 2 +- drivers/net/wireless/rt2x00/rt2400pci.h | 2 +- drivers/net/wireless/rt2x00/rt2500pci.c | 2 +- drivers/net/wireless/rt2x00/rt2500pci.h | 2 +- drivers/net/wireless/rt2x00/rt2500usb.c | 2 +- drivers/net/wireless/rt2x00/rt2500usb.h | 2 +- drivers/net/wireless/rt2x00/rt2x00.h | 2 +- drivers/net/wireless/rt2x00/rt2x00config.c | 2 +- drivers/net/wireless/rt2x00/rt2x00debug.c | 2 +- drivers/net/wireless/rt2x00/rt2x00debug.h | 2 +- drivers/net/wireless/rt2x00/rt2x00dev.c | 2 +- drivers/net/wireless/rt2x00/rt2x00dump.h | 2 +- drivers/net/wireless/rt2x00/rt2x00firmware.c | 2 +- drivers/net/wireless/rt2x00/rt2x00lib.h | 2 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 2 +- drivers/net/wireless/rt2x00/rt2x00pci.c | 2 +- drivers/net/wireless/rt2x00/rt2x00pci.h | 2 +- drivers/net/wireless/rt2x00/rt2x00reg.h | 2 +- drivers/net/wireless/rt2x00/rt2x00rfkill.c | 2 +- drivers/net/wireless/rt2x00/rt2x00ring.h | 2 +- drivers/net/wireless/rt2x00/rt2x00usb.c | 2 +- drivers/net/wireless/rt2x00/rt2x00usb.h | 2 +- drivers/net/wireless/rt2x00/rt61pci.c | 2 +- drivers/net/wireless/rt2x00/rt61pci.h | 2 +- drivers/net/wireless/rt2x00/rt73usb.c | 2 +- drivers/net/wireless/rt2x00/rt73usb.h | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c index d6cba13..406f589 100644 --- a/drivers/net/wireless/rt2x00/rt2400pci.c +++ b/drivers/net/wireless/rt2x00/rt2400pci.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2400pci.h b/drivers/net/wireless/rt2x00/rt2400pci.h index 369aac6..3d59d66 100644 --- a/drivers/net/wireless/rt2x00/rt2400pci.h +++ b/drivers/net/wireless/rt2x00/rt2400pci.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c index e874fdc..0436e4a 100644 --- a/drivers/net/wireless/rt2x00/rt2500pci.c +++ b/drivers/net/wireless/rt2x00/rt2500pci.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2500pci.h b/drivers/net/wireless/rt2x00/rt2500pci.h index 92ba090..0af130c 100644 --- a/drivers/net/wireless/rt2x00/rt2500pci.h +++ b/drivers/net/wireless/rt2x00/rt2500pci.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 86ded40..4753424 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2500usb.h b/drivers/net/wireless/rt2x00/rt2500usb.h index 9e04337..e9f2cd9 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.h +++ b/drivers/net/wireless/rt2x00/rt2500usb.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 6847585..dc4ae56 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c index 9e5bfce..0ebdf81 100644 --- a/drivers/net/wireless/rt2x00/rt2x00config.c +++ b/drivers/net/wireless/rt2x00/rt2x00config.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c b/drivers/net/wireless/rt2x00/rt2x00debug.c index b44a9f4..d70ce6e 100644 --- a/drivers/net/wireless/rt2x00/rt2x00debug.c +++ b/drivers/net/wireless/rt2x00/rt2x00debug.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.h b/drivers/net/wireless/rt2x00/rt2x00debug.h index d37efbd..c4ce895 100644 --- a/drivers/net/wireless/rt2x00/rt2x00debug.h +++ b/drivers/net/wireless/rt2x00/rt2x00debug.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index d5e4512..628cfb9 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00dump.h b/drivers/net/wireless/rt2x00/rt2x00dump.h index 99f3f36..93f8967 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dump.h +++ b/drivers/net/wireless/rt2x00/rt2x00dump.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00firmware.c b/drivers/net/wireless/rt2x00/rt2x00firmware.c index 0a475e4..442ff80 100644 --- a/drivers/net/wireless/rt2x00/rt2x00firmware.c +++ b/drivers/net/wireless/rt2x00/rt2x00firmware.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00lib.h b/drivers/net/wireless/rt2x00/rt2x00lib.h index 1adbd28..7540d29 100644 --- a/drivers/net/wireless/rt2x00/rt2x00lib.h +++ b/drivers/net/wireless/rt2x00/rt2x00lib.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index e3f15e5..e638c65 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index b76c130..6df4a3e 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.h b/drivers/net/wireless/rt2x00/rt2x00pci.h index 2d1eb81..9ac560b 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.h +++ b/drivers/net/wireless/rt2x00/rt2x00pci.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h index 8384212..04e4799 100644 --- a/drivers/net/wireless/rt2x00/rt2x00reg.h +++ b/drivers/net/wireless/rt2x00/rt2x00reg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00rfkill.c b/drivers/net/wireless/rt2x00/rt2x00rfkill.c index 34a96d4..6712142 100644 --- a/drivers/net/wireless/rt2x00/rt2x00rfkill.c +++ b/drivers/net/wireless/rt2x00/rt2x00rfkill.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00ring.h b/drivers/net/wireless/rt2x00/rt2x00ring.h index 1caa6d6..764c255 100644 --- a/drivers/net/wireless/rt2x00/rt2x00ring.h +++ b/drivers/net/wireless/rt2x00/rt2x00ring.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index dc7695c..e566acc 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.h b/drivers/net/wireless/rt2x00/rt2x00usb.h index e40df40..b5c1d17 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.h +++ b/drivers/net/wireless/rt2x00/rt2x00usb.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 5f97217..b3044cf 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt61pci.h b/drivers/net/wireless/rt2x00/rt61pci.h index 4c6524e..e4578fb 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.h +++ b/drivers/net/wireless/rt2x00/rt61pci.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index e2d9dcc..2f0d7e2 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify diff --git a/drivers/net/wireless/rt2x00/rt73usb.h b/drivers/net/wireless/rt2x00/rt73usb.h index d49dcaa..bc63590 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.h +++ b/drivers/net/wireless/rt2x00/rt73usb.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2004 - 2007 rt2x00 SourceForge Project + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project <http://rt2x00.serialmonkey.com> This program is free software; you can redistribute it and/or modify -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 02/19] rt2x00: Queue handling overhaul 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn 2008-02-03 14:42 ` [PATCH 01/19] rt2x00: Update copyright notice Ivo van Doorn @ 2008-02-03 14:45 ` Ivo van Doorn 2008-02-03 14:46 ` [PATCH 03/19] rt2x00: don't write past the end when writing short descriptors on rt61 Ivo van Doorn ` (16 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:45 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel This introduces a big queue handling overhaul, this also renames "ring" to "queues". Move queue handling into rt2x00queue.c and the matching header, use Kerneldoc to improve rt2x00 library documentation. Access to the queues is now protected under a spinlock, this to prevent race conditions which could corrupt the indexing system of the queue. Each queue entry allocates x bytes for driver/device specific data, this cleans up the queue structure significantly and improves code readability. rt2500usb no longer needs 2 entries in the beacon queue to correctly send out the guardian byte. This is now handled in the entry specific structure. rt61 and rt73 now use the correct descriptor size for beacon frames, since this data is written into the registers not the entire TXD descriptor was used but instead of a subset of it named TXINFO. Finally this also fixes numerous other bugs related to incorrect beacon handling or beacon related code. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- patch size 164k, located on server: http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.1.0/0002-rt2x00-Queue-handling-overhaul.patch drivers/net/wireless/rt2x00/Makefile | 2 +- drivers/net/wireless/rt2x00/rt2400pci.c | 204 ++++++++------ drivers/net/wireless/rt2x00/rt2500pci.c | 199 ++++++++------ drivers/net/wireless/rt2x00/rt2500usb.c | 201 ++++++++------ drivers/net/wireless/rt2x00/rt2x00.h | 133 ++++------ drivers/net/wireless/rt2x00/rt2x00debug.c | 32 +- drivers/net/wireless/rt2x00/rt2x00dev.c | 403 +++++++-------------------- drivers/net/wireless/rt2x00/rt2x00dump.h | 6 +- drivers/net/wireless/rt2x00/rt2x00lib.h | 10 + drivers/net/wireless/rt2x00/rt2x00mac.c | 55 ++-- drivers/net/wireless/rt2x00/rt2x00pci.c | 223 ++++++++------- drivers/net/wireless/rt2x00/rt2x00pci.h | 49 +++- drivers/net/wireless/rt2x00/rt2x00queue.c | 291 +++++++++++++++++++ drivers/net/wireless/rt2x00/rt2x00queue.h | 435 +++++++++++++++++++++++++++++ drivers/net/wireless/rt2x00/rt2x00reg.h | 2 +- drivers/net/wireless/rt2x00/rt2x00ring.h | 290 ------------------- drivers/net/wireless/rt2x00/rt2x00usb.c | 291 +++++++++++--------- drivers/net/wireless/rt2x00/rt2x00usb.h | 48 +++- drivers/net/wireless/rt2x00/rt61pci.c | 256 +++++++++-------- drivers/net/wireless/rt2x00/rt61pci.h | 1 + drivers/net/wireless/rt2x00/rt73usb.c | 134 ++++++--- drivers/net/wireless/rt2x00/rt73usb.h | 1 + 22 files changed, 1881 insertions(+), 1385 deletions(-) create mode 100644 drivers/net/wireless/rt2x00/rt2x00queue.c create mode 100644 drivers/net/wireless/rt2x00/rt2x00queue.h delete mode 100644 drivers/net/wireless/rt2x00/rt2x00ring.h ^ permalink raw reply [flat|nested] 73+ messages in thread
* [PATCH 03/19] rt2x00: don't write past the end when writing short descriptors on rt61 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn 2008-02-03 14:42 ` [PATCH 01/19] rt2x00: Update copyright notice Ivo van Doorn 2008-02-03 14:45 ` [PATCH 02/19] rt2x00: Queue handling overhaul Ivo van Doorn @ 2008-02-03 14:46 ` Ivo van Doorn 2008-02-03 14:47 ` [PATCH 04/19] rt2x00: Add new USB ID to rt2500usb Ivo van Doorn ` (15 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:46 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel From: Adam Baker <linux@baker-net.org.uk> The space allocated in the skb for a descriptor is only 24 bytes when setting up beacons in rt61 so make sure we don't write to the descriptor words beyond that and corrupt the beacon packet. Signed-off-by: Adam Baker <linux@baker-net.org.uk> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt61pci.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index b543801..fc5acdf 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c @@ -1528,9 +1528,11 @@ static void rt61pci_write_tx_desc(struct rt2x00_dev *rt2x00dev, rt2x00_set_field32(&word, TXD_W5_WAITING_DMA_DONE_INT, 1); rt2x00_desc_write(txd, 5, word); - rt2x00_desc_read(txd, 11, &word); - rt2x00_set_field32(&word, TXD_W11_BUFFER_LENGTH0, skbdesc->data_len); - rt2x00_desc_write(txd, 11, word); + if (skbdesc->desc_len > TXINFO_SIZE) { + rt2x00_desc_read(txd, 11, &word); + rt2x00_set_field32(&word, TXD_W11_BUFFER_LENGTH0, skbdesc->data_len); + rt2x00_desc_write(txd, 11, word); + } rt2x00_desc_read(txd, 0, &word); rt2x00_set_field32(&word, TXD_W0_OWNER_NIC, 1); -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 04/19] rt2x00: Add new USB ID to rt2500usb 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (2 preceding siblings ...) 2008-02-03 14:46 ` [PATCH 03/19] rt2x00: don't write past the end when writing short descriptors on rt61 Ivo van Doorn @ 2008-02-03 14:47 ` Ivo van Doorn 2008-02-03 14:47 ` [PATCH 05/19] rt2x00: Fix tx parameter initialization Ivo van Doorn ` (14 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:47 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2500usb.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 764a920..4a7c665 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c @@ -1876,11 +1876,11 @@ static struct usb_device_id rt2500usb_device_table[] = { /* Hercules */ { USB_DEVICE(0x06f8, 0xe000), USB_DEVICE_DATA(&rt2500usb_ops) }, /* Melco */ + { USB_DEVICE(0x0411, 0x005e), USB_DEVICE_DATA(&rt2500usb_ops) }, { USB_DEVICE(0x0411, 0x0066), USB_DEVICE_DATA(&rt2500usb_ops) }, { USB_DEVICE(0x0411, 0x0067), USB_DEVICE_DATA(&rt2500usb_ops) }, { USB_DEVICE(0x0411, 0x008b), USB_DEVICE_DATA(&rt2500usb_ops) }, { USB_DEVICE(0x0411, 0x0097), USB_DEVICE_DATA(&rt2500usb_ops) }, - /* MSI */ { USB_DEVICE(0x0db0, 0x6861), USB_DEVICE_DATA(&rt2500usb_ops) }, { USB_DEVICE(0x0db0, 0x6865), USB_DEVICE_DATA(&rt2500usb_ops) }, -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 05/19] rt2x00: Fix tx parameter initialization 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (3 preceding siblings ...) 2008-02-03 14:47 ` [PATCH 04/19] rt2x00: Add new USB ID to rt2500usb Ivo van Doorn @ 2008-02-03 14:47 ` Ivo van Doorn 2008-02-03 14:48 ` [PATCH 06/19] rt2x00: Enable master and adhoc mode again Ivo van Doorn ` (13 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:47 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Check if the aifs, cw_min and cw_max are above 0 when determining if the default should be used. Tor aifs a negative number is used to determine if the default should be used or not. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00mac.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index 411ed5d..380cc5b 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -396,17 +396,17 @@ int rt2x00mac_conf_tx(struct ieee80211_hw *hw, int queue_idx, * The passed variables are stored as real value ((2^n)-1). * Ralink registers require to know the bit number 'n'. */ - if (params->cw_min) + if (params->cw_min > 0) queue->cw_min = fls(params->cw_min); else queue->cw_min = 5; /* cw_min: 2^5 = 32. */ - if (params->cw_max) + if (params->cw_max > 0) queue->cw_max = fls(params->cw_max); else queue->cw_max = 10; /* cw_min: 2^10 = 1024. */ - if (params->aifs) + if (params->aifs >= 0) queue->aifs = params->aifs; else queue->aifs = 2; -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 06/19] rt2x00: Enable master and adhoc mode again 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (4 preceding siblings ...) 2008-02-03 14:47 ` [PATCH 05/19] rt2x00: Fix tx parameter initialization Ivo van Doorn @ 2008-02-03 14:48 ` Ivo van Doorn 2008-02-03 14:48 ` [PATCH 07/19] rt2x00: Driver requiring firmware should select crc algo Ivo van Doorn ` (12 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:48 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel This will enable the creation of master mode and adhoc interfaces again. This does not mean the issues surrounding beaconing have been resolved, but this will make testing easier and perhaps we can discover which cards are actually working and which ones not. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00mac.c | 8 -------- 1 files changed, 0 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index 380cc5b..f08c151 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -164,14 +164,6 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw, struct rt2x00_dev *rt2x00dev = hw->priv; struct interface *intf = &rt2x00dev->interface; - /* FIXME: Beaconing is broken in rt2x00. */ - if (conf->type == IEEE80211_IF_TYPE_IBSS || - conf->type == IEEE80211_IF_TYPE_AP) { - ERROR(rt2x00dev, - "rt2x00 does not support Adhoc or Master mode"); - return -EOPNOTSUPP; - } - /* * Don't allow interfaces to be added while * either the device has disappeared or when -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 07/19] rt2x00: Driver requiring firmware should select crc algo 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (5 preceding siblings ...) 2008-02-03 14:48 ` [PATCH 06/19] rt2x00: Enable master and adhoc mode again Ivo van Doorn @ 2008-02-03 14:48 ` Ivo van Doorn 2008-02-03 14:49 ` [PATCH 08/19] rt2x00: Add per-interface structure Ivo van Doorn ` (11 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:48 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel The driver should select what CRC algorithm is required when performing a checksum on the firmware. rt61pci & rt73usb require crc-itu-t rt2800pci & rt2800usb require crc-ccitt Legacy 2800pci/usb driver uses crc-itu-t + bit order reversion, but that is just inefficient especially since the end result is the same as a different algorithm which is also available as library. ;) Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/Kconfig | 1 + drivers/net/wireless/rt2x00/rt2x00.h | 2 + drivers/net/wireless/rt2x00/rt2x00dev.c | 8 ++--- drivers/net/wireless/rt2x00/rt2x00firmware.c | 41 ++++++++++++++++++++------ drivers/net/wireless/rt2x00/rt61pci.c | 3 +- drivers/net/wireless/rt2x00/rt73usb.c | 3 +- 6 files changed, 42 insertions(+), 16 deletions(-) diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig index da05b1f..28f3e5e 100644 --- a/drivers/net/wireless/rt2x00/Kconfig +++ b/drivers/net/wireless/rt2x00/Kconfig @@ -28,6 +28,7 @@ config RT2X00_LIB_USB config RT2X00_LIB_FIRMWARE boolean depends on RT2X00_LIB + select CRC_CCITT select CRC_ITU_T select FW_LOADER diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 14668f0..d5b9a3c 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h @@ -555,6 +555,8 @@ enum rt2x00_flags { * Driver features */ DRIVER_REQUIRE_FIRMWARE, + DRIVER_REQUIRE_FIRMWARE_CRC_ITU_T, + DRIVER_REQUIRE_FIRMWARE_CCITT, DRIVER_REQUIRE_BEACON_GUARD, DRIVER_REQUIRE_ATIM_QUEUE, diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 9c4ebb0..7089808 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -983,11 +983,9 @@ int rt2x00lib_start(struct rt2x00_dev *rt2x00dev) * If this is the first interface which is added, * we should load the firmware now. */ - if (test_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags)) { - retval = rt2x00lib_load_firmware(rt2x00dev); - if (retval) - return retval; - } + retval = rt2x00lib_load_firmware(rt2x00dev); + if (retval) + return retval; /* * Initialize the device. diff --git a/drivers/net/wireless/rt2x00/rt2x00firmware.c b/drivers/net/wireless/rt2x00/rt2x00firmware.c index 442ff80..4f9fe56 100644 --- a/drivers/net/wireless/rt2x00/rt2x00firmware.c +++ b/drivers/net/wireless/rt2x00/rt2x00firmware.c @@ -23,6 +23,7 @@ Abstract: rt2x00 firmware loading routines. */ +#include <linux/crc-ccitt.h> #include <linux/crc-itu-t.h> #include <linux/kernel.h> #include <linux/module.h> @@ -37,7 +38,6 @@ static int rt2x00lib_request_firmware(struct rt2x00_dev *rt2x00dev) char *fw_name; int retval; u16 crc; - u16 tmp; /* * Read correct firmware from harddisk. @@ -64,17 +64,37 @@ static int rt2x00lib_request_firmware(struct rt2x00_dev *rt2x00dev) } /* - * Validate the firmware using 16 bit CRC. - * The last 2 bytes of the firmware are the CRC - * so substract those 2 bytes from the CRC checksum, - * and set those 2 bytes to 0 when calculating CRC. + * Perform crc validation on the firmware. + * The last 2 bytes in the firmware array are the crc checksum itself, + * this means that we should never pass those 2 bytes to the crc + * algorithm. */ - tmp = 0; - crc = crc_itu_t(0, fw->data, fw->size - 2); - crc = crc_itu_t(crc, (u8 *)&tmp, 2); + if (test_bit(DRIVER_REQUIRE_FIRMWARE_CRC_ITU_T, &rt2x00dev->flags)) { + /* + * Use the crc itu-t algorithm. + * Use 0 for the last 2 bytes to complete the checksum. + */ + crc = crc_itu_t(0, fw->data, fw->size - 2); + crc = crc_itu_t_byte(crc, 0); + crc = crc_itu_t_byte(crc, 0); + } else if (test_bit(DRIVER_REQUIRE_FIRMWARE_CCITT, &rt2x00dev->flags)) { + /* + * Use the crc ccitt algorithm. + * This will return the same value as the legacy driver which + * used bit ordering reversion on the both the firmware bytes + * before input input as well as on the final output. + * Obviously using crc ccitt directly is much more efficient. + */ + crc = crc_ccitt(~0, fw->data, fw->size - 2); + } else { + ERROR(rt2x00dev, "No checksum algorithm selected " + "for firmware validation.\n"); + retval = -ENOENT; + goto exit; + } if (crc != (fw->data[fw->size - 2] << 8 | fw->data[fw->size - 1])) { - ERROR(rt2x00dev, "Firmware CRC error.\n"); + ERROR(rt2x00dev, "Firmware checksum error.\n"); retval = -ENOENT; goto exit; } @@ -96,6 +116,9 @@ int rt2x00lib_load_firmware(struct rt2x00_dev *rt2x00dev) { int retval; + if (!test_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags)) + return 0; + if (!rt2x00dev->fw) { retval = rt2x00lib_request_firmware(rt2x00dev); if (retval) diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index fc5acdf..6c97361 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c @@ -2255,9 +2255,10 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev) rt61pci_probe_hw_mode(rt2x00dev); /* - * This device requires firmware + * This device requires firmware. */ __set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags); + __set_bit(DRIVER_REQUIRE_FIRMWARE_CRC_ITU_T, &rt2x00dev->flags); /* * Set the rssi offset. diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index 2231557..01c020b 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c @@ -1846,9 +1846,10 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev) rt73usb_probe_hw_mode(rt2x00dev); /* - * This device requires firmware + * This device requires firmware. */ __set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags); + __set_bit(DRIVER_REQUIRE_FIRMWARE_CRC_ITU_T, &rt2x00dev->flags); /* * Set the rssi offset. -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 08/19] rt2x00: Add per-interface structure 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (6 preceding siblings ...) 2008-02-03 14:48 ` [PATCH 07/19] rt2x00: Driver requiring firmware should select crc algo Ivo van Doorn @ 2008-02-03 14:49 ` Ivo van Doorn 2008-02-03 14:50 ` [PATCH 09/19] rt2x00: Rate structure overhaul Ivo van Doorn ` (10 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:49 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Rework the interface handling. Delete the interface structure and replace it with a per-interface structure. This changes the way rt2x00 handles the active interface drastically. Copy ieee80211_bss_conf to the this rt2x00_intf structure during the bss_info_changed() callback function. This will allow us to reference it later, and removes the requirement for the device flag SHORT_PREAMBLE flag which is interface specific. Drivers receive the option to give the maximum number of virtual interfaces the device can handle. Virtual interface support: rt2400pci: 1 sta or 1 ap, * monitor interfaces rt2500pci: 1 sta or 1 ap, * monitor interfaces rt2500usb: 1 sta or 1 ap, * monitor interfaces rt61pci: 1 sta or 4 ap, * monitor interfaces rt73usb: 1 sta or 4 ap, * monitor interfaces At the moment none of the drivers support AP and STA interfaces simultaneously, this is a hardware limitation so future support will be very unlikely. Each interface structure receives its dedicated beacon entry, with this we can easily work with beaconing while multiple master mode interfaces are currently active. The configuration handlers for the MAC, BSSID and type are often called together since they all belong to the interface configuration. Merge the 3 configuration calls and cleanup the API between rt2x00lib and the drivers. While we are cleaning up the interface configuration anyway, we might as well clean up the configuration handler as well. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- Patch size 77k, located on server http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.1.0/0008-rt2x00-Add-per-interface-structure.patch drivers/net/wireless/rt2x00/rt2400pci.c | 84 ++++++------ drivers/net/wireless/rt2x00/rt2500pci.c | 98 +++++++------ drivers/net/wireless/rt2x00/rt2500usb.c | 207 ++++++++++++++++------------ drivers/net/wireless/rt2x00/rt2500usb.h | 1 + drivers/net/wireless/rt2x00/rt2x00.h | 113 +++++++++++---- drivers/net/wireless/rt2x00/rt2x00config.c | 119 ++++++++++------- drivers/net/wireless/rt2x00/rt2x00dev.c | 154 +++++++++++++++------ drivers/net/wireless/rt2x00/rt2x00lib.h | 10 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 152 ++++++++++++++------- drivers/net/wireless/rt2x00/rt2x00pci.c | 32 +++-- drivers/net/wireless/rt2x00/rt2x00queue.h | 3 - drivers/net/wireless/rt2x00/rt61pci.c | 169 +++++++++++++---------- drivers/net/wireless/rt2x00/rt61pci.h | 18 ++- drivers/net/wireless/rt2x00/rt73usb.c | 179 +++++++++++++----------- drivers/net/wireless/rt2x00/rt73usb.h | 17 ++- 15 files changed, 826 insertions(+), 530 deletions(-) ^ permalink raw reply [flat|nested] 73+ messages in thread
* [PATCH 09/19] rt2x00: Rate structure overhaul 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (7 preceding siblings ...) 2008-02-03 14:49 ` [PATCH 08/19] rt2x00: Add per-interface structure Ivo van Doorn @ 2008-02-03 14:50 ` Ivo van Doorn 2008-02-03 14:51 ` [PATCH 10/19] rt2x00: Remove HWMODE_{A,B,G} Ivo van Doorn ` (9 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:50 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Recent changes to the rate structure registration broke rt2x00, the hw_value was reduced from 32bits to 16bits while rt2x00 used the full 32bits. However the way rt2x00 used the value was inflexible and needed to be changed anyway. This patch creates a array containing information for each rate, the hw_value passed to mac80211 is the index value for that array including a field to indicate if short preamble should be enabled. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00config.c | 4 +- drivers/net/wireless/rt2x00/rt2x00dev.c | 173 +++++++++++++++++----------- drivers/net/wireless/rt2x00/rt2x00lib.h | 45 +++++++ drivers/net/wireless/rt2x00/rt2x00reg.h | 71 ----------- 4 files changed, 153 insertions(+), 140 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c index bbbf356..b39d816 100644 --- a/drivers/net/wireless/rt2x00/rt2x00config.c +++ b/drivers/net/wireless/rt2x00/rt2x00config.c @@ -242,9 +242,7 @@ config: band = &rt2x00dev->bands[conf->channel->band]; rate = &band->bitrates[band->n_bitrates - 1]; - - libconf.basic_rates = - DEVICE_GET_RATE_FIELD(rate->hw_value, RATEMASK) & DEV_BASIC_RATEMASK; + libconf.basic_rates = rt2x00_get_rate(rate->hw_value)->ratemask; } if (flags & CONFIG_UPDATE_CHANNEL) { diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 961bcb3..4fb6c58 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -548,10 +548,10 @@ void rt2x00lib_rxdone(struct queue_entry *entry, struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; struct ieee80211_rx_status *rx_status = &rt2x00dev->rx_status; struct ieee80211_supported_band *sband; - struct ieee80211_rate *rate; struct ieee80211_hdr *hdr; + const struct rt2x00_rate *rate; unsigned int i; - int val = 0, idx = -1; + int idx = -1; u16 fc; /* @@ -559,19 +559,15 @@ void rt2x00lib_rxdone(struct queue_entry *entry, */ sband = &rt2x00dev->bands[rt2x00dev->curr_band]; for (i = 0; i < sband->n_bitrates; i++) { - rate = &sband->bitrates[i]; + rate = rt2x00_get_rate(sband->bitrates[i].hw_value); /* * When frame was received with an OFDM bitrate, * the signal is the PLCP value. If it was received with - * a CCK bitrate the signal is the rate in 0.5kbit/s. + * a CCK bitrate the signal is the rate in 100kbit/s. */ - if (!rxdesc->ofdm) - val = DEVICE_GET_RATE_FIELD(rate->hw_value, RATE); - else - val = DEVICE_GET_RATE_FIELD(rate->hw_value, PLCP); - - if (val == rxdesc->signal) { + if ((rxdesc->ofdm && rate->plcp == rxdesc->signal) || + (!rxdesc->ofdm && rate->bitrate == rxdesc->signal)) { idx = i; break; } @@ -580,7 +576,7 @@ void rt2x00lib_rxdone(struct queue_entry *entry, /* * Only update link status if this is a beacon frame carrying our bssid. */ - hdr = (struct ieee80211_hdr*)entry->skb->data; + hdr = (struct ieee80211_hdr *)entry->skb->data; fc = le16_to_cpu(hdr->frame_control); if (is_beacon(fc) && rxdesc->my_bss) rt2x00lib_update_link_stats(&rt2x00dev->link, rxdesc->rssi); @@ -614,9 +610,9 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, { struct txentry_desc txdesc; struct skb_frame_desc *skbdesc = get_skb_frame_desc(skb); - struct ieee80211_hdr *ieee80211hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + const struct rt2x00_rate *rate; int tx_rate; - int bitrate; int length; int duration; int residual; @@ -643,8 +639,8 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, /* * Read required fields from ieee80211 header. */ - frame_control = le16_to_cpu(ieee80211hdr->frame_control); - seq_ctrl = le16_to_cpu(ieee80211hdr->seq_ctrl); + frame_control = le16_to_cpu(hdr->frame_control); + seq_ctrl = le16_to_cpu(hdr->seq_ctrl); tx_rate = control->tx_rate->hw_value; @@ -668,16 +664,12 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, tx_rate = control->rts_cts_rate->hw_value; } - /* - * Check for OFDM - */ - if (DEVICE_GET_RATE_FIELD(tx_rate, RATEMASK) & DEV_OFDM_RATEMASK) - __set_bit(ENTRY_TXD_OFDM_RATE, &txdesc.flags); + rate = rt2x00_get_rate(tx_rate); /* * Check if more fragments are pending */ - if (ieee80211_get_morefrag(ieee80211hdr)) { + if (ieee80211_get_morefrag(hdr)) { __set_bit(ENTRY_TXD_BURST, &txdesc.flags); __set_bit(ENTRY_TXD_MORE_FRAG, &txdesc.flags); } @@ -705,21 +697,21 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, * PLCP setup * Length calculation depends on OFDM/CCK rate. */ - txdesc.signal = DEVICE_GET_RATE_FIELD(tx_rate, PLCP); + txdesc.signal = rate->plcp; txdesc.service = 0x04; length = skb->len + FCS_LEN; - if (test_bit(ENTRY_TXD_OFDM_RATE, &txdesc.flags)) { + if (rate->flags & DEV_RATE_OFDM) { + __set_bit(ENTRY_TXD_OFDM_RATE, &txdesc.flags); + txdesc.length_high = (length >> 6) & 0x3f; txdesc.length_low = length & 0x3f; } else { - bitrate = DEVICE_GET_RATE_FIELD(tx_rate, RATE); - /* * Convert length to microseconds. */ - residual = get_duration_res(length, bitrate); - duration = get_duration(length, bitrate); + residual = get_duration_res(length, rate->bitrate); + duration = get_duration(length, rate->bitrate); if (residual != 0) { duration++; @@ -727,7 +719,7 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, /* * Check if we need to set the Length Extension */ - if (bitrate == 110 && residual <= 30) + if (rate->bitrate == 110 && residual <= 30) txdesc.service |= 0x80; } @@ -738,7 +730,7 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, * When preamble is enabled we should set the * preamble bit for the signal. */ - if (DEVICE_GET_RATE_FIELD(tx_rate, PREAMBLE)) + if (rt2x00_get_rate_preamble(tx_rate)) txdesc.signal |= 0x08; } @@ -763,6 +755,81 @@ EXPORT_SYMBOL_GPL(rt2x00lib_write_tx_desc); /* * Driver initialization handlers. */ +const struct rt2x00_rate rt2x00_supported_rates[12] = { + { + .flags = 0, + .bitrate = 10, + .ratemask = DEV_RATEMASK_1MB, + .plcp = 0x00, + }, + { + .flags = DEV_RATE_SHORT_PREAMBLE, + .bitrate = 20, + .ratemask = DEV_RATEMASK_2MB, + .plcp = 0x01, + }, + { + .flags = DEV_RATE_SHORT_PREAMBLE, + .bitrate = 55, + .ratemask = DEV_RATEMASK_5_5MB, + .plcp = 0x02, + }, + { + .flags = DEV_RATE_SHORT_PREAMBLE, + .bitrate = 110, + .ratemask = DEV_RATEMASK_11MB, + .plcp = 0x03, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 60, + .ratemask = DEV_RATEMASK_6MB, + .plcp = 0x0b, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 90, + .ratemask = DEV_RATEMASK_9MB, + .plcp = 0x0f, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 120, + .ratemask = DEV_RATEMASK_12MB, + .plcp = 0x0a, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 180, + .ratemask = DEV_RATEMASK_18MB, + .plcp = 0x0e, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 240, + .ratemask = DEV_RATEMASK_24MB, + .plcp = 0x09, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 360, + .ratemask = DEV_RATEMASK_36MB, + .plcp = 0x0d, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 480, + .ratemask = DEV_RATEMASK_48MB, + .plcp = 0x08, + }, + { + .flags = DEV_RATE_OFDM, + .bitrate = 540, + .ratemask = DEV_RATEMASK_54MB, + .plcp = 0x0c, + }, +}; + static void rt2x00lib_channel(struct ieee80211_channel *entry, const int channel, const int tx_power, const int value) @@ -777,18 +844,17 @@ static void rt2x00lib_channel(struct ieee80211_channel *entry, } static void rt2x00lib_rate(struct ieee80211_rate *entry, - const int rate, const int mask, - const int plcp, const int flags) + const u16 index, const struct rt2x00_rate *rate) { - entry->bitrate = rate; - entry->hw_value = - DEVICE_SET_RATE_FIELD(rate, RATE) | - DEVICE_SET_RATE_FIELD(mask, RATEMASK) | - DEVICE_SET_RATE_FIELD(plcp, PLCP); - entry->flags = flags; + entry->flags = 0; + entry->bitrate = rate->bitrate; + entry->hw_value = rt2x00_create_rate_hw_value(index, 0); entry->hw_value_short = entry->hw_value; - if (entry->flags & IEEE80211_RATE_SHORT_PREAMBLE) - entry->hw_value_short |= DEVICE_SET_RATE_FIELD(1, PREAMBLE); + + if (rate->flags & DEV_RATE_SHORT_PREAMBLE) { + entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE; + entry->hw_value_short |= rt2x00_create_rate_hw_value(index, 1); + } } static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, @@ -814,33 +880,8 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, /* * Initialize Rate list. */ - rt2x00lib_rate(&rates[0], 10, DEV_RATEMASK_1MB, - 0x00, 0); - rt2x00lib_rate(&rates[1], 20, DEV_RATEMASK_2MB, - 0x01, IEEE80211_RATE_SHORT_PREAMBLE); - rt2x00lib_rate(&rates[2], 55, DEV_RATEMASK_5_5MB, - 0x02, IEEE80211_RATE_SHORT_PREAMBLE); - rt2x00lib_rate(&rates[3], 110, DEV_RATEMASK_11MB, - 0x03, IEEE80211_RATE_SHORT_PREAMBLE); - - if (spec->num_rates > 4) { - rt2x00lib_rate(&rates[4], 60, DEV_RATEMASK_6MB, - 0x0b, 0); - rt2x00lib_rate(&rates[5], 90, DEV_RATEMASK_9MB, - 0x0f, 0); - rt2x00lib_rate(&rates[6], 120, DEV_RATEMASK_12MB, - 0x0a, 0); - rt2x00lib_rate(&rates[7], 180, DEV_RATEMASK_18MB, - 0x0e, 0); - rt2x00lib_rate(&rates[8], 240, DEV_RATEMASK_24MB, - 0x09, 0); - rt2x00lib_rate(&rates[9], 360, DEV_RATEMASK_36MB, - 0x0d, 0); - rt2x00lib_rate(&rates[10], 480, DEV_RATEMASK_48MB, - 0x08, 0); - rt2x00lib_rate(&rates[11], 540, DEV_RATEMASK_54MB, - 0x0c, 0); - } + for (i = 0; i < spec->num_rates; i++) + rt2x00lib_rate(&rates[0], i, rt2x00_get_rate(i)); /* * Initialize Channel list. diff --git a/drivers/net/wireless/rt2x00/rt2x00lib.h b/drivers/net/wireless/rt2x00/rt2x00lib.h index f6789fd..ca9630c 100644 --- a/drivers/net/wireless/rt2x00/rt2x00lib.h +++ b/drivers/net/wireless/rt2x00/rt2x00lib.h @@ -34,6 +34,51 @@ #define RFKILL_POLL_INTERVAL ( 1000 ) /* + * rt2x00_rate: Per rate device information + */ +struct rt2x00_rate { + unsigned short flags; +#define DEV_RATE_OFDM 0x0001 +#define DEV_RATE_SHORT_PREAMBLE 0x0002 + + unsigned short bitrate; /* In 100kbit/s */ + + unsigned short ratemask; +#define DEV_RATEMASK_1MB ( (1 << 1) - 1 ) +#define DEV_RATEMASK_2MB ( (1 << 2) - 1 ) +#define DEV_RATEMASK_5_5MB ( (1 << 3) - 1 ) +#define DEV_RATEMASK_11MB ( (1 << 4) - 1 ) +#define DEV_RATEMASK_6MB ( (1 << 5) - 1 ) +#define DEV_RATEMASK_9MB ( (1 << 6) - 1 ) +#define DEV_RATEMASK_12MB ( (1 << 7) - 1 ) +#define DEV_RATEMASK_18MB ( (1 << 8) - 1 ) +#define DEV_RATEMASK_24MB ( (1 << 9) - 1 ) +#define DEV_RATEMASK_36MB ( (1 << 10) - 1 ) +#define DEV_RATEMASK_48MB ( (1 << 11) - 1 ) +#define DEV_RATEMASK_54MB ( (1 << 12) - 1 ) + + unsigned short plcp; +}; + +extern const struct rt2x00_rate rt2x00_supported_rates[12]; + +static inline u16 rt2x00_create_rate_hw_value(const u16 index, + const u16 short_preamble) +{ + return (short_preamble << 8) | (index & 0xff); +} + +static inline const struct rt2x00_rate *rt2x00_get_rate(const u16 hw_value) +{ + return &rt2x00_supported_rates[hw_value & 0xff]; +} + +static inline int rt2x00_get_rate_preamble(const u16 hw_value) +{ + return (hw_value & 0xff00); +} + +/* * Radio control handlers. */ int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev); diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h index 0523d75..add1f09 100644 --- a/drivers/net/wireless/rt2x00/rt2x00reg.h +++ b/drivers/net/wireless/rt2x00/rt2x00reg.h @@ -218,75 +218,4 @@ static inline u8 rt2x00_get_field8(const u8 reg, return (reg & field.bit_mask) >> field.bit_offset; } -/* - * Device specific rate value. - * We will have to create the device specific rate value - * passed to the ieee80211 kernel. We need to make it a consist of - * multiple fields because we want to store more then 1 device specific - * values inside the value. - * 1 - rate, stored as 100 kbit/s. - * 2 - preamble, short_preamble enabled flag. - * 3 - MASK_RATE, which rates are enabled in this mode, this mask - * corresponds with the TX register format for the current device. - * 4 - plcp, 802.11b rates are device specific, - * 802.11g rates are set according to the ieee802.11a-1999 p.14. - * The bit to enable preamble is set in a seperate define. - */ -#define DEV_RATE FIELD32(0x000007ff) -#define DEV_PREAMBLE FIELD32(0x00000800) -#define DEV_RATEMASK FIELD32(0x00fff000) -#define DEV_PLCP FIELD32(0xff000000) - -/* - * Bitfields - */ -#define DEV_RATEBIT_1MB ( 1 << 0 ) -#define DEV_RATEBIT_2MB ( 1 << 1 ) -#define DEV_RATEBIT_5_5MB ( 1 << 2 ) -#define DEV_RATEBIT_11MB ( 1 << 3 ) -#define DEV_RATEBIT_6MB ( 1 << 4 ) -#define DEV_RATEBIT_9MB ( 1 << 5 ) -#define DEV_RATEBIT_12MB ( 1 << 6 ) -#define DEV_RATEBIT_18MB ( 1 << 7 ) -#define DEV_RATEBIT_24MB ( 1 << 8 ) -#define DEV_RATEBIT_36MB ( 1 << 9 ) -#define DEV_RATEBIT_48MB ( 1 << 10 ) -#define DEV_RATEBIT_54MB ( 1 << 11 ) - -/* - * Bitmasks for DEV_RATEMASK - */ -#define DEV_RATEMASK_1MB ( (DEV_RATEBIT_1MB << 1) -1 ) -#define DEV_RATEMASK_2MB ( (DEV_RATEBIT_2MB << 1) -1 ) -#define DEV_RATEMASK_5_5MB ( (DEV_RATEBIT_5_5MB << 1) -1 ) -#define DEV_RATEMASK_11MB ( (DEV_RATEBIT_11MB << 1) -1 ) -#define DEV_RATEMASK_6MB ( (DEV_RATEBIT_6MB << 1) -1 ) -#define DEV_RATEMASK_9MB ( (DEV_RATEBIT_9MB << 1) -1 ) -#define DEV_RATEMASK_12MB ( (DEV_RATEBIT_12MB << 1) -1 ) -#define DEV_RATEMASK_18MB ( (DEV_RATEBIT_18MB << 1) -1 ) -#define DEV_RATEMASK_24MB ( (DEV_RATEBIT_24MB << 1) -1 ) -#define DEV_RATEMASK_36MB ( (DEV_RATEBIT_36MB << 1) -1 ) -#define DEV_RATEMASK_48MB ( (DEV_RATEBIT_48MB << 1) -1 ) -#define DEV_RATEMASK_54MB ( (DEV_RATEBIT_54MB << 1) -1 ) - -/* - * Bitmask groups of bitrates - */ -#define DEV_BASIC_RATEMASK \ - ( DEV_RATEMASK_11MB | \ - DEV_RATEBIT_6MB | DEV_RATEBIT_12MB | DEV_RATEBIT_24MB ) - -#define DEV_CCK_RATEMASK ( DEV_RATEMASK_11MB ) -#define DEV_OFDM_RATEMASK ( DEV_RATEMASK_54MB & ~DEV_CCK_RATEMASK ) - -/* - * Macro's to set and get specific fields from the device specific val and val2 - * fields inside the ieee80211_rate entry. - */ -#define DEVICE_SET_RATE_FIELD(__value, __mask) \ - (int)( ((__value) << DEV_##__mask.bit_offset) & DEV_##__mask.bit_mask ) - -#define DEVICE_GET_RATE_FIELD(__value, __mask) \ - (int)( ((__value) & DEV_##__mask.bit_mask) >> DEV_##__mask.bit_offset ) - #endif /* RT2X00REG_H */ -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 10/19] rt2x00: Remove HWMODE_{A,B,G} 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (8 preceding siblings ...) 2008-02-03 14:50 ` [PATCH 09/19] rt2x00: Rate structure overhaul Ivo van Doorn @ 2008-02-03 14:51 ` Ivo van Doorn 2008-02-03 14:51 ` [PATCH 11/19] rt2x00: Remove TX_MGMT queue usage Ivo van Doorn ` (8 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:51 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel rt2500usb initialized the SIFS and EIFS without using the values coming from rt2x000lib. After this is fixed HWMODE_{A,B,G} is now unused and can be removed in favour of the ieee80211_band enumeration which could still be usefull later. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2500usb.c | 14 +++----------- drivers/net/wireless/rt2x00/rt2500usb.h | 2 +- drivers/net/wireless/rt2x00/rt2x00.h | 6 +----- drivers/net/wireless/rt2x00/rt2x00config.c | 17 ++--------------- drivers/net/wireless/rt2x00/rt2x00dev.c | 6 +++--- 5 files changed, 10 insertions(+), 35 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 0b902c8..e348582 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c @@ -358,18 +358,9 @@ static int rt2500usb_config_preamble(struct rt2x00_dev *rt2x00dev, } static void rt2500usb_config_phymode(struct rt2x00_dev *rt2x00dev, - const int phymode, const int basic_rate_mask) { rt2500usb_register_write(rt2x00dev, TXRX_CSR11, basic_rate_mask); - - if (phymode == HWMODE_B) { - rt2500usb_register_write(rt2x00dev, MAC_CSR11, 0x000b); - rt2500usb_register_write(rt2x00dev, MAC_CSR12, 0x0040); - } else { - rt2500usb_register_write(rt2x00dev, MAC_CSR11, 0x0005); - rt2500usb_register_write(rt2x00dev, MAC_CSR12, 0x016c); - } } static void rt2500usb_config_channel(struct rt2x00_dev *rt2x00dev, @@ -507,6 +498,8 @@ static void rt2500usb_config_duration(struct rt2x00_dev *rt2x00dev, u16 reg; rt2500usb_register_write(rt2x00dev, MAC_CSR10, libconf->slot_time); + rt2500usb_register_write(rt2x00dev, MAC_CSR11, libconf->sifs); + rt2500usb_register_write(rt2x00dev, MAC_CSR12, libconf->eifs); rt2500usb_register_read(rt2x00dev, TXRX_CSR18, ®); rt2x00_set_field16(®, TXRX_CSR18_INTERVAL, @@ -519,8 +512,7 @@ static void rt2500usb_config(struct rt2x00_dev *rt2x00dev, const unsigned int flags) { if (flags & CONFIG_UPDATE_PHYMODE) - rt2500usb_config_phymode(rt2x00dev, libconf->phymode, - libconf->basic_rates); + rt2500usb_config_phymode(rt2x00dev, libconf->basic_rates); if (flags & CONFIG_UPDATE_CHANNEL) rt2500usb_config_channel(rt2x00dev, &libconf->rf, libconf->conf->power_level); diff --git a/drivers/net/wireless/rt2x00/rt2500usb.h b/drivers/net/wireless/rt2x00/rt2500usb.h index 23ba0c1..647cd2d 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.h +++ b/drivers/net/wireless/rt2x00/rt2500usb.h @@ -135,7 +135,7 @@ * Misc MAC_CSR registers. * MAC_CSR9: Timer control. * MAC_CSR10: Slot time. - * MAC_CSR11: IFS. + * MAC_CSR11: SIFS. * MAC_CSR12: EIFS. * MAC_CSR13: Power mode0. * MAC_CSR14: Power mode1. diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 01cf9e6..6c30bae 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h @@ -390,10 +390,6 @@ static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif) return (struct rt2x00_intf *)vif->drv_priv; } -#define HWMODE_B 0 -#define HWMODE_G 1 -#define HWMODE_A 2 - /* * Details about the supported modes, rates and channels * of a particular chipset. This is used by rt2x00lib @@ -433,7 +429,7 @@ struct rt2x00lib_conf { struct antenna_setup ant; - int phymode; + enum ieee80211_band band; int basic_rates; int slot_time; diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c index b39d816..46888f9 100644 --- a/drivers/net/wireless/rt2x00/rt2x00config.c +++ b/drivers/net/wireless/rt2x00/rt2x00config.c @@ -225,23 +225,10 @@ config: memset(&libconf, 0, sizeof(libconf)); if (flags & CONFIG_UPDATE_PHYMODE) { - switch (conf->channel->band) { - case IEEE80211_BAND_5GHZ: - libconf.phymode = HWMODE_A; - break; - case IEEE80211_BAND_2GHZ: - /* Uh oh. what about B? */ - libconf.phymode = HWMODE_G; - break; - default: - ERROR(rt2x00dev, - "Attempt to configure unsupported mode (%d)" - "Defaulting to 802.11b", conf->channel->band); - libconf.phymode = HWMODE_B; - } - band = &rt2x00dev->bands[conf->channel->band]; rate = &band->bitrates[band->n_bitrates - 1]; + + libconf.band = conf->channel->band; libconf.basic_rates = rt2x00_get_rate(rate->hw_value)->ratemask; } diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 4fb6c58..644a09a 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -903,7 +903,7 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, * Rates: CCK. * Channels: 2.4 GHz */ - if (spec->num_modes > HWMODE_B) { + if (spec->num_modes > 0) { sbands[IEEE80211_BAND_2GHZ].n_channels = 14; sbands[IEEE80211_BAND_2GHZ].n_bitrates = 4; sbands[IEEE80211_BAND_2GHZ].channels = channels; @@ -916,7 +916,7 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, * Rates: CCK, OFDM. * Channels: 2.4 GHz */ - if (spec->num_modes > HWMODE_G) { + if (spec->num_modes > 1) { sbands[IEEE80211_BAND_2GHZ].n_channels = 14; sbands[IEEE80211_BAND_2GHZ].n_bitrates = spec->num_rates; sbands[IEEE80211_BAND_2GHZ].channels = channels; @@ -929,7 +929,7 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, * Rates: OFDM. * Channels: OFDM, UNII, HiperLAN2. */ - if (spec->num_modes > HWMODE_A) { + if (spec->num_modes > 2) { sbands[IEEE80211_BAND_5GHZ].n_channels = spec->num_channels - 14; sbands[IEEE80211_BAND_5GHZ].n_bitrates = spec->num_rates - 4; sbands[IEEE80211_BAND_5GHZ].channels = &channels[14]; -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 11/19] rt2x00: Remove TX_MGMT queue usage 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (9 preceding siblings ...) 2008-02-03 14:51 ` [PATCH 10/19] rt2x00: Remove HWMODE_{A,B,G} Ivo van Doorn @ 2008-02-03 14:51 ` Ivo van Doorn 2008-02-03 14:52 ` [PATCH 12/19] rt2x00: Initialize QID from queue->qid Ivo van Doorn ` (7 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:51 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel rt73usb doesn't have a 5th queue, correctly initialize hw->queues rt61pci had a 5th queue but was removed recently, correctly initialize hw->queues and remove the last remnants. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt61pci.c | 5 +---- drivers/net/wireless/rt2x00/rt73usb.c | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index aa6b1cf..2f1db99 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c @@ -1435,7 +1435,6 @@ static void rt61pci_disable_radio(struct rt2x00_dev *rt2x00dev) rt2x00_set_field32(®, TX_CNTL_CSR_ABORT_TX_AC1, 1); rt2x00_set_field32(®, TX_CNTL_CSR_ABORT_TX_AC2, 1); rt2x00_set_field32(®, TX_CNTL_CSR_ABORT_TX_AC3, 1); - rt2x00_set_field32(®, TX_CNTL_CSR_ABORT_TX_MGMT, 1); rt2x00pci_register_write(rt2x00dev, TX_CNTL_CSR, reg); /* @@ -1608,8 +1607,6 @@ static void rt61pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev, (queue == IEEE80211_TX_QUEUE_DATA2)); rt2x00_set_field32(®, TX_CNTL_CSR_KICK_TX_AC3, (queue == IEEE80211_TX_QUEUE_DATA3)); - rt2x00_set_field32(®, TX_CNTL_CSR_KICK_TX_MGMT, - (queue == IEEE80211_TX_QUEUE_DATA4)); rt2x00pci_register_write(rt2x00dev, TX_CNTL_CSR, reg); } @@ -2209,7 +2206,7 @@ static void rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev) rt2x00dev->hw->extra_tx_headroom = 0; rt2x00dev->hw->max_signal = MAX_SIGNAL; rt2x00dev->hw->max_rssi = MAX_RX_SSI; - rt2x00dev->hw->queues = 5; + rt2x00dev->hw->queues = 4; SET_IEEE80211_DEV(rt2x00dev->hw, &rt2x00dev_pci(rt2x00dev)->dev); SET_IEEE80211_PERM_ADDR(rt2x00dev->hw, diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index be8bfc5..cff5eb4 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c @@ -1793,7 +1793,7 @@ static void rt73usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev) rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE; rt2x00dev->hw->max_signal = MAX_SIGNAL; rt2x00dev->hw->max_rssi = MAX_RX_SSI; - rt2x00dev->hw->queues = 5; + rt2x00dev->hw->queues = 4; SET_IEEE80211_DEV(rt2x00dev->hw, &rt2x00dev_usb(rt2x00dev)->dev); SET_IEEE80211_PERM_ADDR(rt2x00dev->hw, -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 12/19] rt2x00: Initialize QID from queue->qid 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (10 preceding siblings ...) 2008-02-03 14:51 ` [PATCH 11/19] rt2x00: Remove TX_MGMT queue usage Ivo van Doorn @ 2008-02-03 14:52 ` Ivo van Doorn 2008-02-03 14:52 ` [PATCH 13/19] rt2x00: Use ieee80211_channel_to_frequency() Ivo van Doorn ` (6 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:52 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel The QID_MGMT is assigned to the beacon and atim queue during initialization. This means we don't need a seperate check in write_tx_desc().. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00dev.c | 12 +----------- 1 files changed, 1 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 644a09a..21d8514 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -621,22 +621,12 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, memset(&txdesc, 0, sizeof(txdesc)); + txdesc.queue = skbdesc->entry->queue->qid; txdesc.cw_min = skbdesc->entry->queue->cw_min; txdesc.cw_max = skbdesc->entry->queue->cw_max; txdesc.aifs = skbdesc->entry->queue->aifs; /* - * Identify queue - */ - if (control->queue < rt2x00dev->hw->queues) - txdesc.queue = control->queue; - else if (control->queue == IEEE80211_TX_QUEUE_BEACON || - control->queue == IEEE80211_TX_QUEUE_AFTER_BEACON) - txdesc.queue = QID_MGMT; - else - txdesc.queue = QID_OTHER; - - /* * Read required fields from ieee80211 header. */ frame_control = le16_to_cpu(hdr->frame_control); -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 13/19] rt2x00: Use ieee80211_channel_to_frequency() 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (11 preceding siblings ...) 2008-02-03 14:52 ` [PATCH 12/19] rt2x00: Initialize QID from queue->qid Ivo van Doorn @ 2008-02-03 14:52 ` Ivo van Doorn 2008-02-03 14:53 ` [PATCH 14/19] rt2x00: Make use of MAC80211_LED_TRIGGERS Ivo van Doorn ` (5 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:52 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel No need to perform the calculation ourselves when wireless provides a helper function for it. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00dev.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 21d8514..9a6ede0 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -824,10 +824,7 @@ static void rt2x00lib_channel(struct ieee80211_channel *entry, const int channel, const int tx_power, const int value) { - if (channel <= 14) - entry->center_freq = 2407 + (5 * channel); - else - entry->center_freq = 5000 + (5 * channel); + entry->center_freq = ieee80211_channel_to_frequency(channel); entry->hw_value = value; entry->max_power = tx_power; entry->max_antenna_gain = 0xff; -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 14/19] rt2x00: Make use of MAC80211_LED_TRIGGERS 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (12 preceding siblings ...) 2008-02-03 14:52 ` [PATCH 13/19] rt2x00: Use ieee80211_channel_to_frequency() Ivo van Doorn @ 2008-02-03 14:53 ` Ivo van Doorn 2008-02-03 14:54 ` [PATCH 15/19] rt2x00: Enable LED class support for rt2500usb/rt73usb Ivo van Doorn ` (4 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:53 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel >From ad1724df99ba8b555edd85b0cd0ab6cdb0559086 Mon Sep 17 00:00:00 2001 From: Ivo van Doorn <IvDoorn@gmail.com> Date: Sat, 2 Feb 2008 19:20:20 +0100 Subject: [PATCH] rt2x00: Make use of MAC80211_LED_TRIGGERS Make use of the led triggers provided by mac80211 to control the led status. This can be enabled through a per-driver configuration option which will automatically enable the generic handler in rt2x00lib. This has been enabled for rt2500usb and rt73usb for the moment since the led class will call set_brightness in irq context which will not work correctly with the usb drivers who need to sleep. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- Patch size 37k, located on server: http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.1.0/0014-rt2x00-Make-use-of-MAC80211_LED_TRIGGERS.patch drivers/net/wireless/rt2x00/Kconfig | 28 +++++ drivers/net/wireless/rt2x00/Makefile | 4 + drivers/net/wireless/rt2x00/rt2400pci.c | 88 ++++++++------- drivers/net/wireless/rt2x00/rt2500pci.c | 88 ++++++++------- drivers/net/wireless/rt2x00/rt2500usb.c | 91 +++++++++------- drivers/net/wireless/rt2x00/rt2x00.h | 27 +++-- drivers/net/wireless/rt2x00/rt2x00dev.c | 19 +++- drivers/net/wireless/rt2x00/rt2x00lib.h | 33 ++++++ drivers/net/wireless/rt2x00/rt61pci.c | 180 ++++++++++++++----------------- drivers/net/wireless/rt2x00/rt73usb.c | 165 +++++++++++++--------------- 10 files changed, 403 insertions(+), 320 deletions(-) ^ permalink raw reply [flat|nested] 73+ messages in thread
* [PATCH 15/19] rt2x00: Enable LED class support for rt2500usb/rt73usb 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (13 preceding siblings ...) 2008-02-03 14:53 ` [PATCH 14/19] rt2x00: Make use of MAC80211_LED_TRIGGERS Ivo van Doorn @ 2008-02-03 14:54 ` Ivo van Doorn 2008-02-03 14:54 ` [PATCH 16/19] rt2x00: Fix rate initialization Ivo van Doorn ` (3 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:54 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Add kerneldoc for vendor request functions in rt2x00usb. Add asynchroneous vendor request function in rt2x00usb. With the availability of the asynchroneuous vendor request we can now enable LED class support for rt2500usb and rt73usb. Since LED handling is not important, it doesn't really matter if a register call fails (This solution is better then no LED class support at all). Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/Kconfig | 14 ++ drivers/net/wireless/rt2x00/rt2500usb.c | 20 ++- drivers/net/wireless/rt2x00/rt2x00leds.c | 217 ++++++++++++++++++++++++++++++ drivers/net/wireless/rt2x00/rt2x00leds.h | 63 +++++++++ drivers/net/wireless/rt2x00/rt2x00usb.c | 52 +++++++ drivers/net/wireless/rt2x00/rt2x00usb.h | 129 +++++++++++++----- drivers/net/wireless/rt2x00/rt73usb.c | 21 ++-- 7 files changed, 463 insertions(+), 53 deletions(-) create mode 100644 drivers/net/wireless/rt2x00/rt2x00leds.c create mode 100644 drivers/net/wireless/rt2x00/rt2x00leds.h diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig index 88a6ef6..51adb2f 100644 --- a/drivers/net/wireless/rt2x00/Kconfig +++ b/drivers/net/wireless/rt2x00/Kconfig @@ -133,6 +133,13 @@ config RT2500USB When compiled as a module, this driver will be called "rt2500usb.ko". +config RT2500USB_LEDS + bool "RT2500 leds support" + depends on RT2500USB + select RT2X00_LIB_LEDS + ---help--- + This adds support for led triggers provided my mac80211. + config RT73USB tristate "Ralink rt73 usb support" depends on RT2X00 && USB @@ -143,6 +150,13 @@ config RT73USB When compiled as a module, this driver will be called "rt73usb.ko". +config RT73USB_LEDS + bool "RT73 leds support" + depends on RT73USB + select RT2X00_LIB_LEDS + ---help--- + This adds support for led triggers provided my mac80211. + config RT2X00_LIB_DEBUGFS bool "Ralink debugfs support" depends on RT2X00_LIB && MAC80211_DEBUGFS diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index f10b574..7c48c10 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c @@ -291,17 +291,16 @@ static void rt2500usb_led_brightness(struct led_classdev *led_cdev, unsigned int enabled = brightness != LED_OFF; unsigned int activity = led->rt2x00dev->led_flags & LED_SUPPORT_ACTIVITY; - u16 reg; - - rt2500usb_register_read(led->rt2x00dev, MAC_CSR20, ®); if (led->type == LED_TYPE_RADIO || led->type == LED_TYPE_ASSOC) { - rt2x00_set_field16(®, MAC_CSR20_LINK, enabled); - rt2x00_set_field16(®, MAC_CSR20_ACTIVITY, - enabled && activity); + rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg, + MAC_CSR20_LINK, enabled); + rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg, + MAC_CSR20_ACTIVITY, enabled && activity); } - rt2500usb_register_write(led->rt2x00dev, MAC_CSR20, reg); + rt2x00usb_vendor_request_async(led->rt2x00dev, USB_SINGLE_WRITE, + MAC_CSR20, led->rt2x00dev->led_mcu_reg); } #else #define rt2500usb_led_brightness NULL @@ -1373,6 +1372,13 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev) rt2x00dev->led_flags = LED_SUPPORT_RADIO; break; } + + /* + * Store the current led register value, we need it later + * in set_brightness but that is called in irq context which + * means we can't use rt2500usb_register_read() at that time. + */ + rt2500usb_register_read(rt2x00dev, MAC_CSR20, &rt2x00dev->led_mcu_reg); #endif /* CONFIG_RT2500USB_LEDS */ /* diff --git a/drivers/net/wireless/rt2x00/rt2x00leds.c b/drivers/net/wireless/rt2x00/rt2x00leds.c new file mode 100644 index 0000000..9c29d17 --- /dev/null +++ b/drivers/net/wireless/rt2x00/rt2x00leds.c @@ -0,0 +1,217 @@ +/* + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project + <http://rt2x00.serialmonkey.com> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the + Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* + Module: rt2x00lib + Abstract: rt2x00 led specific routines. + */ + +#include <linux/kernel.h> +#include <linux/module.h> + +#include "rt2x00.h" +#include "rt2x00lib.h" + +void rt2x00leds_led_quality(struct rt2x00_dev *rt2x00dev, int rssi) +{ + if (!rt2x00dev->trigger_qual.registered) + return; + + /* + * Led handling requires a positive value for the rssi, + * to do that correctly we need to add the correction. + */ + rssi += rt2x00dev->rssi_offset; + + /* + * Get the rssi level, this is used to convert the rssi + * to a LED value inside the range LED_OFF - LED_FULL. + */ + if (rssi <= 30) + rssi = 0; + else if (rssi <= 39) + rssi = 1; + else if (rssi <= 49) + rssi = 2; + else if (rssi <= 53) + rssi = 3; + else if (rssi <= 63) + rssi = 4; + else + rssi = 5; + + /* + * Note that we must _not_ send LED_OFF since the driver + * is going to calculate the value and might use it in a + * division. + */ + led_trigger_event(&rt2x00dev->trigger_qual.trigger, + ((LED_FULL / 6) * rssi) + 1); +} + +static int rt2x00leds_register_trigger(struct rt2x00_dev *rt2x00dev, + struct rt2x00_trigger *trigger, + const char *name) +{ + int retval; + + trigger->trigger.name = name; + retval = led_trigger_register(&trigger->trigger); + if (retval) { + ERROR(rt2x00dev, "Failed to register led trigger.\n"); + return retval; + } + + trigger->registered = 1; + + return 0; +} + +static int rt2x00leds_register_led(struct rt2x00_dev *rt2x00dev, + struct rt2x00_led *led, + enum led_type type, + const char *name, char *trigger) +{ + struct device *device = wiphy_dev(rt2x00dev->hw->wiphy); + int retval; + + led->led_dev.name = name; + led->led_dev.brightness_set = rt2x00dev->ops->lib->led_brightness; + led->led_dev.default_trigger = trigger; + + retval = led_classdev_register(device, &led->led_dev); + if (retval) { + ERROR(rt2x00dev, "Failed to register led handler.\n"); + return retval; + } + + led->rt2x00dev = rt2x00dev; + led->type = type; + led->registered = 1; + + return 0; +} + +int rt2x00leds_register(struct rt2x00_dev *rt2x00dev) +{ + char *trigger; + char dev_name[16]; + char name[32]; + int retval; + + if (!rt2x00dev->ops->lib->led_brightness) + return 0; + + snprintf(dev_name, sizeof(dev_name), "%s-%s", + rt2x00dev->ops->name, wiphy_name(rt2x00dev->hw->wiphy)); + + if (rt2x00dev->led_flags & LED_SUPPORT_RADIO) { + trigger = ieee80211_get_radio_led_name(rt2x00dev->hw); + snprintf(name, sizeof(name), "%s:radio", dev_name); + + retval = rt2x00leds_register_led(rt2x00dev, + &rt2x00dev->led_radio, + LED_TYPE_RADIO, + name, trigger); + if (retval) + goto exit_fail; + } + + if (rt2x00dev->led_flags & LED_SUPPORT_ASSOC) { + trigger = ieee80211_get_assoc_led_name(rt2x00dev->hw); + snprintf(name, sizeof(name), "%s:assoc", dev_name); + + retval = rt2x00leds_register_led(rt2x00dev, + &rt2x00dev->led_assoc, + LED_TYPE_ASSOC, + name, trigger); + if (retval) + goto exit_fail; + } + + if (rt2x00dev->led_flags & LED_SUPPORT_QUALITY) { + snprintf(name, sizeof(name), "%s:quality", dev_name); + + retval = rt2x00leds_register_trigger(rt2x00dev, + &rt2x00dev->trigger_qual, + name); + + retval = rt2x00leds_register_led(rt2x00dev, + &rt2x00dev->led_qual, + LED_TYPE_QUALITY, + name, name); + if (retval) + goto exit_fail; + } + + return 0; + +exit_fail: + rt2x00leds_unregister(rt2x00dev); + return retval; +} + +static void rt2x00leds_unregister_trigger(struct rt2x00_trigger *trigger) +{ + if (!trigger->registered) + return; + + led_trigger_unregister(&trigger->trigger); + trigger->registered = 0; +} + +static void rt2x00leds_unregister_led(struct rt2x00_led *led) +{ + if (!led->registered) + return; + + led_classdev_unregister(&led->led_dev); + + led->led_dev.brightness_set(&led->led_dev, LED_OFF); + led->registered = 0; +} + +void rt2x00leds_unregister(struct rt2x00_dev *rt2x00dev) +{ + rt2x00leds_unregister_trigger(&rt2x00dev->trigger_qual); + rt2x00leds_unregister_led(&rt2x00dev->led_qual); + rt2x00leds_unregister_led(&rt2x00dev->led_assoc); + rt2x00leds_unregister_led(&rt2x00dev->led_radio); +} + +void rt2x00leds_suspend(struct rt2x00_dev *rt2x00dev) +{ + if (rt2x00dev->led_qual.registered) + led_classdev_suspend(&rt2x00dev->led_qual.led_dev); + if (rt2x00dev->led_assoc.registered) + led_classdev_suspend(&rt2x00dev->led_assoc.led_dev); + if (rt2x00dev->led_radio.registered) + led_classdev_suspend(&rt2x00dev->led_radio.led_dev); +} + +void rt2x00leds_resume(struct rt2x00_dev *rt2x00dev) +{ + if (rt2x00dev->led_radio.registered) + led_classdev_resume(&rt2x00dev->led_radio.led_dev); + if (rt2x00dev->led_assoc.registered) + led_classdev_resume(&rt2x00dev->led_assoc.led_dev); + if (rt2x00dev->led_qual.registered) + led_classdev_resume(&rt2x00dev->led_qual.led_dev); +} diff --git a/drivers/net/wireless/rt2x00/rt2x00leds.h b/drivers/net/wireless/rt2x00/rt2x00leds.h new file mode 100644 index 0000000..11e71e9 --- /dev/null +++ b/drivers/net/wireless/rt2x00/rt2x00leds.h @@ -0,0 +1,63 @@ +/* + Copyright (C) 2004 - 2008 rt2x00 SourceForge Project + <http://rt2x00.serialmonkey.com> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the + Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* + Module: rt2x00lib + Abstract: rt2x00 led datastructures and routines + */ + +#ifndef RT2X00LEDS_H +#define RT2X00LEDS_H + +/* +* Flags used by driver to indicate which + * which led types are supported. + */ +#define LED_SUPPORT_RADIO 0x000001 +#define LED_SUPPORT_ASSOC 0x000002 +#define LED_SUPPORT_ACTIVITY 0x000004 +#define LED_SUPPORT_QUALITY 0x000008 + +enum led_type { + LED_TYPE_RADIO, + LED_TYPE_ASSOC, + LED_TYPE_QUALITY, +}; + +#ifdef CONFIG_RT2X00_LIB_LEDS + +struct rt2x00_led { + struct rt2x00_dev *rt2x00dev; + struct led_classdev led_dev; + + enum led_type type; + unsigned int registered; +}; + +struct rt2x00_trigger { + struct led_trigger trigger; + + enum led_type type; + unsigned int registered; +}; + +#endif /* CONFIG_RT2X00_LIB_LEDS */ + +#endif /* RT2X00LEDS_H */ diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index fc60644..44ab216 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c @@ -122,6 +122,58 @@ int rt2x00usb_vendor_request_buff(struct rt2x00_dev *rt2x00dev, } EXPORT_SYMBOL_GPL(rt2x00usb_vendor_request_buff); +static void rt2x00usb_vendor_request_async_complete(struct urb *urb) +{ + /* + * We're done with it, descrease usage count and let the + * usb layer delete it as soon as it is done with it. + */ + usb_put_urb(urb); +} + +int rt2x00usb_vendor_request_async(struct rt2x00_dev *rt2x00dev, + const u8 request, const u16 offset, + const u16 value) +{ + struct usb_device *usb_dev = rt2x00dev_usb_dev(rt2x00dev); + struct usb_ctrlrequest *ctrl; + struct urb *urb; + int status; + + urb = usb_alloc_urb(0, GFP_NOIO); + if (!urb) + return -ENOMEM; + + ctrl = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO); + if (!ctrl) { + status = -ENOMEM; + goto exit; + } + + ctrl->bRequestType= USB_VENDOR_REQUEST_OUT; + ctrl->bRequest = request; + ctrl->wValue = cpu_to_le16p(&value); + ctrl->wIndex = cpu_to_le16p(&offset); + ctrl->wLength = 0; + + usb_fill_control_urb(urb, usb_dev, usb_sndctrlpipe(usb_dev, 0), + (unsigned char *)ctrl, NULL, 0, + rt2x00usb_vendor_request_async_complete, NULL); + + status = usb_submit_urb(urb, GFP_ATOMIC); + if (!status) + goto exit; + + return 0; + +exit: + usb_put_urb(urb); + kfree(ctrl); + + return status; +} +EXPORT_SYMBOL_GPL(rt2x00usb_vendor_request_async); + /* * TX data handlers. */ diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.h b/drivers/net/wireless/rt2x00/rt2x00usb.h index af60663..275b089 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.h +++ b/drivers/net/wireless/rt2x00/rt2x00usb.h @@ -60,34 +60,47 @@ #define USB_VENDOR_REQUEST_IN ( USB_DIR_IN | USB_VENDOR_REQUEST ) #define USB_VENDOR_REQUEST_OUT ( USB_DIR_OUT | USB_VENDOR_REQUEST ) -/* - * USB vendor commands. - */ -#define USB_DEVICE_MODE 0x01 -#define USB_SINGLE_WRITE 0x02 -#define USB_SINGLE_READ 0x03 -#define USB_MULTI_WRITE 0x06 -#define USB_MULTI_READ 0x07 -#define USB_EEPROM_WRITE 0x08 -#define USB_EEPROM_READ 0x09 -#define USB_LED_CONTROL 0x0a /* RT73USB */ -#define USB_RX_CONTROL 0x0c +/** + * enum rt2x00usb_vendor_request: USB vendor commands. + */ +enum rt2x00usb_vendor_request { + USB_DEVICE_MODE = 1, + USB_SINGLE_WRITE = 2, + USB_SINGLE_READ = 3, + USB_MULTI_WRITE = 6, + USB_MULTI_READ = 7, + USB_EEPROM_WRITE = 8, + USB_EEPROM_READ = 9, + USB_LED_CONTROL = 10, /* RT73USB */ + USB_RX_CONTROL = 12, +}; -/* - * Device modes offset +/** + * enum rt2x00usb_mode_offset: Device modes offset. */ -#define USB_MODE_RESET 0x01 -#define USB_MODE_UNPLUG 0x02 -#define USB_MODE_FUNCTION 0x03 -#define USB_MODE_TEST 0x04 -#define USB_MODE_SLEEP 0x07 /* RT73USB */ -#define USB_MODE_FIRMWARE 0x08 /* RT73USB */ -#define USB_MODE_WAKEUP 0x09 /* RT73USB */ +enum rt2x00usb_mode_offset { + USB_MODE_RESET = 1, + USB_MODE_UNPLUG = 2, + USB_MODE_FUNCTION = 3, + USB_MODE_TEST = 4, + USB_MODE_SLEEP = 7, /* RT73USB */ + USB_MODE_FIRMWARE = 8, /* RT73USB */ + USB_MODE_WAKEUP = 9, /* RT73USB */ +}; -/* - * Used to read/write from/to the device. +/** + * rt2x00usb_vendor_request - Send register command to device + * @rt2x00dev: Pointer to &struct rt2x00_dev + * @request: USB vendor command (See &enum rt2x00usb_vendor_request) + * @requesttype: Request type &USB_VENDOR_REQUEST_* + * @offset: Register offset to perform action on + * @value: Value to write to device + * @buffer: Buffer where information will be read/written to by device + * @buffer_length: Size of &buffer + * @timeout: Operation timeout + * * This is the main function to communicate with the device, - * the buffer argument _must_ either be NULL or point to + * the &buffer argument _must_ either be NULL or point to * a buffer allocated by kmalloc. Failure to do so can lead * to unexpected behavior depending on the architecture. */ @@ -97,13 +110,21 @@ int rt2x00usb_vendor_request(struct rt2x00_dev *rt2x00dev, void *buffer, const u16 buffer_length, const int timeout); -/* - * Used to read/write from/to the device. +/** + * rt2x00usb_vendor_request_buff - Send register command to device (buffered) + * @rt2x00dev: Pointer to &struct rt2x00_dev + * @request: USB vendor command (See &enum rt2x00usb_vendor_request) + * @requesttype: Request type &USB_VENDOR_REQUEST_* + * @offset: Register offset to perform action on + * @buffer: Buffer where information will be read/written to by device + * @buffer_length: Size of &buffer + * @timeout: Operation timeout + * * This function will use a previously with kmalloc allocated cache * to communicate with the device. The contents of the buffer pointer * will be copied to this cache when writing, or read from the cache * when reading. - * Buffers send to rt2x00usb_vendor_request _must_ be allocated with + * Buffers send to &rt2x00usb_vendor_request _must_ be allocated with * kmalloc. Hence the reason for using a previously allocated cache * which has been allocated properly. */ @@ -112,15 +133,32 @@ int rt2x00usb_vendor_request_buff(struct rt2x00_dev *rt2x00dev, const u16 offset, void *buffer, const u16 buffer_length, const int timeout); -/* - * A version of rt2x00usb_vendor_request_buff which must be called - * if the usb_cache_mutex is already held. */ +/** + * rt2x00usb_vendor_request_buff - Send register command to device (buffered) + * @rt2x00dev: Pointer to &struct rt2x00_dev + * @request: USB vendor command (See &enum rt2x00usb_vendor_request) + * @requesttype: Request type &USB_VENDOR_REQUEST_* + * @offset: Register offset to perform action on + * @buffer: Buffer where information will be read/written to by device + * @buffer_length: Size of &buffer + * @timeout: Operation timeout + * + * A version of &rt2x00usb_vendor_request_buff which must be called + * if the usb_cache_mutex is already held. + */ int rt2x00usb_vendor_req_buff_lock(struct rt2x00_dev *rt2x00dev, const u8 request, const u8 requesttype, const u16 offset, void *buffer, const u16 buffer_length, const int timeout); -/* +/** + * rt2x00usb_vendor_request_sw - Send single register command to device + * @rt2x00dev: Pointer to &struct rt2x00_dev + * @request: USB vendor command (See &enum rt2x00usb_vendor_request) + * @offset: Register offset to perform action on + * @value: Value to write to device + * @timeout: Operation timeout + * * Simple wrapper around rt2x00usb_vendor_request to write a single * command to the device. Since we don't use the buffer argument we * don't have to worry about kmalloc here. @@ -136,7 +174,12 @@ static inline int rt2x00usb_vendor_request_sw(struct rt2x00_dev *rt2x00dev, value, NULL, 0, timeout); } -/* +/** + * rt2x00usb_eeprom_read - Read eeprom from device + * @rt2x00dev: Pointer to &struct rt2x00_dev + * @eeprom: Pointer to eeprom array to store the information in + * @length: Number of bytes to read from the eeprom + * * Simple wrapper around rt2x00usb_vendor_request to read the eeprom * from the device. Note that the eeprom argument _must_ be allocated using * kmalloc for correct handling inside the kernel USB layer. @@ -147,10 +190,28 @@ static inline int rt2x00usb_eeprom_read(struct rt2x00_dev *rt2x00dev, int timeout = REGISTER_TIMEOUT * (lenght / sizeof(u16)); return rt2x00usb_vendor_request(rt2x00dev, USB_EEPROM_READ, - USB_VENDOR_REQUEST_IN, 0x0000, - 0x0000, eeprom, lenght, timeout); + USB_VENDOR_REQUEST_IN, 0, 0, + eeprom, lenght, timeout); } +/** + * rt2x00usb_vendor_request_async - Send register command to device (async) + * @rt2x00dev: Pointer to &struct rt2x00_dev + * @request: USB vendor command (See &enum rt2x00usb_vendor_request) + * @offset: Register offset to perform action on + * @value: Value to write to device + * + * Asynchroneous version of &rt2x00usb_vendor_request this is required + * for some routines where the driver cannot sleep because it is in + * irq context. Note that with this function the driver will not be + * notified on failure or timeout of the command. It will only be notified + * if the start of the command succeeded or not. This means it should not be + * used when the command must succeed. + */ +int rt2x00usb_vendor_request_async(struct rt2x00_dev *rt2x00dev, + const u8 request, const u16 offset, + const u16 value); + /* * Radio handlers */ diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index 43d21aa..e970e32 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c @@ -294,28 +294,25 @@ static void rt73usb_led_brightness(struct led_classdev *led_cdev, rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg, MCU_LEDCS_RADIO_STATUS, enabled); - rt2x00usb_vendor_request_sw(led->rt2x00dev, USB_LED_CONTROL, 0, - led->rt2x00dev->led_mcu_reg, - REGISTER_TIMEOUT); + rt2x00usb_vendor_request_async(led->rt2x00dev, USB_LED_CONTROL, + 0, led->rt2x00dev->led_mcu_reg); } else if (led->type == LED_TYPE_ASSOC) { rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg, MCU_LEDCS_LINK_BG_STATUS, bg_mode); rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg, MCU_LEDCS_LINK_A_STATUS, a_mode); - rt2x00usb_vendor_request_sw(led->rt2x00dev, USB_LED_CONTROL, 0, - led->rt2x00dev->led_mcu_reg, - REGISTER_TIMEOUT); + rt2x00usb_vendor_request_async(led->rt2x00dev, USB_LED_CONTROL, + 0, led->rt2x00dev->led_mcu_reg); } else if (led->type == LED_TYPE_QUALITY) { /* * The brightness is divided into 6 levels (0 - 5), * this means we need to convert the brightness * argument into the matching level within that range. */ - rt2x00usb_vendor_request_sw(led->rt2x00dev, USB_LED_CONTROL, - brightness / (LED_FULL / 6), - led->rt2x00dev->led_mcu_reg, - REGISTER_TIMEOUT); + rt2x00usb_vendor_request_async(led->rt2x00dev, USB_LED_CONTROL, + brightness / (LED_FULL / 6), + led->rt2x00dev->led_mcu_reg); } } #else @@ -871,7 +868,7 @@ static int rt73usb_load_firmware(struct rt2x00_dev *rt2x00dev, void *data, rt2x00usb_vendor_request(rt2x00dev, USB_MULTI_WRITE, USB_VENDOR_REQUEST_OUT, - FIRMWARE_IMAGE_BASE + i, 0x0000, + FIRMWARE_IMAGE_BASE + i, 0, cache, buflen, timeout); ptr += buflen; @@ -884,7 +881,7 @@ static int rt73usb_load_firmware(struct rt2x00_dev *rt2x00dev, void *data, * we need to specify a long timeout time. */ status = rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, - 0x0000, USB_MODE_FIRMWARE, + 0, USB_MODE_FIRMWARE, REGISTER_TIMEOUT_FIRMWARE); if (status < 0) { ERROR(rt2x00dev, "Failed to write Firmware to device.\n"); -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 16/19] rt2x00: Fix rate initialization 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (14 preceding siblings ...) 2008-02-03 14:54 ` [PATCH 15/19] rt2x00: Enable LED class support for rt2500usb/rt73usb Ivo van Doorn @ 2008-02-03 14:54 ` Ivo van Doorn 2008-02-03 14:54 ` [PATCH 17/19] rt2x00: Move beacon and atim queue defines into rt2x00 Ivo van Doorn ` (2 subsequent siblings) 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:54 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Fix typo in rate initialization. This fixes the WARN_ON() in net/wireless/util.cpp:83 Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00dev.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 3ba1f37..84f0441 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -873,7 +873,7 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev, * Initialize Rate list. */ for (i = 0; i < spec->num_rates; i++) - rt2x00lib_rate(&rates[0], i, rt2x00_get_rate(i)); + rt2x00lib_rate(&rates[i], i, rt2x00_get_rate(i)); /* * Initialize Channel list. -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 17/19] rt2x00: Move beacon and atim queue defines into rt2x00 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (15 preceding siblings ...) 2008-02-03 14:54 ` [PATCH 16/19] rt2x00: Fix rate initialization Ivo van Doorn @ 2008-02-03 14:54 ` Ivo van Doorn 2008-02-03 14:55 ` [PATCH 18/19] rt2x00: Fix queue index handling Ivo van Doorn 2008-02-03 14:56 ` [PATCH 19/19] rt2x00: Release rt2x00 2.1.0 Ivo van Doorn 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:54 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel As Johannes Berg indicated the BEACON and AFTER_BEACON queue indeces in mac80211 should be removed because they are too hardware specific. This patch adds the queue index defines into rt2x00queue.h and removes the dependency of the defines inside mac80211.h. Also move rt2x00pci_beacon_update() into rt2400pci and rt2500pci individually since it is no longer a generic function since rt61 and rt2800 no longer use that. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2400pci.c | 53 +++++++++++++++++++++++++--- drivers/net/wireless/rt2x00/rt2500pci.c | 55 +++++++++++++++++++++++++--- drivers/net/wireless/rt2x00/rt2500usb.c | 12 +++--- drivers/net/wireless/rt2x00/rt2x00.h | 7 ++-- drivers/net/wireless/rt2x00/rt2x00dev.c | 2 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 2 +- drivers/net/wireless/rt2x00/rt2x00pci.c | 47 ------------------------ drivers/net/wireless/rt2x00/rt2x00pci.h | 6 --- drivers/net/wireless/rt2x00/rt2x00queue.c | 6 ++-- drivers/net/wireless/rt2x00/rt2x00queue.h | 15 ++++++++ drivers/net/wireless/rt2x00/rt61pci.c | 12 +++--- drivers/net/wireless/rt2x00/rt73usb.c | 12 +++--- 12 files changed, 139 insertions(+), 90 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c index 0975f55..693f3d3 100644 --- a/drivers/net/wireless/rt2x00/rt2400pci.c +++ b/drivers/net/wireless/rt2x00/rt2400pci.c @@ -1028,11 +1028,11 @@ static void rt2400pci_write_tx_desc(struct rt2x00_dev *rt2x00dev, * TX data initialization */ static void rt2400pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev, - unsigned int queue) + const unsigned int queue) { u32 reg; - if (queue == IEEE80211_TX_QUEUE_BEACON) { + if (queue == RT2X00_BCN_QUEUE_BEACON) { rt2x00pci_register_read(rt2x00dev, CSR14, ®); if (!rt2x00_get_field32(reg, CSR14_BEACON_GEN)) { rt2x00_set_field32(®, CSR14_BEACON_GEN, 1); @@ -1047,7 +1047,7 @@ static void rt2400pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev, rt2x00_set_field32(®, TXCSR0_KICK_TX, (queue == IEEE80211_TX_QUEUE_DATA1)); rt2x00_set_field32(®, TXCSR0_KICK_ATIM, - (queue == IEEE80211_TX_QUEUE_AFTER_BEACON)); + (queue == RT2X00_BCN_QUEUE_ATIM)); rt2x00pci_register_write(rt2x00dev, TXCSR0, reg); } @@ -1152,7 +1152,7 @@ static irqreturn_t rt2400pci_interrupt(int irq, void *dev_instance) * 3 - Atim ring transmit done interrupt. */ if (rt2x00_get_field32(reg, CSR7_TXDONE_ATIMRING)) - rt2400pci_txdone(rt2x00dev, IEEE80211_TX_QUEUE_AFTER_BEACON); + rt2400pci_txdone(rt2x00dev, RT2X00_BCN_QUEUE_ATIM); /* * 4 - Priority ring transmit done interrupt. @@ -1513,6 +1513,49 @@ static void rt2400pci_reset_tsf(struct ieee80211_hw *hw) rt2x00pci_register_write(rt2x00dev, CSR17, 0); } +static int rt2400pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, + struct ieee80211_tx_control *control) +{ + struct rt2x00_dev *rt2x00dev = hw->priv; + struct rt2x00_intf *intf = vif_to_intf(control->vif); + struct queue_entry_priv_pci_tx *priv_tx; + struct skb_frame_desc *skbdesc; + + if (unlikely(!intf->beacon)) + return -ENOBUFS; + + priv_tx = intf->beacon->priv_data; + + /* + * Fill in skb descriptor + */ + skbdesc = get_skb_frame_desc(skb); + memset(skbdesc, 0, sizeof(*skbdesc)); + skbdesc->data = skb->data; + skbdesc->data_len = skb->len; + skbdesc->desc = priv_tx->desc; + skbdesc->desc_len = intf->beacon->queue->desc_size; + skbdesc->entry = intf->beacon; + + /* + * mac80211 doesn't provide the control->queue variable + * for beacons. Set our own queue identification so + * it can be used during descriptor initialization. + */ + control->queue = RT2X00_BCN_QUEUE_BEACON; + rt2x00lib_write_tx_desc(rt2x00dev, skb, control); + + /* + * Enable beacon generation. + * Write entire beacon with descriptor to register, + * and kick the beacon generator. + */ + memcpy(priv_tx->data, skb->data, skb->len); + rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, control->queue); + + return 0; +} + static int rt2400pci_tx_last_beacon(struct ieee80211_hw *hw) { struct rt2x00_dev *rt2x00dev = hw->priv; @@ -1538,7 +1581,7 @@ static const struct ieee80211_ops rt2400pci_mac80211_ops = { .get_tx_stats = rt2x00mac_get_tx_stats, .get_tsf = rt2400pci_get_tsf, .reset_tsf = rt2400pci_reset_tsf, - .beacon_update = rt2x00pci_beacon_update, + .beacon_update = rt2400pci_beacon_update, .tx_last_beacon = rt2400pci_tx_last_beacon, }; diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c index 2a902eb..7ad8967 100644 --- a/drivers/net/wireless/rt2x00/rt2500pci.c +++ b/drivers/net/wireless/rt2x00/rt2500pci.c @@ -276,7 +276,7 @@ static void rt2500pci_config_intf(struct rt2x00_dev *rt2x00dev, const unsigned int flags) { struct data_queue *queue = - rt2x00queue_get_queue(rt2x00dev, IEEE80211_TX_QUEUE_BEACON); + rt2x00queue_get_queue(rt2x00dev, RT2X00_BCN_QUEUE_BEACON); unsigned int bcn_preload; u32 reg; @@ -1182,11 +1182,11 @@ static void rt2500pci_write_tx_desc(struct rt2x00_dev *rt2x00dev, * TX data initialization */ static void rt2500pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev, - unsigned int queue) + const unsigned int queue) { u32 reg; - if (queue == IEEE80211_TX_QUEUE_BEACON) { + if (queue == RT2X00_BCN_QUEUE_BEACON) { rt2x00pci_register_read(rt2x00dev, CSR14, ®); if (!rt2x00_get_field32(reg, CSR14_BEACON_GEN)) { rt2x00_set_field32(®, CSR14_BEACON_GEN, 1); @@ -1201,7 +1201,7 @@ static void rt2500pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev, rt2x00_set_field32(®, TXCSR0_KICK_TX, (queue == IEEE80211_TX_QUEUE_DATA1)); rt2x00_set_field32(®, TXCSR0_KICK_ATIM, - (queue == IEEE80211_TX_QUEUE_AFTER_BEACON)); + (queue == RT2X00_BCN_QUEUE_ATIM)); rt2x00pci_register_write(rt2x00dev, TXCSR0, reg); } @@ -1303,7 +1303,7 @@ static irqreturn_t rt2500pci_interrupt(int irq, void *dev_instance) * 3 - Atim ring transmit done interrupt. */ if (rt2x00_get_field32(reg, CSR7_TXDONE_ATIMRING)) - rt2500pci_txdone(rt2x00dev, IEEE80211_TX_QUEUE_AFTER_BEACON); + rt2500pci_txdone(rt2x00dev, RT2X00_BCN_QUEUE_ATIM); /* * 4 - Priority ring transmit done interrupt. @@ -1825,6 +1825,49 @@ static void rt2500pci_reset_tsf(struct ieee80211_hw *hw) rt2x00pci_register_write(rt2x00dev, CSR17, 0); } +static int rt2500pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, + struct ieee80211_tx_control *control) +{ + struct rt2x00_dev *rt2x00dev = hw->priv; + struct rt2x00_intf *intf = vif_to_intf(control->vif); + struct queue_entry_priv_pci_tx *priv_tx; + struct skb_frame_desc *skbdesc; + + if (unlikely(!intf->beacon)) + return -ENOBUFS; + + priv_tx = intf->beacon->priv_data; + + /* + * Fill in skb descriptor + */ + skbdesc = get_skb_frame_desc(skb); + memset(skbdesc, 0, sizeof(*skbdesc)); + skbdesc->data = skb->data; + skbdesc->data_len = skb->len; + skbdesc->desc = priv_tx->desc; + skbdesc->desc_len = intf->beacon->queue->desc_size; + skbdesc->entry = intf->beacon; + + /* + * mac80211 doesn't provide the control->queue variable + * for beacons. Set our own queue identification so + * it can be used during descriptor initialization. + */ + control->queue = RT2X00_BCN_QUEUE_BEACON; + rt2x00lib_write_tx_desc(rt2x00dev, skb, control); + + /* + * Enable beacon generation. + * Write entire beacon with descriptor to register, + * and kick the beacon generator. + */ + memcpy(priv_tx->data, skb->data, skb->len); + rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, control->queue); + + return 0; +} + static int rt2500pci_tx_last_beacon(struct ieee80211_hw *hw) { struct rt2x00_dev *rt2x00dev = hw->priv; @@ -1850,7 +1893,7 @@ static const struct ieee80211_ops rt2500pci_mac80211_ops = { .get_tx_stats = rt2x00mac_get_tx_stats, .get_tsf = rt2500pci_get_tsf, .reset_tsf = rt2500pci_reset_tsf, - .beacon_update = rt2x00pci_beacon_update, + .beacon_update = rt2500pci_beacon_update, .tx_last_beacon = rt2500pci_tx_last_beacon, }; diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 7c48c10..eb98d28 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c @@ -1077,11 +1077,11 @@ static int rt2500usb_get_tx_data_len(struct rt2x00_dev *rt2x00dev, * TX data initialization */ static void rt2500usb_kick_tx_queue(struct rt2x00_dev *rt2x00dev, - unsigned int queue) + const unsigned int queue) { u16 reg; - if (queue != IEEE80211_TX_QUEUE_BEACON) + if (queue != RT2X00_BCN_QUEUE_BEACON) return; rt2500usb_register_read(rt2x00dev, TXRX_CSR19, ®); @@ -1758,11 +1758,11 @@ static int rt2500usb_beacon_update(struct ieee80211_hw *hw, skbdesc->entry = intf->beacon; /* - * Just in case mac80211 doesn't set this correctly, - * but we need this queue set for the descriptor - * initialization. + * mac80211 doesn't provide the control->queue variable + * for beacons. Set our own queue identification so + * it can be used during descriptor initialization. */ - control->queue = IEEE80211_TX_QUEUE_BEACON; + control->queue = RT2X00_BCN_QUEUE_BEACON; rt2x00lib_write_tx_desc(rt2x00dev, skb, control); /* diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 123fe2f..76270e9 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h @@ -530,7 +530,7 @@ struct rt2x00lib_ops { int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev, struct sk_buff *skb); void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev, - unsigned int queue); + const unsigned int queue); /* * RX control handlers @@ -910,10 +910,11 @@ static inline u16 get_duration_res(const unsigned int size, const u8 rate) /** * rt2x00queue_get_queue - Convert mac80211 queue index to rt2x00 queue * @rt2x00dev: Pointer to &struct rt2x00_dev. - * @queue: mac80211 queue index (see &enum ieee80211_tx_queue). + * @queue: mac80211/rt2x00 queue index + * (see &enum ieee80211_tx_queue and &enum rt2x00_bcn_queue). */ struct data_queue *rt2x00queue_get_queue(struct rt2x00_dev *rt2x00dev, - const enum ieee80211_tx_queue queue); + const unsigned int queue); /** * rt2x00queue_get_entry - Get queue entry where the given index points to. diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 84f0441..c714c4c 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -673,7 +673,7 @@ void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev, * Beacons and probe responses require the tsf timestamp * to be inserted into the frame. */ - if (control->queue == IEEE80211_TX_QUEUE_BEACON || + if (control->queue == RT2X00_BCN_QUEUE_BEACON || is_probe_resp(frame_control)) __set_bit(ENTRY_TXD_REQ_TIMESTAMP, &txdesc.flags); diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index 65a2bcd..8c24d3b 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -164,7 +164,7 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw, struct rt2x00_dev *rt2x00dev = hw->priv; struct rt2x00_intf *intf = vif_to_intf(conf->vif); struct data_queue *queue = - rt2x00queue_get_queue(rt2x00dev, IEEE80211_TX_QUEUE_BEACON); + rt2x00queue_get_queue(rt2x00dev, RT2X00_BCN_QUEUE_BEACON); struct queue_entry *entry = NULL; unsigned int i; diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index 764147d..275c8a1 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c @@ -32,53 +32,6 @@ #include "rt2x00pci.h" /* - * Beacon handlers. - */ -int rt2x00pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, - struct ieee80211_tx_control *control) -{ - struct rt2x00_dev *rt2x00dev = hw->priv; - struct rt2x00_intf *intf = vif_to_intf(control->vif); - struct queue_entry_priv_pci_tx *priv_tx; - struct skb_frame_desc *skbdesc; - - if (unlikely(!intf->beacon)) - return -ENOBUFS; - - priv_tx = intf->beacon->priv_data; - - /* - * Fill in skb descriptor - */ - skbdesc = get_skb_frame_desc(skb); - memset(skbdesc, 0, sizeof(*skbdesc)); - skbdesc->data = skb->data; - skbdesc->data_len = skb->len; - skbdesc->desc = priv_tx->desc; - skbdesc->desc_len = intf->beacon->queue->desc_size; - skbdesc->entry = intf->beacon; - - /* - * Just in case mac80211 doesn't set this correctly, - * but we need this queue set for the descriptor - * initialization. - */ - control->queue = IEEE80211_TX_QUEUE_BEACON; - rt2x00lib_write_tx_desc(rt2x00dev, skb, control); - - /* - * Enable beacon generation. - * Write entire beacon with descriptor to register, - * and kick the beacon generator. - */ - memcpy(priv_tx->data, skb->data, skb->len); - rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, control->queue); - - return 0; -} -EXPORT_SYMBOL_GPL(rt2x00pci_beacon_update); - -/* * TX data handlers. */ int rt2x00pci_write_tx_data(struct rt2x00_dev *rt2x00dev, diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.h b/drivers/net/wireless/rt2x00/rt2x00pci.h index 3b1597f..71335e1 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.h +++ b/drivers/net/wireless/rt2x00/rt2x00pci.h @@ -88,12 +88,6 @@ rt2x00pci_register_multiwrite(struct rt2x00_dev *rt2x00dev, } /* - * Beacon handlers. - */ -int rt2x00pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, - struct ieee80211_tx_control *control); - -/* * TX data handlers. */ int rt2x00pci_write_tx_data(struct rt2x00_dev *rt2x00dev, diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 921eca3..52bb57d 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -30,7 +30,7 @@ #include "rt2x00lib.h" struct data_queue *rt2x00queue_get_queue(struct rt2x00_dev *rt2x00dev, - const enum ieee80211_tx_queue queue) + const unsigned int queue) { int atim = test_bit(DRIVER_REQUIRE_ATIM_QUEUE, &rt2x00dev->flags); @@ -40,9 +40,9 @@ struct data_queue *rt2x00queue_get_queue(struct rt2x00_dev *rt2x00dev, if (!rt2x00dev->bcn) return NULL; - if (queue == IEEE80211_TX_QUEUE_BEACON) + if (queue == RT2X00_BCN_QUEUE_BEACON) return &rt2x00dev->bcn[0]; - else if (queue == IEEE80211_TX_QUEUE_AFTER_BEACON && atim) + else if (queue == RT2X00_BCN_QUEUE_ATIM && atim) return &rt2x00dev->bcn[1]; return NULL; diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.h b/drivers/net/wireless/rt2x00/rt2x00queue.h index 75af48e..956e0be 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.h +++ b/drivers/net/wireless/rt2x00/rt2x00queue.h @@ -67,6 +67,21 @@ enum data_queue_qid { }; /** + * enum rt2x00_bcn_queue: Beacon queue index + * + * Start counting with a high offset, this because this enumeration + * supplements &enum ieee80211_tx_queue and we should prevent value + * conflicts. + * + * @RT2X00_BCN_QUEUE_BEACON: Beacon queue + * @RT2X00_BCN_QUEUE_ATIM: Atim queue (sends frame after beacon) + */ +enum rt2x00_bcn_queue { + RT2X00_BCN_QUEUE_BEACON = 100, + RT2X00_BCN_QUEUE_ATIM = 101, +}; + +/** * struct skb_frame_desc: Descriptor information for the skb buffer * * This structure is placed over the skb->cb array, this means that diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 199c5b7..9fd2dd8 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c @@ -1546,11 +1546,11 @@ static void rt61pci_write_tx_desc(struct rt2x00_dev *rt2x00dev, * TX data initialization */ static void rt61pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev, - unsigned int queue) + const unsigned int queue) { u32 reg; - if (queue == IEEE80211_TX_QUEUE_BEACON) { + if (queue == RT2X00_BCN_QUEUE_BEACON) { /* * For Wi-Fi faily generated beacons between participating * stations. Set TBTT phase adaptive adjustment step to 8us. @@ -2411,11 +2411,11 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, skbdesc->entry = intf->beacon; /* - * Just in case the ieee80211 doesn't set this, - * but we need this queue set for the descriptor - * initialization. + * mac80211 doesn't provide the control->queue variable + * for beacons. Set our own queue identification so + * it can be used during descriptor initialization. */ - control->queue = IEEE80211_TX_QUEUE_BEACON; + control->queue = RT2X00_BCN_QUEUE_BEACON; rt2x00lib_write_tx_desc(rt2x00dev, skb, control); /* diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index e970e32..146135f 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c @@ -1290,11 +1290,11 @@ static int rt73usb_get_tx_data_len(struct rt2x00_dev *rt2x00dev, * TX data initialization */ static void rt73usb_kick_tx_queue(struct rt2x00_dev *rt2x00dev, - unsigned int queue) + const unsigned int queue) { u32 reg; - if (queue != IEEE80211_TX_QUEUE_BEACON) + if (queue != RT2X00_BCN_QUEUE_BEACON) return; /* @@ -2011,11 +2011,11 @@ static int rt73usb_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, skbdesc->entry = intf->beacon; /* - * Just in case the ieee80211 doesn't set this, - * but we need this queue set for the descriptor - * initialization. + * mac80211 doesn't provide the control->queue variable + * for beacons. Set our own queue identification so + * it can be used during descriptor initialization. */ - control->queue = IEEE80211_TX_QUEUE_BEACON; + control->queue = RT2X00_BCN_QUEUE_BEACON; rt2x00lib_write_tx_desc(rt2x00dev, skb, control); /* -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 18/19] rt2x00: Fix queue index handling 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (16 preceding siblings ...) 2008-02-03 14:54 ` [PATCH 17/19] rt2x00: Move beacon and atim queue defines into rt2x00 Ivo van Doorn @ 2008-02-03 14:55 ` Ivo van Doorn 2008-02-03 14:56 ` [PATCH 19/19] rt2x00: Release rt2x00 2.1.0 Ivo van Doorn 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:55 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel When Q_INDEX is increased, the queue->length should be increased, only when Q_INDEX_DONE is increased should queue_length be descreased. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00queue.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 52bb57d..fde64ea 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -84,8 +84,12 @@ void rt2x00queue_index_inc(struct data_queue *queue, enum queue_index index) if (queue->index[index] >= queue->limit) queue->index[index] = 0; - queue->length--; - queue->count += (index == Q_INDEX_DONE); + if (index == Q_INDEX) { + queue->length++; + } else if (index == Q_INDEX_DONE) { + queue->length--; + queue->count ++; + } spin_unlock(&queue->lock); } -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* [PATCH 19/19] rt2x00: Release rt2x00 2.1.0 2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn ` (17 preceding siblings ...) 2008-02-03 14:55 ` [PATCH 18/19] rt2x00: Fix queue index handling Ivo van Doorn @ 2008-02-03 14:56 ` Ivo van Doorn 18 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-03 14:56 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> --- drivers/net/wireless/rt2x00/rt2x00.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 76270e9..f6ec9fe 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h @@ -44,7 +44,7 @@ /* * Module information. */ -#define DRV_VERSION "2.0.14" +#define DRV_VERSION "2.1.0" #define DRV_PROJECT "http://rt2x00.serialmonkey.com" /* -- 1.5.3.8 ^ permalink raw reply related [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2008-12-20 9:52 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-12-20 9:52 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the latest rt2x00 update.
Lots of new features, optimizations and cleanups.
Ivo
---
The following changes since commit 30b5741a6880688c4540c8f80f90371f42b05a63:
Winkler, Tomas (1):
iwl3945: use iwl_rb_status
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Andrey Yurovsky (1):
rt2x00: Add mesh support
Ivo van Doorn (14):
rt2x00: Implement Powersaving
rt2x00: Move link tuning into seperate file
rt2x00: Reduce calls to bbp_read()
rt2x00: Restrict interface between rt2x00link and drivers
rt2x00: Add RFKILL support to rt2500usb and rt73usb
rt2x00: Rename CONFIG_CRYPTO_COPY_IV
rt2x00: Implement WDS support
rt2x00: Split EEPROM_NIC_TX_RX_FIXED
rt2x00: Move code into seperate functions
rt2x00: Remove ENTRY_TXD_OFDM_RATE
rt2x00: Allow drivers to pass the noise value during rxdone
rt2x00: Introduce RXDONE_SIGNAL_MASK mask
rt2x00: Fix segementation fault
rt2x00: Release rt2x00 2.3.0
drivers/net/wireless/rt2x00/Makefile | 1 +
drivers/net/wireless/rt2x00/rt2400pci.c | 60 +++-
drivers/net/wireless/rt2x00/rt2500pci.c | 88 ++++--
drivers/net/wireless/rt2x00/rt2500usb.c | 58 ++++-
drivers/net/wireless/rt2x00/rt2500usb.h | 8 +
drivers/net/wireless/rt2x00/rt2x00.h | 131 +++------
drivers/net/wireless/rt2x00/rt2x00config.c | 7 +-
drivers/net/wireless/rt2x00/rt2x00crypto.c | 13 +-
drivers/net/wireless/rt2x00/rt2x00debug.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 322 ++------------------
drivers/net/wireless/rt2x00/rt2x00lib.h | 87 +++++-
drivers/net/wireless/rt2x00/rt2x00link.c | 461 ++++++++++++++++++++++++++++
drivers/net/wireless/rt2x00/rt2x00mac.c | 42 ++-
drivers/net/wireless/rt2x00/rt2x00queue.c | 193 ++++++------
drivers/net/wireless/rt2x00/rt2x00queue.h | 15 +-
drivers/net/wireless/rt2x00/rt2x00reg.h | 10 +
drivers/net/wireless/rt2x00/rt2x00usb.c | 6 +-
drivers/net/wireless/rt2x00/rt61pci.c | 144 +++++----
drivers/net/wireless/rt2x00/rt61pci.h | 7 +-
drivers/net/wireless/rt2x00/rt73usb.c | 134 ++++++---
drivers/net/wireless/rt2x00/rt73usb.h | 13 +
21 files changed, 1138 insertions(+), 666 deletions(-)
create mode 100644 drivers/net/wireless/rt2x00/rt2x00link.c
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-12-02 17:19 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-12-02 17:19 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is a new batch of updates for rt2x00.
The first patch (rt2x00: Optimize IV/EIV handling) was send individually
a few days ago, but it is probably easier if you pull it along with the rest
of the patches during this merge.
Small warning which might be important:
The patch "Implement HW encryption (rt2500usb)" adds support for HW crypto
but it does _not_ activate it. The module parameter "nohwcrypt" is set to 1
by default for now. This code has been sleeping in the rt2x00 experimental branch
for quite some time now, and doesn't work completely. I hope to debug this
further when I have time, but I am hoping that with the code in wireless-testing
other people will take a look at it to see what might be going wrong.
Ivo
---
The following changes since commit ca072018d6425a55b3f0e6d8bd3e6217ee509065:
Winkler, Tomas (1):
iwlwifi: TX update chicken bits
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 IV/EIV handling
rt2x00: Store retry limit values
rt2x00: Remove duplicate code
rt2x00: Implement HW encryption (rt2500usb)
rt2x00: Release rt2x00 2.2.3
drivers/net/wireless/rt2x00/Kconfig | 1 +
drivers/net/wireless/rt2x00/rt2500usb.c | 132 ++++++++++++++++++++++++++-
drivers/net/wireless/rt2x00/rt2500usb.h | 3 +
drivers/net/wireless/rt2x00/rt2x00.h | 9 ++-
drivers/net/wireless/rt2x00/rt2x00config.c | 39 +++++----
drivers/net/wireless/rt2x00/rt2x00crypto.c | 56 ++++++------
drivers/net/wireless/rt2x00/rt2x00lib.h | 6 ++
drivers/net/wireless/rt2x00/rt2x00mac.c | 2 -
drivers/net/wireless/rt2x00/rt2x00queue.c | 17 ++--
drivers/net/wireless/rt2x00/rt2x00queue.h | 12 +--
drivers/net/wireless/rt2x00/rt61pci.c | 8 +-
drivers/net/wireless/rt2x00/rt73usb.c | 8 +-
12 files changed, 211 insertions(+), 82 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-10-29 16:16 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-10-29 16:16 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
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(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-08-29 19:03 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-08-29 19:03 UTC (permalink / raw)
To: John Linville; +Cc: rt2400-devel, linux-wireless
Hi John,
Here is another rt2x00 update for the 2.6.28 kernel,
I believe some patches have been send earlier, but
I lost my overview on my patches, so this bunch will
get rt2x00 completely up to date.
A few patches are needed for rt2800, but they are small,
and clean enough to be merged early.
Ivo
---
The following changes since commit b51f3c6077d59b41e3f9d2af33e2e2f94ecbbc39:
John W. Linville (1):
at76_usb: fix for removal of IEEE80211_TX_CTL_DO_NOT_ENCRYPT
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: Fix race conditions in flag handling
rt2x00: Map extra_tx_headroom to DMA
rt2x00: Initialize txop during conf_tx() callback
rt2x00: Add Signal type flag
rt2x00: Release rt2x00 2.2.1
Mattias Nissler (2):
rt2x00: Only configure hardware when radio is enabled
rt2x00: skb->data pointer should not include TX descriptor
drivers/net/wireless/rt2x00/rt2400pci.c | 2 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 4 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 7 ++-
drivers/net/wireless/rt2x00/rt2x00.h | 17 +++---
drivers/net/wireless/rt2x00/rt2x00config.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 68 +++++++++++--------------
drivers/net/wireless/rt2x00/rt2x00mac.c | 75 ++++++++++++++--------------
drivers/net/wireless/rt2x00/rt2x00queue.c | 31 +++++++++--
drivers/net/wireless/rt2x00/rt2x00queue.h | 9 ++-
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 6 +-
drivers/net/wireless/rt2x00/rt2x00usb.c | 21 ++++----
drivers/net/wireless/rt2x00/rt61pci.c | 73 ++++++++++++++++++++++-----
drivers/net/wireless/rt2x00/rt73usb.c | 74 ++++++++++++++++++++++-----
13 files changed, 253 insertions(+), 138 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-08-04 14:36 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-08-04 14:36 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Only 5 patches, but they do bump rt2x00 to a new version: 2.2.0
This series will add HW crypto support to rt2x00, by default it
has been enabled for rt61pci and rt73usb.
rt2500usb has also been created, but currently does not work
since it requires different handling then rt61pci and rt73usb. Because
I am focussing on different areas in rt2x00 now, it will take some
time before I get back to rt2500usb HW crypto (if there are any volunteers
to take a shot at rt2500usb HW crypto, they are welcome).
rt2500pci supports HW crypto as well, but I won't implement it due
to the way it has to be enabled. It comes down to the fact that during
TX the key has to be provided, and after the encryption an interupt will
be raised after which the frame can be kicked to the air. In the RX path
the same happens, including that after RX the key has to be provided
as well. This will cause the number of IRQ events to double during HW
crypto, and several changes are required in mac80211 to make it possible.
Because of that I see no point in doing anything with it.
Ivo
----
The following changes since commit 2471b779e2f93d76bd4c041e4a8f5a27c859d7ce:
John W. Linville (1):
Revert "mac80211: add direct probe before association"
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: Implement HW encryption
rt2x00: Implement HW encryption (rt61pci)
rt2x00: Implement HW encryption (rt73usb)
rt2x00: Gather channel information in structure
rt2x00: Release rt2x00 2.2.0
drivers/net/wireless/rt2x00/Kconfig | 6 +
drivers/net/wireless/rt2x00/Makefile | 1 +
drivers/net/wireless/rt2x00/rt2400pci.c | 40 ++--
drivers/net/wireless/rt2x00/rt2400pci.h | 22 +--
drivers/net/wireless/rt2x00/rt2500pci.c | 39 +++--
drivers/net/wireless/rt2x00/rt2500pci.h | 17 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 39 +++--
drivers/net/wireless/rt2x00/rt2500usb.h | 17 +-
drivers/net/wireless/rt2x00/rt2x00.h | 64 +++++-
drivers/net/wireless/rt2x00/rt2x00config.c | 4 +
drivers/net/wireless/rt2x00/rt2x00crypto.c | 215 +++++++++++++++++++
drivers/net/wireless/rt2x00/rt2x00debug.c | 97 +++++++++
drivers/net/wireless/rt2x00/rt2x00dev.c | 48 +++--
drivers/net/wireless/rt2x00/rt2x00lib.h | 47 ++++
drivers/net/wireless/rt2x00/rt2x00mac.c | 110 +++++++++-
drivers/net/wireless/rt2x00/rt2x00queue.c | 81 +++++++-
drivers/net/wireless/rt2x00/rt2x00queue.h | 73 ++++++-
drivers/net/wireless/rt2x00/rt2x00reg.h | 19 ++-
drivers/net/wireless/rt2x00/rt61pci.c | 298 ++++++++++++++++++++++++--
drivers/net/wireless/rt2x00/rt61pci.h | 38 ++--
drivers/net/wireless/rt2x00/rt73usb.c | 314 +++++++++++++++++++++++++---
drivers/net/wireless/rt2x00/rt73usb.h | 38 ++--
22 files changed, 1418 insertions(+), 209 deletions(-)
create mode 100644 drivers/net/wireless/rt2x00/rt2x00crypto.c
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-07-19 14:15 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-07-19 14:15 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the updated patch series,
I have dropped the compile warning patch because Johannes has
already send it before, the EIFS patch has been updated to use the
correct definition instead of hardcoding the value, and some
coding style fixes went into Iwo's patches.
Patches are still intended for 2.6.27
Ivo
---
The following changes since commit a520bdbe7d344296482f9355e29b0018ea58760f:
John W. Linville (1):
iwl-scan.c: fixup merge damage in wireless-testing#master
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (2):
rt2x00: Remove duplicate declaration
rt2x00: Fix EIFS timing value
Iwo Mergler (3):
rt2x00: Support for large vendor requests
rt2x00: Large vendor requests for rt73usb firmware upload and beacons
rt2x00: Fix the beacon length bug
drivers/net/wireless/rt2x00/rt2500usb.c | 12 ++++++
drivers/net/wireless/rt2x00/rt2x00.h | 5 ++-
drivers/net/wireless/rt2x00/rt2x00config.c | 2 +-
drivers/net/wireless/rt2x00/rt2x00lib.h | 7 ----
drivers/net/wireless/rt2x00/rt2x00usb.c | 32 +++++++++++++++++
drivers/net/wireless/rt2x00/rt2x00usb.h | 22 +++++++++++-
drivers/net/wireless/rt2x00/rt73usb.c | 52 +++++++++++----------------
7 files changed, 90 insertions(+), 42 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-07-18 18:43 Ivo van Doorn
2008-07-19 13:55 ` Ivo van Doorn
0 siblings, 1 reply; 73+ messages in thread
From: Ivo van Doorn @ 2008-07-18 18:43 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the latest update for rt2x00
I think all patches qualify for 2.6.27,
with the exception for first 2 patches:
rt2x00: Remove duplicate declaration
rt2x00: Fix EIFS timing value
but those are one-liners and have little impact.
The 3 patches from Iwo are the most important ones,
since that fixes a major bug in the beacon handling for the
USB drivers. The 3 patches are a bit big, but without them
beaconing simply won't work.
Ivo
---
The following changes since commit a520bdbe7d344296482f9355e29b0018ea58760f:
John W. Linville (1):
iwl-scan.c: fixup merge damage in wireless-testing#master
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ ..BRANCH.NOT.VERIFIED..
Ivo van Doorn (3):
rt2x00: Remove duplicate declaration
rt2x00: Fix EIFS timing value
rt2x00: Fix GCC warning because aifs is now unsigned
Iwo Mergler (3):
rt2x00: Support for large vendor requests
rt2x00: Large vendor requests for rt73usb firmware upload and beacons
rt2x00: Fix the beacon length bug
drivers/net/wireless/rt2x00/rt2500usb.c | 12 +++++++
drivers/net/wireless/rt2x00/rt2x00.h | 2 +-
drivers/net/wireless/rt2x00/rt2x00lib.h | 7 ----
drivers/net/wireless/rt2x00/rt2x00mac.c | 5 +--
drivers/net/wireless/rt2x00/rt2x00usb.c | 33 ++++++++++++++++++++
drivers/net/wireless/rt2x00/rt2x00usb.h | 22 ++++++++++++-
drivers/net/wireless/rt2x00/rt73usb.c | 50 ++++++++++++------------------
7 files changed, 87 insertions(+), 44 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2008-07-18 18:43 Ivo van Doorn @ 2008-07-19 13:55 ` Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-07-19 13:55 UTC (permalink / raw) To: John Linville; +Cc: linux-wireless, rt2400-devel Hi John, Please wait with pulling from rt2x00.git, updated patches are coming in a few moments, I just noticed some cleanups which should be made in several patches, and I'll incorporate the suggestion from Johannes regarding the EIFS. Sorry for the noise. ;) Ivo > Here is the latest update for rt2x00 > > I think all patches qualify for 2.6.27, > with the exception for first 2 patches: > rt2x00: Remove duplicate declaration > rt2x00: Fix EIFS timing value > but those are one-liners and have little impact. > > The 3 patches from Iwo are the most important ones, > since that fixes a major bug in the beacon handling for the > USB drivers. The 3 patches are a bit big, but without them > beaconing simply won't work. > > Ivo > > --- > The following changes since commit a520bdbe7d344296482f9355e29b0018ea58760f: > John W. Linville (1): > iwl-scan.c: fixup merge damage in wireless-testing#master > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ ..BRANCH.NOT.VERIFIED.. > > Ivo van Doorn (3): > rt2x00: Remove duplicate declaration > rt2x00: Fix EIFS timing value > rt2x00: Fix GCC warning because aifs is now unsigned > > Iwo Mergler (3): > rt2x00: Support for large vendor requests > rt2x00: Large vendor requests for rt73usb firmware upload and beacons > rt2x00: Fix the beacon length bug > > drivers/net/wireless/rt2x00/rt2500usb.c | 12 +++++++ > drivers/net/wireless/rt2x00/rt2x00.h | 2 +- > drivers/net/wireless/rt2x00/rt2x00lib.h | 7 ---- > drivers/net/wireless/rt2x00/rt2x00mac.c | 5 +-- > drivers/net/wireless/rt2x00/rt2x00usb.c | 33 ++++++++++++++++++++ > drivers/net/wireless/rt2x00/rt2x00usb.h | 22 ++++++++++++- > drivers/net/wireless/rt2x00/rt73usb.c | 50 ++++++++++++------------------ > 7 files changed, 87 insertions(+), 44 deletions(-) > ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2008-06-16 17:58 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-06-16 17:58 UTC (permalink / raw)
To: John W. Linville; +Cc: rt2400-devel, linux-wireless
Hi John,
Here is the latest version bump of rt2x00: 2.1.8
Most important patches are from Gertjan, which reduce
the amount of pre-allocated DMA for all TX queues.
All PCI drivers now TX/RX all frame data directly
from/to the skb buffer saving kilobytes of allocated DMA
and several memcpy() statements.
This also allows a lot of code to be moved out of rt2x00pci/rt2x00usb
and into rt2x00lib which in turn makes management of everything
much easier.
Ivo
---
The following changes since commit 7b57047e2d34c243c4cf2d778df0b34bfdd82c8e:
John W. Linville (1):
iwlwifi: fix build breakage
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Gertjan van Wingerde (4):
rt2x00: Properly clean up beacon skbs.
rt2x00: Convert rt2x00 to use generic DMA-mapping API
rt2x00: Centralize allocation of RX skbs.
rt2x00: Replace statically allocated DMA buffers with mapped skb's.
Ivo van Doorn (5):
rt2x00: Use ieee80211 fc handlers
rt2x00: Cleanup symbol exports
rt2x00: Fix sparse warning on nested container_of()
rt2x00: Increase queue size
rt2x00: Release rt2x00 2.1.8
drivers/net/wireless/rt2x00/rt2400pci.c | 17 ++--
drivers/net/wireless/rt2x00/rt2500pci.c | 14 ++-
drivers/net/wireless/rt2x00/rt2500usb.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00.h | 59 ++---------
drivers/net/wireless/rt2x00/rt2x00dev.c | 100 +++++++++++++++----
drivers/net/wireless/rt2x00/rt2x00lib.h | 51 +++++++++-
drivers/net/wireless/rt2x00/rt2x00pci.c | 126 ++++--------------------
drivers/net/wireless/rt2x00/rt2x00pci.h | 12 --
drivers/net/wireless/rt2x00/rt2x00queue.c | 157 +++++++++++++++++++++++------
drivers/net/wireless/rt2x00/rt2x00queue.h | 35 ++++---
drivers/net/wireless/rt2x00/rt2x00usb.c | 94 +++---------------
drivers/net/wireless/rt2x00/rt2x00usb.h | 6 +
drivers/net/wireless/rt2x00/rt61pci.c | 23 +++--
drivers/net/wireless/rt2x00/rt73usb.c | 8 ++-
14 files changed, 368 insertions(+), 338 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-06-08 21:41 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-06-08 21:41 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the official pull request for the latest rt2x00.git.
This contains all patches which I had send last tuesday
plus some additional patches intended for 2.6.27.
This series is mostly intended to get the fragmentation
done right. Up until now the drivers never behaved that
nicely with fragmentation or RTS/CTS-to-sellf which was
mostly due because each individual frame forced the
queue to be kicked immediately without waiting for the
other fragments.
It also contains some front work by Gertjan for reducing
DMA requirements in rt2x00 by making use of pci_map_single
on skbuffers instead of preallocating a chunk of DMA.
Ivo
P.S. I won't resend the patches I had send last tuesday
since nothing has changed with them. So only the 10
new patches will be send seperately. I am not sure
if that feature will be ready/stable for 2.6.27 but this
preperational work is harmless for normal operations
to it is better if that is already in.
---
The following changes since commit ef28eab0c928fe8277d7c3dca234c29f734d7f2e:
Dan Williams (1):
ipw2200: queue direct scans
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Gertjan van Wingerde (5):
rt2x00: Restrict DMA to 32-bit addresses.
rt2x00: Cleanup struct skb_frame_desc.
rt2x00: Centralize RX packet alignment handling in rt2x00lib.
rt2x00: Fix double usage of skb->cb in USB RX path.
rt2x00: Rework alignment check.
Ivo van Doorn (15):
rt2x00: Calculate register offset during compile time
rt2x00: Cleanup/optimize set_state() function callback function
rt2x00: Move led initialization into function
rt2x00: Remove CTS/RTS check in tx()
rt2x00: Removed unused descriptor read in txdone
rt2x00: Don't kill guardian_urb when it wasn't created
rt2x00: Make rt2x00_set/get_field macros
rt2x00: Release rt2x00 2.1.7
rt2x00: Fix queue initialization
rt2x00: Implement rt2x00usb_kick_tx_queue()
rt2x00: Move generic TX frame writing code into rt2x00queue
rt2x00: Don't kick TX queue after each frame
rt2x00: Use __builtin_choose_expr() instead of ?:
rt2x00: Clear IEEE80211_TX_CTL_USE_RTS_CTS flag for RTS frame
rt2x00: Remove unused defines
drivers/net/wireless/rt2x00/rt2400pci.c | 95 ++++++++---------
drivers/net/wireless/rt2x00/rt2400pci.h | 2 -
drivers/net/wireless/rt2x00/rt2500pci.c | 91 +++++++--------
drivers/net/wireless/rt2x00/rt2500pci.h | 2 -
drivers/net/wireless/rt2x00/rt2500usb.c | 98 ++++++++--------
drivers/net/wireless/rt2x00/rt2500usb.h | 2 -
drivers/net/wireless/rt2x00/rt2x00.h | 13 ++-
drivers/net/wireless/rt2x00/rt2x00debug.c | 6 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 21 ++++
drivers/net/wireless/rt2x00/rt2x00lib.h | 1 +
drivers/net/wireless/rt2x00/rt2x00mac.c | 30 ++----
drivers/net/wireless/rt2x00/rt2x00pci.c | 75 ++++---------
drivers/net/wireless/rt2x00/rt2x00pci.h | 11 +-
drivers/net/wireless/rt2x00/rt2x00queue.c | 111 ++++++++++++++++---
drivers/net/wireless/rt2x00/rt2x00queue.h | 27 +++--
drivers/net/wireless/rt2x00/rt2x00reg.h | 134 +++++++++++++---------
drivers/net/wireless/rt2x00/rt2x00usb.c | 170 +++++++++++------------------
drivers/net/wireless/rt2x00/rt2x00usb.h | 22 +++-
drivers/net/wireless/rt2x00/rt61pci.c | 111 ++++++++-----------
drivers/net/wireless/rt2x00/rt61pci.h | 2 -
drivers/net/wireless/rt2x00/rt73usb.c | 112 +++++++++----------
drivers/net/wireless/rt2x00/rt73usb.h | 2 -
22 files changed, 581 insertions(+), 557 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-05-10 11:37 Ivo van Doorn
2008-05-10 12:48 ` drago01
0 siblings, 1 reply; 73+ messages in thread
From: Ivo van Doorn @ 2008-05-10 11:37 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, rt2400-devel, Johannes Berg
Hi John,
Here is a new rt2x00 release.
Please note that some patches have been send individually to linux-wireless before,
(including the 2 mac80211 patches) but for completeness I have added them to
this pull request.
This will bump rt2x00 to version 2.1.6, most patches are only intended to make
room for future patches like the mac80211 patch series from Johannes, HW crypto
and pci drivers without a preallocated big chunk of DMA.
Ivo
---
The following changes since commit d30d1674356e223c9f2c164ac9d0be35af8ee4e0:
Johannes Berg (1):
mac80211: fix wme code
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Gertjan van Wingerde (3):
rt2x00: Clean up error handling of PCI queue DMA allocation.
rt2x00: Fix queue related oops in case of deselected mac80211 multi-queue feature.
rt2x00: Only initialize the minimum needed fields of PCI TX descriptors.
Ivo van Doorn (13):
rt2x00: Don't use pskb_expand_head()
rt2x00: Fix broken recover-on-error path
mac80211: Don't encrypt beacons
mac80211: Add RTNL version of ieee80211_iterate_active_interfaces
rt2x00: trim skb_frame_desc to 32 bytes
rt2x00: Fix TX status reporting
rt2x00: Remove ieee80211_tx_control argument from write_tx_desc()
rt2x00: Preserve descriptor information after memmove()
rt2x00: Split rt2x00lib_write_tx_desc()
rt2x00: Remove redundant flags/dev_flags initializations
rt2x00: Merge RX and TX entry private data
rt2x00: Remove extra +
rt2x00: Release rt2x00 2.1.6
drivers/net/wireless/rt2x00/rt2400pci.c | 126 +++++++++-------
drivers/net/wireless/rt2x00/rt2400pci.h | 5 +
drivers/net/wireless/rt2x00/rt2500pci.c | 114 ++++++++------
drivers/net/wireless/rt2x00/rt2500pci.h | 5 +
drivers/net/wireless/rt2x00/rt2500usb.c | 78 +++++-----
drivers/net/wireless/rt2x00/rt2500usb.h | 5 +
drivers/net/wireless/rt2x00/rt2x00.h | 48 +++++--
drivers/net/wireless/rt2x00/rt2x00debug.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 190 +++---------------------
drivers/net/wireless/rt2x00/rt2x00lib.h | 6 +-
drivers/net/wireless/rt2x00/rt2x00mac.c | 2 +-
drivers/net/wireless/rt2x00/rt2x00pci.c | 105 +++++--------
drivers/net/wireless/rt2x00/rt2x00pci.h | 22 +---
drivers/net/wireless/rt2x00/rt2x00queue.c | 165 ++++++++++++++++++++-
drivers/net/wireless/rt2x00/rt2x00queue.h | 45 ++++--
drivers/net/wireless/rt2x00/rt2x00reg.h | 11 --
drivers/net/wireless/rt2x00/rt2x00usb.c | 228 +++++++++++++++-------------
drivers/net/wireless/rt2x00/rt2x00usb.h | 17 +--
drivers/net/wireless/rt2x00/rt61pci.c | 146 ++++++++++---------
drivers/net/wireless/rt2x00/rt61pci.h | 5 +
drivers/net/wireless/rt2x00/rt73usb.c | 53 ++++----
drivers/net/wireless/rt2x00/rt73usb.h | 5 +
include/net/mac80211.h | 25 +++-
net/mac80211/tx.c | 1 +
net/mac80211/util.c | 37 +++++-
25 files changed, 794 insertions(+), 654 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2008-05-10 11:37 Ivo van Doorn @ 2008-05-10 12:48 ` drago01 2008-05-10 13:06 ` Ivo van Doorn 0 siblings, 1 reply; 73+ messages in thread From: drago01 @ 2008-05-10 12:48 UTC (permalink / raw) To: Ivo van Doorn; +Cc: linville, linux-wireless, rt2400-devel, Johannes Berg On Sat, May 10, 2008 at 1:37 PM, Ivo van Doorn <ivdoorn@gmail.com> wrote: > Hi John, > > Here is a new rt2x00 release. > Please note that some patches have been send individually to linux-wireless before, > (including the 2 mac80211 patches) but for completeness I have added them to > this pull request. > > This will bump rt2x00 to version 2.1.6, most patches are only intended to make > room for future patches like the mac80211 patch series from Johannes, HW crypto > and pci drivers without a preallocated big chunk of DMA. > > Ivo whats the current status of rt2860 support? ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-10 12:48 ` drago01 @ 2008-05-10 13:06 ` Ivo van Doorn 2008-05-10 13:15 ` drago01 0 siblings, 1 reply; 73+ messages in thread From: Ivo van Doorn @ 2008-05-10 13:06 UTC (permalink / raw) To: drago01; +Cc: linville, linux-wireless, rt2400-devel, Johannes Berg On Saturday 10 May 2008, drago01 wrote: > On Sat, May 10, 2008 at 1:37 PM, Ivo van Doorn <ivdoorn@gmail.com> wrote: > > Hi John, > > > > Here is a new rt2x00 release. > > Please note that some patches have been send individually to linux-wireless before, > > (including the 2 mac80211 patches) but for completeness I have added them to > > this pull request. > > > > This will bump rt2x00 to version 2.1.6, most patches are only intended to make > > room for future patches like the mac80211 patch series from Johannes, HW crypto > > and pci drivers without a preallocated big chunk of DMA. > > > > Ivo > > whats the current status of rt2860 support? Under development. Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-10 13:06 ` Ivo van Doorn @ 2008-05-10 13:15 ` drago01 0 siblings, 0 replies; 73+ messages in thread From: drago01 @ 2008-05-10 13:15 UTC (permalink / raw) To: Ivo van Doorn; +Cc: linville, linux-wireless, rt2400-devel, Johannes Berg On Sat, May 10, 2008 at 3:06 PM, Ivo van Doorn <ivdoorn@gmail.com> wrote: > On Saturday 10 May 2008, drago01 wrote: >> On Sat, May 10, 2008 at 1:37 PM, Ivo van Doorn <ivdoorn@gmail.com> wrote: >> > Hi John, >> > >> > Here is a new rt2x00 release. >> > Please note that some patches have been send individually to linux-wireless before, >> > (including the 2 mac80211 patches) but for completeness I have added them to >> > this pull request. >> > >> > This will bump rt2x00 to version 2.1.6, most patches are only intended to make >> > room for future patches like the mac80211 patch series from Johannes, HW crypto >> > and pci drivers without a preallocated big chunk of DMA. >> > >> > Ivo >> >> whats the current status of rt2860 support? > > Under development. well ok ;) ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2008-05-05 15:23 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-05-05 15:23 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here are 3 patches for rt2x00, they are all intended for 2.6.26 since
they fix serious bugs. Patch 1 should prevent problems as reported by
Johannes Berg regarding skb->truesize by removing the only pskb_expand_head()
call in rt2x00 (and use a already existing buffer instead).
Patches 2 and 3 fix problems when DMA allocation fails, that usually doesn't happen,
hence the reason these problems have gone unnoticed for so long. :S
Ivo
---
The following changes since commit 0bacadffc86bcba2fdf2b989afc286a8184664a0:
Ivo van Doorn (1):
rt2x00: Fix quality/activity led handling
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Gertjan van Wingerde (1):
rt2x00: Clean up error handling of PCI queue DMA allocation.
Ivo van Doorn (2):
rt2x00: Don't use pskb_expand_head()
rt2x00: Fix broken recover-on-error path
drivers/net/wireless/rt2x00/rt2x00dev.c | 11 ++++-------
drivers/net/wireless/rt2x00/rt2x00pci.c | 5 +++--
drivers/net/wireless/rt2x00/rt61pci.c | 31 +++++++++++--------------------
3 files changed, 18 insertions(+), 29 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00
@ 2008-05-02 21:04 Scott White
2008-05-02 21:25 ` Ivo van Doorn
2008-05-05 17:31 ` John W. Linville
0 siblings, 2 replies; 73+ messages in thread
From: Scott White @ 2008-05-02 21:04 UTC (permalink / raw)
To: linux-wireless
>Was this patch series in time for the 2.6.26 merge window?
>
>If not, please consider merging at least the following patches since
>they are real bugfixes:
>
>> rt2x00: Don't enable short preamble for 1MBs
>> rt2x00: Fix quality/activity led handling
>> rt2x00: Clarify supported chipsets in Kconfig
>
>The others are code cleanups which are "nice to have", but could otherwise
>wait for 2.6.27.
The merge window is still open at this time. I haven't seen a rc1 yet. Anyway I saw that only the 3 bugfixes are currently in the queue. As the owner of several (10 by the university and 2 personal) rt73 usb wireless cards, I would really like it if the latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 and finished compiling 2.6.25 two days ago I find that the driver in both kernels is not good. Not good means I get a wireless signal and I get data transfers, but the speed fluctuates and have other issues. However with each release, the problems I have are slowing decreasing. I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 was announced. I really think all of 2.1.5 should get in 2.6.25-rc1.
Thanks,
_________________________________________________________________
Windows Live SkyDrive lets you share files with faraway friends.
http://www.windowslive.com/skydrive/overview.html?ocid=TXT_TAGLM_WL_Refresh_skydrive_052008
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2008-05-02 21:04 Scott White @ 2008-05-02 21:25 ` Ivo van Doorn 2008-05-03 6:19 ` Mattias Nissler 2008-05-03 19:29 ` Scott White 2008-05-05 17:31 ` John W. Linville 1 sibling, 2 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-05-02 21:25 UTC (permalink / raw) To: Scott White; +Cc: linux-wireless On Friday 02 May 2008, Scott White wrote: > > >Was this patch series in time for the 2.6.26 merge window? > > > >If not, please consider merging at least the following patches since > >they are real bugfixes: > > > >> rt2x00: Don't enable short preamble for 1MBs > >> rt2x00: Fix quality/activity led handling > >> rt2x00: Clarify supported chipsets in Kconfig > > > >The others are code cleanups which are "nice to have", but could otherwise > >wait for 2.6.27. > > The merge window is still open at this time. I haven't seen a rc1 yet. Anyway I saw that only the 3 bugfixes are currently in the queue. As the owner of several (10 by the university and 2 personal) rt73 usb wireless cards, I would really like it if the latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 and finished compiling 2.6.25 two days ago I find that the driver in both kernels is not good. Not good means I get a wireless signal and I get data transfers, but the speed fluctuates and have other issues. However with each release, the problems I have are slowing decreasing. I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 was announced. I really think all of 2.1.5 should get in 2.6.25-rc1. Have you tried forcing the rate to 54Mbit instead of letting the rate selection algorithm doing its work? It seems to have helped with several other users. Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-02 21:25 ` Ivo van Doorn @ 2008-05-03 6:19 ` Mattias Nissler 2008-05-03 9:58 ` Ivo van Doorn 2008-05-03 19:29 ` Scott White 1 sibling, 1 reply; 73+ messages in thread From: Mattias Nissler @ 2008-05-03 6:19 UTC (permalink / raw) To: Ivo van Doorn; +Cc: Scott White, linux-wireless On Fri, 2008-05-02 at 23:25 +0200, Ivo van Doorn wrote: > On Friday 02 May 2008, Scott White wrote: > > > > >Was this patch series in time for the 2.6.26 merge window? > > > > > >If not, please consider merging at least the following patches since > > >they are real bugfixes: > > > > > >> rt2x00: Don't enable short preamble for 1MBs > > >> rt2x00: Fix quality/activity led handling > > >> rt2x00: Clarify supported chipsets in Kconfig > > > > > >The others are code cleanups which are "nice to have", but could otherwise > > >wait for 2.6.27. > > > > The merge window is still open at this time. I haven't seen a rc1 yet. Anyway I saw that only the 3 bugfixes are currently in the queue. As the owner of several (10 by the university and 2 personal) rt73 usb wireless cards, I would really like it if the latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 and finished compiling 2.6.25 two days ago I find that the driver in both kernels is not good. Not good means I get a wireless signal and I get data transfers, but the speed fluctuates and have other issues. However with each release, the problems I have are slowing decreasing. I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 was announced. I really think all of 2.1.5 should get in 2.6.25-rc1. > > Have you tried forcing the rate to 54Mbit instead of letting the rate selection algorithm doing its work? > It seems to have helped with several other users. For rt73? IIRC the rate selection algo does not work at all for that device, because we cannot report failed frames. Or have you done anything about that I might have missed, Ivo? If not, the rate is probably fixed at 54Mbit anyway. Mattias ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-03 6:19 ` Mattias Nissler @ 2008-05-03 9:58 ` Ivo van Doorn 2008-05-03 10:18 ` Mattias Nissler 0 siblings, 1 reply; 73+ messages in thread From: Ivo van Doorn @ 2008-05-03 9:58 UTC (permalink / raw) To: Mattias Nissler; +Cc: Scott White, linux-wireless On Saturday 03 May 2008, Mattias Nissler wrote: > On Fri, 2008-05-02 at 23:25 +0200, Ivo van Doorn wrote: > > On Friday 02 May 2008, Scott White wrote: > > > > > > >Was this patch series in time for the 2.6.26 merge window? > > > > > > > >If not, please consider merging at least the following patches since > > > >they are real bugfixes: > > > > > > > >> rt2x00: Don't enable short preamble for 1MBs > > > >> rt2x00: Fix quality/activity led handling > > > >> rt2x00: Clarify supported chipsets in Kconfig > > > > > > > >The others are code cleanups which are "nice to have", but could otherwise > > > >wait for 2.6.27. > > > > > > The merge window is still open at this time. I haven't seen a rc1 yet. Anyway I saw that only the 3 bugfixes are currently in the queue. As the owner of several (10 by the university and 2 personal) rt73 usb wireless cards, I would really like it if the latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 and finished compiling 2.6.25 two days ago I find that the driver in both kernels is not good. Not good means I get a wireless signal and I get data transfers, but the speed fluctuates and have other issues. However with each release, the problems I have are slowing decreasing. I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 was announced. I really think all of 2.1.5 should get in 2.6.25-rc1. > > > > Have you tried forcing the rate to 54Mbit instead of letting the rate selection algorithm doing its work? > > It seems to have helped with several other users. > > For rt73? IIRC the rate selection algo does not work at all for that > device, because we cannot report failed frames. Or have you done > anything about that I might have missed, Ivo? If not, the rate is > probably fixed at 54Mbit anyway. Well I didn't do anything new, but this line will report rt2x00lib that the frame was succesfully send or failed to send: txdesc.status = !urb->status ? TX_SUCCESS : TX_FAIL_RETRY; What is missing is the retry count, since that is something that the USB drivers cannot report. (Unless I grab the max retry count as configured by mac80211 as the number of retries on failure) Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-03 9:58 ` Ivo van Doorn @ 2008-05-03 10:18 ` Mattias Nissler 2008-05-03 15:02 ` Ivo van Doorn 0 siblings, 1 reply; 73+ messages in thread From: Mattias Nissler @ 2008-05-03 10:18 UTC (permalink / raw) To: Ivo van Doorn; +Cc: Scott White, linux-wireless On Sat, 2008-05-03 at 11:58 +0200, Ivo van Doorn wrote: > On Saturday 03 May 2008, Mattias Nissler wrote: > > On Fri, 2008-05-02 at 23:25 +0200, Ivo van Doorn wrote: > > > On Friday 02 May 2008, Scott White wrote: > > > > > > > > >Was this patch series in time for the 2.6.26 merge window? > > > > > > > > > >If not, please consider merging at least the following patches since > > > > >they are real bugfixes: > > > > > > > > > >> rt2x00: Don't enable short preamble for 1MBs > > > > >> rt2x00: Fix quality/activity led handling > > > > >> rt2x00: Clarify supported chipsets in Kconfig > > > > > > > > > >The others are code cleanups which are "nice to have", but could otherwise > > > > >wait for 2.6.27. > > > > > > > > The merge window is still open at this time. I haven't seen a rc1 yet. Anyway I saw that only the 3 bugfixes are currently in the queue. As the owner of several (10 by the university and 2 personal) rt73 usb wireless cards, I would really like it if the latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 and finished compiling 2.6.25 two days ago I find that the driver in both kernels is not good. Not good means I get a wireless signal and I get data transfers, but the speed fluctuates and have other issues. However with each release, the problems I have are slowing decreasing. I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 was announced. I really think all of 2.1.5 should get in 2.6.25-rc1. > > > > > > Have you tried forcing the rate to 54Mbit instead of letting the rate selection algorithm doing its work? > > > It seems to have helped with several other users. > > > > For rt73? IIRC the rate selection algo does not work at all for that > > device, because we cannot report failed frames. Or have you done > > anything about that I might have missed, Ivo? If not, the rate is > > probably fixed at 54Mbit anyway. > > Well I didn't do anything new, but this line will report rt2x00lib that the > frame was succesfully send or failed to send: > txdesc.status = !urb->status ? TX_SUCCESS : TX_FAIL_RETRY; > What is missing is the retry count, since that is something that > the USB drivers cannot report. (Unless I grab the max retry count > as configured by mac80211 as the number of retries on failure) Well, I have just put my rt73 into a metal box. Many frames do fail, only very few get through pinging my AP. The rate control still keeps the rate at 54Mbit/s :-) So it seems neither excessive_retries nor the retry_count in the tx_status struct is set at all. Mattias ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-03 10:18 ` Mattias Nissler @ 2008-05-03 15:02 ` Ivo van Doorn 2008-05-03 15:27 ` Johannes Berg 0 siblings, 1 reply; 73+ messages in thread From: Ivo van Doorn @ 2008-05-03 15:02 UTC (permalink / raw) To: Mattias Nissler; +Cc: Scott White, linux-wireless > > > For rt73? IIRC the rate selection algo does not work at all for that > > > device, because we cannot report failed frames. Or have you done > > > anything about that I might have missed, Ivo? If not, the rate is > > > probably fixed at 54Mbit anyway. > > > > Well I didn't do anything new, but this line will report rt2x00lib that the > > frame was succesfully send or failed to send: > > txdesc.status = !urb->status ? TX_SUCCESS : TX_FAIL_RETRY; > > What is missing is the retry count, since that is something that > > the USB drivers cannot report. (Unless I grab the max retry count > > as configured by mac80211 as the number of retries on failure) > > Well, I have just put my rt73 into a metal box. Many frames do fail, > only very few get through pinging my AP. The rate control still keeps > the rate at 54Mbit/s :-) So it seems neither excessive_retries nor the > retry_count in the tx_status struct is set at all. Hmm, perhaps we need some way the driver can inform the rate selection module about statistics. I mean the hardware does measure the number of failed TX frames, and the number of retries, but it doesn't set them in the descriptor but in the hardware. Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-03 15:02 ` Ivo van Doorn @ 2008-05-03 15:27 ` Johannes Berg 2008-05-03 15:38 ` Mattias Nissler 0 siblings, 1 reply; 73+ messages in thread From: Johannes Berg @ 2008-05-03 15:27 UTC (permalink / raw) To: Ivo van Doorn; +Cc: Mattias Nissler, Scott White, linux-wireless [-- Attachment #1: Type: text/plain, Size: 305 bytes --] > Hmm, perhaps we need some way the driver can inform the rate selection > module about statistics. I mean the hardware does measure the number > of failed TX frames, and the number of retries, but it doesn't set them > in the descriptor but in the hardware. Yes we should have this. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 828 bytes --] ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-03 15:27 ` Johannes Berg @ 2008-05-03 15:38 ` Mattias Nissler 2008-05-03 16:56 ` Ivo van Doorn 0 siblings, 1 reply; 73+ messages in thread From: Mattias Nissler @ 2008-05-03 15:38 UTC (permalink / raw) To: Johannes Berg; +Cc: Ivo van Doorn, Scott White, linux-wireless On Sat, 2008-05-03 at 17:27 +0200, Johannes Berg wrote: > > Hmm, perhaps we need some way the driver can inform the rate selection > > module about statistics. I mean the hardware does measure the number > > of failed TX frames, and the number of retries, but it doesn't set them > > in the descriptor but in the hardware. > > Yes we should have this. New rate control algorithm probably. Or even better: Split what is currently the rate control algorithm into an link quality estimation part (failed frames percentage and such) and the actual rate control that interprets that value and acts accordingly. Mattias ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-03 15:38 ` Mattias Nissler @ 2008-05-03 16:56 ` Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-05-03 16:56 UTC (permalink / raw) To: Mattias Nissler; +Cc: Johannes Berg, Scott White, linux-wireless On Saturday 03 May 2008, Mattias Nissler wrote: > On Sat, 2008-05-03 at 17:27 +0200, Johannes Berg wrote: > > > Hmm, perhaps we need some way the driver can inform the rate selection > > > module about statistics. I mean the hardware does measure the number > > > of failed TX frames, and the number of retries, but it doesn't set them > > > in the descriptor but in the hardware. > > > > Yes we should have this. > > New rate control algorithm probably. Or even better: Split what is > currently the rate control algorithm into an link quality estimation > part (failed frames percentage and such) and the actual rate control > that interprets that value and acts accordingly. Hmm, splitting that up would be nice, especially when the driver will have access to those failed frame percentages directly. rt2x00 currently keeps track of these statistics to perform link tuning, I wouldn't be surprised if other drivers also keep similar statistics for the same reason. Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* RE: Please pull 'upstream' branch of rt2x00 2008-05-02 21:25 ` Ivo van Doorn 2008-05-03 6:19 ` Mattias Nissler @ 2008-05-03 19:29 ` Scott White 1 sibling, 0 replies; 73+ messages in thread From: Scott White @ 2008-05-03 19:29 UTC (permalink / raw) To: Ivo van Doorn; +Cc: linux-wireless > To: nwi_sub@hotmail.com > Subject: Re: Please pull 'upstream' branch of rt2x00 > Date: Fri, 2 May 2008 23:25:38 +0200 > CC: linux-wireless@vger.kernel.org > From: ivdoorn@gmail.com > > On Friday 02 May 2008, Scott White wrote: >> >>>Was this patch series in time for the 2.6.26 merge window? >>> >>>If not, please consider merging at least the following patches since >>>they are real bugfixes: >>> >>>> rt2x00: Don't enable short preamble for 1MBs >>>> rt2x00: Fix quality/activity led handling >>>> rt2x00: Clarify supported chipsets in Kconfig >>> >>>The others are code cleanups which are "nice to have", but could otherwise >>>wait for 2.6.27. >> >> The merge window is still open at this time. I haven't seen a rc1 yet. Anyway I saw that only the 3 bugfixes are currently in the queue. As the owner of several (10 by the university and 2 personal) rt73 usb wireless cards, I would really like it if the latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 and finished compiling 2.6.25 two days ago I find that the driver in both kernels is not good. Not good means I get a wireless signal and I get data transfers, but the speed fluctuates and have other issues. However with each release, the problems I have are slowing decreasing. I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 was announced. I really think all of 2.1.5 should get in 2.6.25-rc1. > > Have you tried forcing the rate to 54Mbit instead of letting the rate selection algorithm doing its work? > It seems to have helped with several other users. > > Ivo No I haven't tried that. However I have 54Mbit (g) at home, but only 11Mbit (b only) at work. I guess I would have to change the rate when I change locations. Thanks, _________________________________________________________________ Make Windows Vista more reliable and secure with Windows Vista Service Pack 1. http://www.windowsvista.com/SP1?WT.mc_id=hotmailvistasp1banner ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2008-05-02 21:04 Scott White 2008-05-02 21:25 ` Ivo van Doorn @ 2008-05-05 17:31 ` John W. Linville 1 sibling, 0 replies; 73+ messages in thread From: John W. Linville @ 2008-05-05 17:31 UTC (permalink / raw) To: Scott White; +Cc: linux-wireless On Fri, May 02, 2008 at 04:04:52PM -0500, Scott White wrote: > > >Was this patch series in time for the 2.6.26 merge window? > > > >If not, please consider merging at least the following patches since > >they are real bugfixes: > > > >> rt2x00: Don't enable short preamble for 1MBs > >> rt2x00: Fix quality/activity led handling > >> rt2x00: Clarify supported chipsets in Kconfig > > > >The others are code cleanups which are "nice to have", but could otherwise > >wait for 2.6.27. > > The merge window is still open at this time. I haven't seen > a rc1 yet. Anyway I saw that only the 3 bugfixes are currently > in the queue. As the owner of several (10 by the university and > 2 personal) rt73 usb wireless cards, I would really like it if the > latest version 2.1.5 made into 2.6.26. As someone who has used 2.6.24 > and finished compiling 2.6.25 two days ago I find that the driver in > both kernels is not good. Not good means I get a wireless signal and > I get data transfers, but the speed fluctuates and have other issues. > However with each release, the problems I have are slowing decreasing. > I have been waiting patiently for 2.6.25-rc1 to have 2.1.5 since 2.1.5 > was announced. I really think all of 2.1.5 should get in 2.6.25-rc1. I'm sorry, but this isn't how the merge window is used. The merge window is for merging code that is _already_ pending when the window opens. No one should wait for the merge window to open before sending code to the upstream maintainers. (I'm not suggesting that Ivo delayed on purpose, I'm just stating the policy.) Anything that fixes an actual bug can still go to 2.6.26 over the next several weeks. But code that is simply new development will have to wait for 2.6.27's merge window before it gets to Linus. Thanks, John -- John W. Linville linville@tuxdriver.com ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2008-04-21 17:06 Ivo van Doorn
2008-05-01 8:29 ` Ivo van Doorn
0 siblings, 1 reply; 73+ messages in thread
From: Ivo van Doorn @ 2008-04-21 17:06 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Finally a new official rt2x00 release,
off course I have send a lot of patches over the past few weeks
with several bugfixes, but now I am bumping the versions to 2.1.5.
Please consider this patch series for the 2.6.26 kernel,
they are all either bugfixes or minor cleanups.
with the exception of "[PATCH 4/9] rt2x00: Use rt2x00 queue numbering"
which besides a cleanup will also help with the pending mac80211
queue reorganization to QDisc.
Ivo
PS. Don't be alarmed over the "The following changes since commit"
line below which indicates "mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE"
is used as basis. That patch is _not_ present in the rt2x00.git upstream branch
and none of the following patches depend on that patch.
---
The following changes since commit c8b29c460a389a8561189ad2a77fcb697ef35df9:
Ivo van Doorn (1):
mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (9):
rt2x00: Support hardware RTS and CTS-to-self frames
rt2x00: Remove DRIVER_SUPPORT_MIXED_INTERFACES
rt2x00: Don't enable short preamble for 1MBs
rt2x00: Use rt2x00 queue numbering
rt2x00: Fix quality/activity led handling
rt2x00: Clarify supported chipsets in Kconfig
rt2x00: Add helper macros
rt2x00: Fix kernel-doc
rt2x00: Release rt2x00 2.1.5
drivers/net/wireless/rt2x00/Kconfig | 55 +++++++++++++++++------------
drivers/net/wireless/rt2x00/rt2400pci.c | 36 +++++++------------
drivers/net/wireless/rt2x00/rt2500pci.c | 39 +++++++-------------
drivers/net/wireless/rt2x00/rt2500usb.c | 22 ++++-------
drivers/net/wireless/rt2x00/rt2x00.h | 18 ++++-----
drivers/net/wireless/rt2x00/rt2x00dev.c | 5 ++-
drivers/net/wireless/rt2x00/rt2x00leds.c | 15 ++++++++
drivers/net/wireless/rt2x00/rt2x00lib.h | 6 +++
drivers/net/wireless/rt2x00/rt2x00mac.c | 31 +++++++++-------
drivers/net/wireless/rt2x00/rt2x00pci.c | 2 +-
drivers/net/wireless/rt2x00/rt2x00pci.h | 6 ++-
drivers/net/wireless/rt2x00/rt2x00queue.c | 6 ++--
drivers/net/wireless/rt2x00/rt2x00queue.h | 40 +++++++++++++-------
drivers/net/wireless/rt2x00/rt2x00usb.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00usb.h | 21 +++++++++--
drivers/net/wireless/rt2x00/rt61pci.c | 29 +++++----------
drivers/net/wireless/rt2x00/rt73usb.c | 35 +++++++-----------
17 files changed, 191 insertions(+), 179 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2008-04-21 17:06 Ivo van Doorn @ 2008-05-01 8:29 ` Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-05-01 8:29 UTC (permalink / raw) To: linville; +Cc: linux-wireless, rt2400-devel Hi John, > Finally a new official rt2x00 release, > off course I have send a lot of patches over the past few weeks > with several bugfixes, but now I am bumping the versions to 2.1.5. > > Please consider this patch series for the 2.6.26 kernel, Was this patch series in time for the 2.6.26 merge window? If not, please consider merging at least the following patches since they are real bugfixes: > rt2x00: Don't enable short preamble for 1MBs > rt2x00: Fix quality/activity led handling > rt2x00: Clarify supported chipsets in Kconfig The others are code cleanups which are "nice to have", but could otherwise wait for 2.6.27. > rt2x00: Support hardware RTS and CTS-to-self frames > rt2x00: Remove DRIVER_SUPPORT_MIXED_INTERFACES > rt2x00: Use rt2x00 queue numbering > rt2x00: Add helper macros > rt2x00: Fix kernel-doc > rt2x00: Release rt2x00 2.1.5 Thanks, Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2008-03-09 21:37 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-03-09 21:37 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
This is the latest version of rt2x00: 2.1.4
All drivers are now showing excellent progress, rt2400pci, rt2500pci, rt61pci and rt73usb
seem to be working as expected now. And only rt2500usb is spoiling things by having
only a working RX but no TX.
After this patch series, it is highly likely you can close a lot of rt2x00 related bugs
in the Fedora bugzilla. :)
Ivo
---
The following changes since commit 4f739cf30891f277a6353d61275489528fab64e3:
Pavel Roskin (1):
at76_usb: make the driver depend on MAC80211
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Adam Baker (2):
rt2x00: never disable multicast because it disables broadcast too
rt2x00:correct rx packet length for USB devices
Ivo van Doorn (18):
rt2x00: Align RX descriptor to 4 bytes
rt2x00: Don't use uninitialized desc_len
rt2x00: Use skbdesc fields for descriptor initialization
rt2x00: Add new D-Link USB ID
rt2x00: Only disable beaconing just before beacon update
rt2x00: Upgrade queue->lock to use irqsave
rt2x00: Move firmware checksumming to driver
rt2x00: Start bugging when rt2x00lib doesn't filter SW diversity
rt2x00: Check IEEE80211_TXCTL_SEND_AFTER_DTIM flag
rt2x00: Rename config_preamble() to config_erp()
rt2x00: Add suspend/resume handlers to rt2x00rfkill
rt2x00: Make rt2x00leds_register return void
rt2x00: Always enable TSF ticking
rt2x00: Fix basic rate initialization
rt2x00: Fix compile error when rfkill is disabled
rt2x00: Fix RX DMA ring initialization
rt2x00: Fix rt2400pci signal
rt2x00: Release rt2x00 2.1.4
Luis Correia (1):
rt2x00: Fix trivial log message
Mattias Nissler (3):
rt2x00: Initialize TX control field in data entries
rt2x00: Use the correct size when copying the control info in txdone
rt2x00: Don't use unitialized rxdesc->size
drivers/net/wireless/rt2x00/Kconfig | 4 +-
drivers/net/wireless/rt2x00/rt2400pci.c | 67 +++++++------
drivers/net/wireless/rt2x00/rt2400pci.h | 6 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 71 ++++++++------
drivers/net/wireless/rt2x00/rt2500usb.c | 97 ++++++++++---------
drivers/net/wireless/rt2x00/rt2x00.h | 31 ++++--
drivers/net/wireless/rt2x00/rt2x00config.c | 62 +++++++-----
drivers/net/wireless/rt2x00/rt2x00debug.c | 5 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 108 +++++++++------------
drivers/net/wireless/rt2x00/rt2x00firmware.c | 34 +-------
drivers/net/wireless/rt2x00/rt2x00leds.c | 7 +-
drivers/net/wireless/rt2x00/rt2x00lib.h | 45 ++++-----
drivers/net/wireless/rt2x00/rt2x00mac.c | 22 +++--
drivers/net/wireless/rt2x00/rt2x00pci.c | 1 +
drivers/net/wireless/rt2x00/rt2x00queue.c | 17 ++-
drivers/net/wireless/rt2x00/rt2x00queue.h | 3 +
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 116 +++++++++++++++--------
drivers/net/wireless/rt2x00/rt2x00usb.c | 19 ++++-
drivers/net/wireless/rt2x00/rt61pci.c | 104 ++++++++++++--------
drivers/net/wireless/rt2x00/rt73usb.c | 131 +++++++++++++++-----------
20 files changed, 524 insertions(+), 426 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00 @ 2008-02-25 22:20 Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2008-02-25 22:20 UTC (permalink / raw) To: linville; +Cc: linux-wireless, rt2400-devel Hi John, Here is the 2.1.3 release of rt2x00. Most bugfixes concentrate on the link tuner issues reported for the rt2x00 2.0.14 version inside kernel 2.6.25. One additional fix for rt61pci is present where the recent "mode->band" changes in mac80211 contained a bug for rt61pci. Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2008-02-17 16:30 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-02-17 16:30 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the 2.1.2 release of rt2x00. Several important bugfixes like a
partial return of TX/RX activity in the PCI drivers.
Note that _none_ of the drivers (PCI or USB) are in a good shape since the
2.1.0 release. With partial RX/TX activity we are at least now on a similar
behavior as the 2.0.14 version inside kernel 2.6.25.
Speaking of the 2.6.25 kernel, it seems that rt2x00 is not in an all too good
shape in there. If more reports about broken TX/RX come in I will consider
reverting a lot of patches to make rt2x00 look a lot like the version in 2.6.24.
That version wasn't good either, but at least people can't complain about
regressions. ;)
Also note that the git pull request below also contains the patches from
previous pull request. But I noticed that you hadn't pulled in the 2.1.1 release yet.
I won't resent those patches to the list, since there aren't any changes in them
since last week. ;)
Ivo
---
The following changes since commit 2b78397a79d3daa2ba6c633526a7e3b455f9fc73:
Stefano Brivio (1):
b43legacy: Add driver load messages
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Adam Baker (1):
rt2x00: correct address calc for queue private data
Gertjan van Wingerde (1):
Fix hw mode registration with mac80211.
Ivo van Doorn (23):
rt2x00: Fix invalid DMA free
rt2x00: Make rt2x00 less verbose
rt2x00: Remove MGMT ring initialization
rt2x00: Select CONFIG_NEW_LEDS
rt2x00: make csr_cache and csr_addr an union
rt2x00: Fix scheduling while atomic errors in usb drivers
rt2x00: Add queue statistics to debugfs
rt2x00: Fix typo in debug statement
rt2x00: Fix skbdesc->data_len initialization
rt2x00: Fix queue->qid initialization
rt2x00: Cleanup Makefile
rt2x00: Kill guardian urb during disable_radio
rt2x00: Release rt2x00 2.1.1
rt2x00: Send frames out with configured TX power
rt2x00: Don't report driver generated frames to tx_status()
rt2x00: Fix Descriptor DMA initialization
rt2x00: Filter ACK_CTS based on FIF_CONTROL
rt2x00: Remove reset_tsf()
rt2x00: Rename dscape -> mac80211
rt2x00: Cleanup mode registration
rt2x00: Remove async vendor request calls from rt2x00usb
rt2x00: Fix MAC address defines in rt61pci
rt2x00: Release rt2x00 2.1.2
drivers/net/wireless/rt2x00/Kconfig | 3 +-
drivers/net/wireless/rt2x00/Makefile | 41 ++++-------
drivers/net/wireless/rt2x00/rt2400pci.c | 39 ++++------
drivers/net/wireless/rt2x00/rt2400pci.h | 6 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 38 ++++------
drivers/net/wireless/rt2x00/rt2500pci.h | 4 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 23 ++++---
drivers/net/wireless/rt2x00/rt2500usb.h | 4 +-
drivers/net/wireless/rt2x00/rt2x00.h | 50 ++++++++-----
drivers/net/wireless/rt2x00/rt2x00debug.c | 90 ++++++++++++++++++++----
drivers/net/wireless/rt2x00/rt2x00dev.c | 100 +++++++++++++++------------
drivers/net/wireless/rt2x00/rt2x00lib.h | 5 +-
drivers/net/wireless/rt2x00/rt2x00mac.c | 24 ++++++-
drivers/net/wireless/rt2x00/rt2x00pci.c | 108 +++++++++++++++++++---------
drivers/net/wireless/rt2x00/rt2x00pci.h | 14 ++--
drivers/net/wireless/rt2x00/rt2x00queue.c | 36 +++++----
drivers/net/wireless/rt2x00/rt2x00queue.h | 12 +++-
drivers/net/wireless/rt2x00/rt2x00usb.c | 90 +++++++-----------------
drivers/net/wireless/rt2x00/rt2x00usb.h | 18 -----
drivers/net/wireless/rt2x00/rt61pci.c | 54 ++++++--------
drivers/net/wireless/rt2x00/rt61pci.h | 12 ++--
drivers/net/wireless/rt2x00/rt73usb.c | 56 +++++++--------
drivers/net/wireless/rt2x00/rt73usb.h | 4 +-
23 files changed, 453 insertions(+), 378 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-02-10 21:46 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-02-10 21:46 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is a quick followup release labeled 2.1.1. The previous release
contained many bugs as it was mostly untested. Result was there
were critical issues with it, of which some have now been fixed.
The most critical issues are random panics due to corrupt memory access,
at the moment none of the drivers are displaying any activity yet where
rt73usb is still crashing at random times.
Ivo
---
The following changes since commit d86916b7d36c4f0db8634fcc17fe2d747b317f17:
John W. Linville (1):
Merge branch 'at76' into everything
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Adam Baker (1):
rt2x00: correct address calc for queue private data
Ivo van Doorn (13):
rt2x00: Fix invalid DMA free
rt2x00: Make rt2x00 less verbose
rt2x00: Remove MGMT ring initialization
rt2x00: Select CONFIG_NEW_LEDS
rt2x00: make csr_cache and csr_addr an union
rt2x00: Fix scheduling while atomic errors in usb drivers
rt2x00: Add queue statistics to debugfs
rt2x00: Fix typo in debug statement
rt2x00: Fix skbdesc->data_len initialization
rt2x00: Fix queue->qid initialization
rt2x00: Cleanup Makefile
rt2x00: Kill guardian urb during disable_radio
rt2x00: Release rt2x00 2.1.1
drivers/net/wireless/rt2x00/Kconfig | 1 +
drivers/net/wireless/rt2x00/Makefile | 41 +++++-------
drivers/net/wireless/rt2x00/rt2400pci.c | 4 -
drivers/net/wireless/rt2x00/rt2500pci.c | 4 -
drivers/net/wireless/rt2x00/rt2500usb.c | 6 +--
drivers/net/wireless/rt2x00/rt2x00.h | 12 ++--
drivers/net/wireless/rt2x00/rt2x00debug.c | 90 ++++++++++++++++++++++----
drivers/net/wireless/rt2x00/rt2x00mac.c | 9 +++-
drivers/net/wireless/rt2x00/rt2x00pci.c | 99 +++++++++++++++++++---------
drivers/net/wireless/rt2x00/rt2x00pci.h | 8 +-
drivers/net/wireless/rt2x00/rt2x00queue.c | 36 ++++++-----
drivers/net/wireless/rt2x00/rt2x00usb.c | 37 ++++++++---
drivers/net/wireless/rt2x00/rt61pci.c | 8 +--
drivers/net/wireless/rt2x00/rt61pci.h | 2 +-
drivers/net/wireless/rt2x00/rt73usb.c | 8 +--
15 files changed, 231 insertions(+), 134 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2008-01-06 22:37 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2008-01-06 22:37 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the 2.0.14 release of rt2x00. Again lots of bugfixes,
and unfortunately we are still not there yet. I am afraid
rt2500usb and rt61pci are lost causes for the 2.6.24 release,
they are both broken, and I haven't figured out what is causing
this.
Next release will contain more interesting stuff, most of those
patches are already done, but due to testing and fine tuning I
have kept those patches back for this release. They primarily
cover basic support for virtual interfaces, led triggers, and some
first patches to make rt2x00lib support rt2800 (Yes, work on those
drivers has begun).
All indivual patches can also be found here:
http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.0.14/
Ivo
---
The following changes since commit 2d0811f5ed506397d85792abfd8ef0983f4e8b7c:
John W. Linville (1):
fixup 'everything' after 'upstream-davem' rebase and patch modification
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (12):
rt2x00: Fix chipset debugfs file
rt2x00: Always call ieee80211_stop_queue() when return NETDEV_TX_BUSY
rt2x00: Only set the TBCN flag when the interface is configured to send beacons.
rt2x00: Store queue idx and entry idx in data_ring and data_entry
rt2x00: Move start() and stop() handlers into rt2x00lib.c
rt2x00: Put 802.11 data on 4 byte boundary
rt2x00: Move packet filter flags
rt2x00: Cleanup write_tx_desc() arguments
rt2x00: Determine MY_BSS from descriptor
rt2x00: Move init_txring and init_rxring into rt2x00lib
rt2x00: Correctly initialize data and desc pointer
rt2x00: Release rt2x00 2.0.14
drivers/net/wireless/rt2x00/rt2400pci.c | 102 +++++++--------------
drivers/net/wireless/rt2x00/rt2500pci.c | 88 ++++++------------
drivers/net/wireless/rt2x00/rt2500usb.c | 36 +++++---
drivers/net/wireless/rt2x00/rt2x00.h | 32 ++++---
drivers/net/wireless/rt2x00/rt2x00debug.c | 13 +--
drivers/net/wireless/rt2x00/rt2x00dev.c | 142 ++++++++++++++++++++++++-----
drivers/net/wireless/rt2x00/rt2x00lib.h | 4 +-
drivers/net/wireless/rt2x00/rt2x00mac.c | 59 +++---------
drivers/net/wireless/rt2x00/rt2x00pci.c | 28 ++++--
drivers/net/wireless/rt2x00/rt2x00ring.h | 13 +++
drivers/net/wireless/rt2x00/rt2x00usb.c | 87 ++++++++----------
drivers/net/wireless/rt2x00/rt2x00usb.h | 5 +-
drivers/net/wireless/rt2x00/rt61pci.c | 114 +++++++++---------------
drivers/net/wireless/rt2x00/rt73usb.c | 35 ++++---
14 files changed, 378 insertions(+), 380 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-11-27 20:46 Ivo van Doorn
2007-11-27 20:54 ` Ivo van Doorn
0 siblings, 1 reply; 73+ messages in thread
From: Ivo van Doorn @ 2007-11-27 20:46 UTC (permalink / raw)
To: John W. Linville, linux-wireless, rt2400-devel
Hi John,
Here is the latest version of rt2x00.
Please merge the patches for 2.6.24
09 - Only update rssi average approximation on receiving beacon frames.
10 - Remove redundant code in rfkill setup
11 - Cleanup rfkill
All other patches can wait for 2.6.25, since they are code cleanups and the
new TX/RX frame dumping facility through debugfs.
Ivo
---
The following changes since commit 301df40749bdf144c72637795ba93d82e4b84682:
Johannes Berg (1):
mac80211: remove more forgotten code
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (9):
rt2x00: Replace DRV_NAME with KBUILD_MODNAME
rt2x00: Extend PLCP descriptor definition for rt2400pci
rt2x00: Move register value/offset files into new folder
rt2x00: Add chipset version to chipset debugfs entry
rt2x00: Add skb descriptor
rt2x00: Add TX/RX frame dumping facility
rt2x00: Use IEEE80211_IF_TYPE_INVALID directly
rt2x00: Cleanup rfkill
rt2x00: Release rt2x00 2.0.13
Larry Finger (1):
rt2x00: Remove redundant code in rfkill setup
Mattias Nissler (1):
rt2x00: Only update rssi average approximation on receiving beacon frames.
drivers/net/wireless/rt2x00/rt2400pci.c | 49 ++----
drivers/net/wireless/rt2x00/rt2400pci.h | 20 ++-
drivers/net/wireless/rt2x00/rt2500pci.c | 9 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 39 +++--
drivers/net/wireless/rt2x00/rt2x00.h | 26 ++-
drivers/net/wireless/rt2x00/rt2x00config.c | 5 -
drivers/net/wireless/rt2x00/rt2x00debug.c | 240 +++++++++++++++++++++++---
drivers/net/wireless/rt2x00/rt2x00dev.c | 93 ++++++----
drivers/net/wireless/rt2x00/rt2x00firmware.c | 5 -
drivers/net/wireless/rt2x00/rt2x00lib.h | 6 +
drivers/net/wireless/rt2x00/rt2x00mac.c | 7 +-
drivers/net/wireless/rt2x00/rt2x00pci.c | 59 +++++--
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 15 --
drivers/net/wireless/rt2x00/rt2x00ring.h | 22 +++
drivers/net/wireless/rt2x00/rt2x00usb.c | 41 +++--
drivers/net/wireless/rt2x00/rt61pci.c | 36 +++--
drivers/net/wireless/rt2x00/rt73usb.c | 36 +++--
17 files changed, 484 insertions(+), 224 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2007-11-27 20:46 Ivo van Doorn @ 2007-11-27 20:54 ` Ivo van Doorn 2007-11-29 22:26 ` John W. Linville 0 siblings, 1 reply; 73+ messages in thread From: Ivo van Doorn @ 2007-11-27 20:54 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Hi, > Please merge the patches for 2.6.24 > 09 - Only update rssi average approximation on receiving beacon frames. > 10 - Remove redundant code in rfkill setup > 11 - Cleanup rfkill Sorry that should be: 08 - Only update rssi average approximation on receiving beacon frames. 09 - Remove redundant code in rfkill setup 10 - Cleanup rfkill Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2007-11-27 20:54 ` Ivo van Doorn @ 2007-11-29 22:26 ` John W. Linville 2007-11-30 9:51 ` Ivo van Doorn 0 siblings, 1 reply; 73+ messages in thread From: John W. Linville @ 2007-11-29 22:26 UTC (permalink / raw) To: Ivo van Doorn; +Cc: linux-wireless, rt2400-devel On Tue, Nov 27, 2007 at 09:54:29PM +0100, Ivo van Doorn wrote: > > Please merge the patches for 2.6.24 > Sorry that should be: > 08 - Only update rssi average approximation on receiving beacon frames. > 09 - Remove redundant code in rfkill setup > 10 - Cleanup rfkill Actually it looks to me like 9 and 10 apply to code that isn't in 2.6.24. 8 looks like it is close, but it doesn't quite apply either. I'll try to massage it in -- hopefully Jeff won't mind the extra trouble when rebasing... John -- John W. Linville linville@tuxdriver.com ^ permalink raw reply [flat|nested] 73+ messages in thread
* Re: Please pull 'upstream' branch of rt2x00 2007-11-29 22:26 ` John W. Linville @ 2007-11-30 9:51 ` Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2007-11-30 9:51 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel On Thursday 29 November 2007, John W. Linville wrote: > On Tue, Nov 27, 2007 at 09:54:29PM +0100, Ivo van Doorn wrote: > > > > Please merge the patches for 2.6.24 > > > Sorry that should be: > > 08 - Only update rssi average approximation on receiving beacon frames. > > 09 - Remove redundant code in rfkill setup > > 10 - Cleanup rfkill > > Actually it looks to me like 9 and 10 apply to code that isn't in > 2.6.24. 8 looks like it is close, but it doesn't quite apply either. > I'll try to massage it in -- hopefully Jeff won't mind the extra > trouble when rebasing... 9 and 10 should apply cleanly since the rfkill code hasn't changed for quite some time now. In fact I believe it hasn't changed since the initial merge to 2.6.24-rc. Anyway, I'll try to create a patch for the upstream-jgarzik branch this weekend, that would safe you and jeff some work. :) Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2007-10-27 11:34 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-10-27 11:34 UTC (permalink / raw)
To: John W. Linville; +Cc: rt2400-devel, linux-wireless
Hi John,
Here is the 2.0.12 release of rt2x00.
I noticed you only pulled 2 patches from the 2.0.11 release,
and I don't know why you dropped the remaining patches.
This means that this pull requests also contains the remaining
2.0.11 patches...
Lots of bugfixes this time, finally rfkill is working, link speeds issues
have been resolved and some packet loss issues are gone.
All indivual patches can also be found here:
http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.0.12/
Ivo
---
The following changes since commit 0119130478b1706232d79c768cb587c5e0c615de:
John W. Linville (1):
Merge branch 'fixes-jgarzik' into everything
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Adam Baker (2):
rt2x00: Unconstify rt2x00dev
rt2x00: Place mutex around USB register access
Ivo van Doorn (15):
rt2x00: Move quality statistics into seperate structure
rt2x00: Use enum defines
rt2x00: Correctly translate mac80211 antenna setup to rt2x00
rt2x00: SW diversity should default to antenna B
rt2x00: Remove rt2x00_clear_link
rt2x00: Implement SW diversity
rt2x00: Cleanup if-statements
rt2x00: Release rt2x00 2.0.11
rt2x00: Disable RX when switching antenna
rt2x00: Split rt61/rt73 antenna selection into RX and TX antenna
rt2x00: Input-polldev requires input device
rt2x00: Detect initial rfkill state on register
rt2x00: Remove unused variables
rt2x00: Remove data_desc structure
rt2x00: Release rt2x00 2.0.12
Mattias Nissler (4):
rt2x00: Fix antenna selection.
rt2x00: Rework rt61 antenna selection.
rt2x00: Rework rt73 antenna selection
rt2x00: Correctly set ACK bit in tx descriptors
drivers/net/wireless/rt2x00/rt2400pci.c | 104 +++++----
drivers/net/wireless/rt2x00/rt2400pci.h | 4 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 112 +++++-----
drivers/net/wireless/rt2x00/rt2500pci.h | 4 +-
drivers/net/wireless/rt2x00/rt2500usb.c | 169 +++++++++-----
drivers/net/wireless/rt2x00/rt2500usb.h | 17 ++-
drivers/net/wireless/rt2x00/rt2x00.h | 192 ++++++++++++----
drivers/net/wireless/rt2x00/rt2x00config.c | 95 ++++++++-
drivers/net/wireless/rt2x00/rt2x00debug.h | 4 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 212 +++++++++++++++---
drivers/net/wireless/rt2x00/rt2x00lib.h | 2 +
drivers/net/wireless/rt2x00/rt2x00pci.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00pci.h | 8 +-
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 44 ++++-
drivers/net/wireless/rt2x00/rt2x00ring.h | 23 +--
drivers/net/wireless/rt2x00/rt2x00usb.c | 38 +++-
drivers/net/wireless/rt2x00/rt2x00usb.h | 19 +-
drivers/net/wireless/rt2x00/rt61pci.c | 332 ++++++++++++++--------------
drivers/net/wireless/rt2x00/rt61pci.h | 14 +-
drivers/net/wireless/rt2x00/rt73usb.c | 198 ++++++++++-------
drivers/net/wireless/rt2x00/rt73usb.h | 14 +-
21 files changed, 1071 insertions(+), 538 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-10-13 14:27 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-10-13 14:27 UTC (permalink / raw)
To: John W. Linville; +Cc: rt2400-devel, linux-wireless
Hi John,
Here is the rt2x00 2.0.11 update.
Highlights for this release are the fix for the TX problems,
and the implementation of the Software Diversity Antenna.
All indivual patches can also be found here:
http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.0.11/
Ivo
---
The following changes since commit 2d46d1e00056de79e54c622a60f7e6f8818f6cb4:
Mattias Nissler (1):
mac80211: Defer setting of RX_FLAG_DECRYPTED.
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (9):
rt2x00: Move quality statistics into seperate structure
rt2x00: Use enum defines
rt2x00: Correctly translate mac80211 antenna setup to rt2x00
rt2x00: SW diversity should default to antenna B
rt2x00: Remove rt2x00_clear_link
rt2x00: Implement SW diversity
rt2x00: Cleanup if-statements
rt2x00: Add new rt73usb USB ID
rt2x00: Release rt2x00 2.0.11
Mattias Nissler (2):
rt2x00: Fix residual check in PLCP calculations.
rt2x00: Fix antenna selection.
drivers/net/wireless/rt2x00/rt2400pci.c | 80 +++++++-----
drivers/net/wireless/rt2x00/rt2500pci.c | 88 ++++++------
drivers/net/wireless/rt2x00/rt2500usb.c | 84 +++++++-----
drivers/net/wireless/rt2x00/rt2500usb.h | 13 ++-
drivers/net/wireless/rt2x00/rt2x00.h | 165 +++++++++++++++++------
drivers/net/wireless/rt2x00/rt2x00config.c | 85 +++++++++++-
drivers/net/wireless/rt2x00/rt2x00dev.c | 201 ++++++++++++++++++++++++----
drivers/net/wireless/rt2x00/rt2x00lib.h | 2 +
drivers/net/wireless/rt2x00/rt61pci.c | 116 +++++++++--------
drivers/net/wireless/rt2x00/rt73usb.c | 87 +++++++------
10 files changed, 645 insertions(+), 276 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-10-06 12:19 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-10-06 12:19 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the rt2x00 2.0.10 update.
Some obvious bugs have been fixed, some not so obvious bugs,
and the code has been cleaned up a bit by moving more
into rt2x00lib.
Note that as of now rt2x00.git will be branched from the wireless-2.6
git tree. I see wireless-dev has already been removed/renamed so
I won't be using that anymore. ;)
All indivual patches can also be found here:
http://kernel.org//pub/linux/kernel/people/ivd/rt2x00-2.0.10/
Ivo
---
The following changes since commit f88cf9b6d7c8dad6eb64a972a753584b8006c545:
John W. Linville (1):
zd1211rw-mac80211: undo print_mac API stuff
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (16):
rt2x00: Remove duplicate code in MAC & BSSID handling
rt2x00: Remove radio check from rt2x00lib_toggle_rx
rt2x00: Store "STARTED" state during suspend
rt2x00: Move rt2x00dev flags into enumeration
rt2x00: Don't use changed_flags inside configure_packet_filter
rt2x00: Fix rfkill handling
rt2x00: Move TSF sync values into rt2x00config
rt2x00: get_duration expects values in 100kbs
rt2x00: Cut lines down to 80 characters
rt2x00: Add get_tx_data_len callback function
rt2x00: Pass dev_state to rt2x00lib_toggle_rx
rt2x00: Small optimizations
rt2x00: Reorganize configuration handler
rt2x00: Clean disabling of rt73usb_get_tsf
rt2x00: Allways memset memory obtained from skb_push()
rt2x00: Release 2.0.10
drivers/net/wireless/rt2x00/rt2400pci.c | 186 ++++++++++----------------
drivers/net/wireless/rt2x00/rt2500pci.c | 201 +++++++++++-----------------
drivers/net/wireless/rt2x00/rt2500usb.c | 200 ++++++++++++----------------
drivers/net/wireless/rt2x00/rt2x00.h | 93 ++++++++++---
drivers/net/wireless/rt2x00/rt2x00config.c | 113 +++++++++++++++-
drivers/net/wireless/rt2x00/rt2x00dev.c | 52 +++++---
drivers/net/wireless/rt2x00/rt2x00lib.h | 14 +--
drivers/net/wireless/rt2x00/rt2x00mac.c | 38 +++++-
drivers/net/wireless/rt2x00/rt2x00reg.h | 9 ++
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00usb.c | 29 +++--
drivers/net/wireless/rt2x00/rt61pci.c | 166 +++++++----------------
drivers/net/wireless/rt2x00/rt73usb.c | 195 +++++++++++----------------
13 files changed, 642 insertions(+), 658 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-09-25 18:52 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-09-25 18:52 UTC (permalink / raw)
To: John W. Linville, linux-wireless, rt2400-devel
Hi John,
(Finally) the rt2x00 2.0.9 release containing the patches
for the API changes from the mac80211-misc git tree.
NOTE: currently rt2x00.git is branched off from the mac80211-misc
tree to make the porting easier and to allow early testing.
So you might want to pull that tree before pulling rt2x00.
This release contains several bug fixes especially some kernel
panics during rmmod have been fixed by Modestas Vainius.
---
The following changes since commit 4cceb887147261d7fd9fe7ce3b6d6f236c8300bc:
Michael Wu (1):
adm8211: Adapt to filter configuration API
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (11):
rt2x00: Correct error in calculating rssi for link tuner
rt2x00: Make *_beacon_update static
rt2x00: Increase rt2x00usb_vendor_request timeout.
rt2x00: Correctly identify rt2561turbo
rt2x00: adapt to filter configuration API
rt2x00: Reorganize rt2x00dev->flags
rt2x00: Add rt2x00dev->flags to debugfs
rt2x00: Stop link tuning when radio is down
rt2x00: Fix obvious typo in comment
rt2x00: Fix panic on rmmod with rfkill enabled
rt2x00: Release rt2x00 2.0.9
Modestas Vainius (1):
rt2x00: make rt2x00lib_stop_link_tuner() reentrant with link_tuner work
drivers/net/wireless/rt2x00/rt2400pci.c | 159 +++++++++++++-----------
drivers/net/wireless/rt2x00/rt2500pci.c | 171 ++++++++++++++------------
drivers/net/wireless/rt2x00/rt2500usb.c | 181 ++++++++++++++++------------
drivers/net/wireless/rt2x00/rt2x00.h | 70 ++++-------
drivers/net/wireless/rt2x00/rt2x00config.c | 75 +-----------
drivers/net/wireless/rt2x00/rt2x00debug.c | 37 ++++++
drivers/net/wireless/rt2x00/rt2x00dev.c | 109 +++++++++++++-----
drivers/net/wireless/rt2x00/rt2x00lib.h | 4 +-
drivers/net/wireless/rt2x00/rt2x00mac.c | 155 ++++++++----------------
drivers/net/wireless/rt2x00/rt2x00pci.c | 31 ++---
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 14 +--
drivers/net/wireless/rt2x00/rt2x00ring.h | 17 +++-
drivers/net/wireless/rt2x00/rt2x00usb.c | 26 ++---
drivers/net/wireless/rt2x00/rt2x00usb.h | 8 +-
drivers/net/wireless/rt2x00/rt61pci.c | 172 ++++++++++++++------------
drivers/net/wireless/rt2x00/rt73usb.c | 179 ++++++++++++++++------------
drivers/net/wireless/rt2x00/rt73usb.h | 2 +-
17 files changed, 728 insertions(+), 682 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-09-16 12:17 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-09-16 12:17 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
It has taken some time to finally release this,
but it contains quite a lot of bugfixes of variating impact.
Overall the stability has been greatly improved,
although there are still some nasty bugs in there.
Note that even after this update rt2x00 in wireless-dev will still not work
for encrypted networks. This is because rt2x00 depends on the encryption
patches by Johannes which are pending for wireless-dev inclusion
(Most notably the patch that fixes the IEEE80211_HW_WEP_INCLUDE_IV
behavior is required to make it work again).
Ivo
---
The following changes since commit e6d77b902151278df6a670b460a32e7cc6b75e9e:
Luis R. Rodriguez (1):
Merge branch 'ath5k' into everything
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (24):
rt2x00: Remove firmware not-NULL check
rt2x00: Don't check for IEEE80211_TXCTL_REQ_TX_STATUS
rt2x00: Cleanup rxdone
rt2x00: Don't allow configuration calls when uninitialized
rt2x00: Fix rt61pci and rt73usb beacon handling
rt2x00: Recalculate link quality
rt2x00: Cleanup entry->flags
rt2x00: Reduce LNA flags
rt2x00: Rework RT61 and RT73 Antenna handling
rt2x00: Rename DEVICE_SUPPORT_ATIM to REQUIRE_BEACON_RING
rt2x00: Remove rt2x00mac_reset()
rt2x00: Fix system freeze on device removal
rt2x00: Reduce magic value writing to device
rt2x00: New USB ID's for rt73usb and rt2500usb
rt2x00: Beacon ring entries should have QID_MGMT
rt2x00: Fix DEV_RATEBIT_ definitions
rt2x00: Fix rfkill handling
rt2x00: Merge allocation/free register components
rt2x00: macro's shouldn't use hidden arguments
rt2x00: Fix channel initialization
rt2x00: Add better CONFIG_PM checks
rt2x00: Add start/stop handlers
rt2x00: Add additional bit to MAX_FRAME_UNIT
rt2x00: Release rt2x00 2.0.8
drivers/net/wireless/rt2x00/rt2400pci.c | 37 +-
drivers/net/wireless/rt2x00/rt2500pci.c | 83 +++--
drivers/net/wireless/rt2x00/rt2500pci.h | 40 ++-
drivers/net/wireless/rt2x00/rt2500usb.c | 208 ++++++++--
drivers/net/wireless/rt2x00/rt2500usb.h | 39 ++-
drivers/net/wireless/rt2x00/rt2x00.h | 47 ++-
drivers/net/wireless/rt2x00/rt2x00config.c | 12 +-
drivers/net/wireless/rt2x00/rt2x00debug.c | 26 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 308 ++++++--------
drivers/net/wireless/rt2x00/rt2x00firmware.c | 6 +-
drivers/net/wireless/rt2x00/rt2x00lib.h | 4 +-
drivers/net/wireless/rt2x00/rt2x00mac.c | 111 ++++--
drivers/net/wireless/rt2x00/rt2x00pci.c | 127 ++----
drivers/net/wireless/rt2x00/rt2x00pci.h | 3 +
drivers/net/wireless/rt2x00/rt2x00reg.h | 27 +-
drivers/net/wireless/rt2x00/rt2x00rfkill.c | 6 +-
drivers/net/wireless/rt2x00/rt2x00ring.h | 29 +-
drivers/net/wireless/rt2x00/rt2x00usb.c | 235 +++--------
drivers/net/wireless/rt2x00/rt2x00usb.h | 9 +-
drivers/net/wireless/rt2x00/rt61pci.c | 617 ++++++++++++++++++--------
drivers/net/wireless/rt2x00/rt61pci.h | 87 ++++-
drivers/net/wireless/rt2x00/rt73usb.c | 471 +++++++++++++-------
drivers/net/wireless/rt2x00/rt73usb.h | 65 +++-
23 files changed, 1615 insertions(+), 982 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-08-19 18:18 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-08-19 18:18 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Well finally rt2x00 2.0.7 is released, unfortunately it will
not be the last release in the 2.0.* series as promised earlier.
This series contains lots of bugfixes, but some of the more
critical issues are still present. rt2x00 is however becoming
more usable for more people, so the progress is there. ;)
I'll do my best to make the next release 2.0.8 the last in the
2.0.* series so 2.1.0 can be moved upstream. :)
Ivo
---
The following changes since commit f5a420590f3f6a45ee5bca0048640f0f24852315:
John W. Linville (1):
Merge branch 'b43' into everything
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (27):
rt2x00: Correctly configure packet filter in monitor mode
rt2x00: Clear MAC and BSSID when non-monitor interface goes down
rt2x00: Check return value of usb_control_msg()
rt2x00: Clear all fields on start_link_tune()
rt2x00: Don't increase rx_failed for individual frames
rt2x00: Set vgc_level during reset_tuner
rt2x00: Schedule beacon update
rt2x00: Be consistent with unsigned
rt2x00: Correctly reset TX/RX success/failed counters
rt2x00: Rework RF register handling
rt2x00: rt2x00_ring_free returns invalid length
rt2x00: Use caching for USB transfers
rt2x00: Cleanup set_state for rt61 and rt73
rt2x00: Fix register initialization ordering
rt2x00: memset descriptor before use
rt2x00: Remove IEEE80211_HW_WEP_INCLUDE_IV flag
rt2x00: Cleanup TXD flags
rt2x00: Add byte-ordering annotation for MAC and BSSID
rt2x00: Correctly set TXD retry flag
rt2x00: Move rt2x00 files into rt2x00 folder
rt2x00: Add file pattern to MAINTAINER entry
rt2x00: Fix PLCP setup
rt2x00: Clean up RATEMASK handling
rt2x00: Add rt2x00lib_reset_link_tuner()
rt2x00: Always check if mac80211 requested TX status update
rt2x00: Lindent
rt2x00: rt2x00 2.0.7
Luca Tettamanti (1):
Fix off-by-one error in debugfs helpers
Mattias Nissler (2):
rt2x00: Fix width of filter field.
rt2x00: Store firmware in memory
MAINTAINERS | 1 +
drivers/net/wireless/Kconfig | 131 +------
drivers/net/wireless/Makefile | 23 +-
drivers/net/wireless/rt2x00/Kconfig | 130 ++++++
drivers/net/wireless/rt2x00/Makefile | 22 +
drivers/net/wireless/{ => rt2x00}/rt2400pci.c | 149 ++++---
drivers/net/wireless/{ => rt2x00}/rt2400pci.h | 0
drivers/net/wireless/{ => rt2x00}/rt2500pci.c | 409 ++++++++++--------
drivers/net/wireless/{ => rt2x00}/rt2500pci.h | 0
drivers/net/wireless/{ => rt2x00}/rt2500usb.c | 382 +++++++++-------
drivers/net/wireless/{ => rt2x00}/rt2500usb.h | 0
drivers/net/wireless/{ => rt2x00}/rt2x00.h | 56 ++-
drivers/net/wireless/{ => rt2x00}/rt2x00config.c | 14 +-
drivers/net/wireless/{ => rt2x00}/rt2x00debug.c | 23 +-
drivers/net/wireless/{ => rt2x00}/rt2x00debug.h | 0
drivers/net/wireless/{ => rt2x00}/rt2x00dev.c | 221 ++++++----
drivers/net/wireless/{ => rt2x00}/rt2x00firmware.c | 43 ++-
drivers/net/wireless/{ => rt2x00}/rt2x00lib.h | 5 +
drivers/net/wireless/{ => rt2x00}/rt2x00mac.c | 15 +-
drivers/net/wireless/{ => rt2x00}/rt2x00pci.c | 7 +-
drivers/net/wireless/{ => rt2x00}/rt2x00pci.h | 0
drivers/net/wireless/{ => rt2x00}/rt2x00reg.h | 56 ++-
drivers/net/wireless/{ => rt2x00}/rt2x00rfkill.c | 0
drivers/net/wireless/{ => rt2x00}/rt2x00ring.h | 6 +-
drivers/net/wireless/{ => rt2x00}/rt2x00usb.c | 114 ++++-
drivers/net/wireless/{ => rt2x00}/rt2x00usb.h | 60 +++-
drivers/net/wireless/{ => rt2x00}/rt61pci.c | 466 ++++++++------------
drivers/net/wireless/{ => rt2x00}/rt61pci.h | 0
drivers/net/wireless/{ => rt2x00}/rt73usb.c | 471 +++++++++++---------
drivers/net/wireless/{ => rt2x00}/rt73usb.h | 0
30 files changed, 1532 insertions(+), 1272 deletions(-)
create mode 100644 drivers/net/wireless/rt2x00/Kconfig
create mode 100644 drivers/net/wireless/rt2x00/Makefile
rename drivers/net/wireless/{ => rt2x00}/rt2400pci.c (94%)
rename drivers/net/wireless/{ => rt2x00}/rt2400pci.h (100%)
rename drivers/net/wireless/{ => rt2x00}/rt2500pci.c (84%)
rename drivers/net/wireless/{ => rt2x00}/rt2500pci.h (100%)
rename drivers/net/wireless/{ => rt2x00}/rt2500usb.c (81%)
rename drivers/net/wireless/{ => rt2x00}/rt2500usb.h (100%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00.h (94%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00config.c (92%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00debug.c (94%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00debug.h (100%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00dev.c (85%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00firmware.c (84%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00lib.h (94%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00mac.c (97%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00pci.c (98%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00pci.h (100%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00reg.h (80%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00rfkill.c (100%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00ring.h (96%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00usb.c (85%)
rename drivers/net/wireless/{ => rt2x00}/rt2x00usb.h (65%)
rename drivers/net/wireless/{ => rt2x00}/rt61pci.c (89%)
rename drivers/net/wireless/{ => rt2x00}/rt61pci.h (100%)
rename drivers/net/wireless/{ => rt2x00}/rt73usb.c (82%)
rename drivers/net/wireless/{ => rt2x00}/rt73usb.h (100%)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-08-02 15:45 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-08-02 15:45 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is rt2x00 version 2.0.6,
unfortunately 2.0.5 was broken and unusable.
Problem has been found and fixed, so together with
some other small changes here is 2.0.6 :)
This one should be safe to be merged with FC kernels. ;)
Ivo
---
The following changes since commit 515c4dbee8271ff66fde61304309b1992e430502:
John W. Linville (1):
Merge branch 'upstream' of git://git.kernel.org/.../ivd/rt2x00
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (7):
Merge branch 'wireless-dev'
rt2x00: Add new USB ID for Buffalo rt73usb
rt2x00: Update rssi before signal calculation
rt2x00: Return 0 when the offset != 0
rt2x00: rt2x00lib_config_mac_addr should call config_mac
rt2x00: Release rt2x00 2.0.6
Merge branch 'wireless-dev'
drivers/net/wireless/rt2x00.h | 2 +-
drivers/net/wireless/rt2x00config.c | 4 ++--
drivers/net/wireless/rt2x00debug.c | 6 ++++++
drivers/net/wireless/rt2x00dev.c | 2 +-
drivers/net/wireless/rt73usb.c | 2 ++
5 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/rt2x00.h b/drivers/net/wireless/rt2x00.h
index c5c1773..77556fe 100644
--- a/drivers/net/wireless/rt2x00.h
+++ b/drivers/net/wireless/rt2x00.h
@@ -41,7 +41,7 @@
* Module information.
* DRV_NAME should be set within the individual module source files.
*/
-#define DRV_VERSION "2.0.5"
+#define DRV_VERSION "2.0.6"
#define DRV_PROJECT "http://rt2x00.serialmonkey.com"
/*
diff --git a/drivers/net/wireless/rt2x00config.c b/drivers/net/wireless/rt2x00config.c
index 3733a84..11d5646 100644
--- a/drivers/net/wireless/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00config.c
@@ -37,13 +37,13 @@
void rt2x00lib_config_mac_addr(struct rt2x00_dev *rt2x00dev, u8 *mac)
{
if (mac)
- rt2x00dev->ops->lib->config_bssid(rt2x00dev, mac);
+ rt2x00dev->ops->lib->config_mac_addr(rt2x00dev, mac);
}
void rt2x00lib_config_bssid(struct rt2x00_dev *rt2x00dev, u8 *bssid)
{
if (bssid)
- rt2x00dev->ops->lib->config_mac_addr(rt2x00dev, bssid);
+ rt2x00dev->ops->lib->config_bssid(rt2x00dev, bssid);
}
void rt2x00lib_config_packet_filter(struct rt2x00_dev *rt2x00dev, int filter)
diff --git a/drivers/net/wireless/rt2x00debug.c b/drivers/net/wireless/rt2x00debug.c
index ffc95bb..d6c4cfe 100644
--- a/drivers/net/wireless/rt2x00debug.c
+++ b/drivers/net/wireless/rt2x00debug.c
@@ -124,6 +124,9 @@ static ssize_t rt2x00debug_read_##__name(struct file *file, \
size_t size; \
__type value; \
\
+ if (*offset) \
+ return 0; \
+ \
if (intf->offset_##__name > debug->__name.word_count) \
return -EINVAL; \
\
@@ -151,6 +154,9 @@ static ssize_t rt2x00debug_write_##__name(struct file *file, \
size_t size; \
__type value; \
\
+ if (*offset) \
+ return 0; \
+ \
if (!capable(CAP_NET_ADMIN)) \
return -EPERM; \
\
diff --git a/drivers/net/wireless/rt2x00dev.c b/drivers/net/wireless/rt2x00dev.c
index a584fbe..28ddbe0 100644
--- a/drivers/net/wireless/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00dev.c
@@ -349,11 +349,11 @@ void rt2x00lib_rxdone(struct data_entry *entry, char *data,
}
}
+ rt2x00_update_link_rssi(&rt2x00dev->link, rssi);
rt2x00dev->link.rx_success++;
rx_status->rate = val;
rx_status->signal = rt2x00lib_calculate_link_signal(rt2x00dev);
rx_status->ssi = rssi;
- rt2x00_update_link_rssi(&rt2x00dev->link, rssi);
/*
* Let's allocate a sk_buff where we can store the received data in,
diff --git a/drivers/net/wireless/rt73usb.c b/drivers/net/wireless/rt73usb.c
index 48fb38e..2f0bf29 100644
--- a/drivers/net/wireless/rt73usb.c
+++ b/drivers/net/wireless/rt73usb.c
@@ -1884,6 +1884,8 @@ static struct usb_device_id rt73usb_device_table[] = {
{ USB_DEVICE(0x050d, 0x905b), USB_DEVICE_DATA(&rt73usb_ops) },
/* Billionton */
{ USB_DEVICE(0x1631, 0xc019), USB_DEVICE_DATA(&rt73usb_ops) },
+ /* Buffalo */
+ { USB_DEVICE(0x0411, 0x00f4), USB_DEVICE_DATA(&rt73usb_ops) },
/* CNet */
{ USB_DEVICE(0x1371, 0x9022), USB_DEVICE_DATA(&rt73usb_ops) },
{ USB_DEVICE(0x1371, 0x9032), USB_DEVICE_DATA(&rt73usb_ops) },
^ permalink raw reply related [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-07-31 18:36 Ivo van Doorn
2007-08-01 17:05 ` Ivo van Doorn
0 siblings, 1 reply; 73+ messages in thread
From: Ivo van Doorn @ 2007-07-31 18:36 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is a new release of rt2x00: 2.0.5
Don't let the 25 patches fool you, there are 2 _very_ big patches among them. ;)
The 2 biggest are (as announced earlier) the results of a Lindent run,
and the result of a code cleanup. After those 2 patches the code is hopefully
clean enough to be accepted upstream when rt2x00 is a bit more stable.
In any case further code cleanup patches won't/shouldn't be so big anymore.
Some interesting features in this release:
- rt73usb no longer crashes in adhoc mode (But neither does it work)
- rf registers can now be read/written through debugfs
- Monitor interfaces should now capture everything
- Signal reporting
- Correct suspend/resume handling
Ivo
---
The following changes since commit 6e46e62d22ed4b5282d3b9592483e901a9f2643f:
Zhu Yi (1):
iwlwifi: update version stamp to 0.1.5
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Ivo van Doorn (25):
rt2x00: Remove rt73usb_get_tsf
rt2x00: Put rf register value detection in function
rt2x00: Don't toggle tuner bit for non-RF2523 chips
rt2x00: Add reset_tuner handler
rt2x00: rt2500usb needs to reset BBP 24, 25 and 61
rt2x00: Cleanup RF register reading/writing
rt2x00: Add RF register contents to Debugfs
rt2x00: Fix invalid RF array reading
rt2x00: Increase RF_SIZE
rt2x00: rt2x00pci should use rf_size
rt2x00: Correctly handle RF 0 writing
rt2x00: Rename init_hw -> probe_hw
rt2x00: Move interface init/deinit into rt2x00dev
rt2x00: Fix interface opening/closing on suspend/resume
rt2x00: Lindent
rt2x00: Call all configure handlers during resume
rt2x00: Big rt2x00 cleanup
rt2x00: Add Multicast/Broadcast filtering
rt2x00: Include <linux/delay.h>
rt2x00: Periodically read statistics
rt2x00: Don't check for preamble in RXdone
rt2x00: Configure type during add_interface
rt2x00: Add Signal reporting
rt2x00: rt2x00 2.0.5
Merge branch 'wireless-dev'
drivers/net/wireless/Makefile | 2 +-
drivers/net/wireless/rt2400pci.c | 620 +++++++++++----------
drivers/net/wireless/rt2400pci.h | 3 +-
drivers/net/wireless/rt2500pci.c | 695 +++++++++++++-----------
drivers/net/wireless/rt2500pci.h | 2 +
drivers/net/wireless/rt2500usb.c | 686 +++++++++++++-----------
drivers/net/wireless/rt2500usb.h | 35 +-
drivers/net/wireless/rt2x00.h | 861 +++++++++---------------------
drivers/net/wireless/rt2x00config.c | 177 ++++++
drivers/net/wireless/rt2x00debug.c | 101 +++--
drivers/net/wireless/rt2x00debug.h | 32 +-
drivers/net/wireless/rt2x00dev.c | 470 +++++++++++------
drivers/net/wireless/rt2x00dev.h | 59 --
drivers/net/wireless/rt2x00firmware.c | 45 +-
drivers/net/wireless/rt2x00firmware.h | 43 --
drivers/net/wireless/rt2x00lib.h | 137 +++---
drivers/net/wireless/rt2x00mac.c | 283 +++++-----
drivers/net/wireless/rt2x00pci.c | 140 +++--
drivers/net/wireless/rt2x00pci.h | 38 +-
drivers/net/wireless/rt2x00reg.h | 270 +++++++++
drivers/net/wireless/rt2x00rfkill.c | 41 +-
drivers/net/wireless/rt2x00rfkill.h | 58 --
drivers/net/wireless/rt2x00ring.h | 242 ++++++++
drivers/net/wireless/rt2x00usb.c | 177 ++++---
drivers/net/wireless/rt2x00usb.h | 40 +-
drivers/net/wireless/rt61pci.c | 966 +++++++++++++++++----------------
drivers/net/wireless/rt61pci.h | 3 +-
drivers/net/wireless/rt73usb.c | 870 ++++++++++++++++--------------
drivers/net/wireless/rt73usb.h | 3 +-
29 files changed, 3870 insertions(+), 3229 deletions(-)
create mode 100644 drivers/net/wireless/rt2x00config.c
delete mode 100644 drivers/net/wireless/rt2x00dev.h
delete mode 100644 drivers/net/wireless/rt2x00firmware.h
create mode 100644 drivers/net/wireless/rt2x00reg.h
delete mode 100644 drivers/net/wireless/rt2x00rfkill.h
create mode 100644 drivers/net/wireless/rt2x00ring.h
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2007-07-31 18:36 Ivo van Doorn @ 2007-08-01 17:05 ` Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2007-08-01 17:05 UTC (permalink / raw) To: John W. Linville; +Cc: linux-wireless, rt2400-devel Hi John, Thanks for the quick pull on rt2x00.git, but I have a short question: > Ivo van Doorn (25): > rt2x00: Remove rt73usb_get_tsf > rt2x00: Put rf register value detection in function > rt2x00: Don't toggle tuner bit for non-RF2523 chips > rt2x00: Add reset_tuner handler > rt2x00: rt2500usb needs to reset BBP 24, 25 and 61 > rt2x00: Cleanup RF register reading/writing > rt2x00: Add RF register contents to Debugfs > rt2x00: Fix invalid RF array reading > rt2x00: Increase RF_SIZE > rt2x00: rt2x00pci should use rf_size > rt2x00: Correctly handle RF 0 writing > rt2x00: Rename init_hw -> probe_hw > rt2x00: Move interface init/deinit into rt2x00dev > rt2x00: Fix interface opening/closing on suspend/resume > rt2x00: Lindent > rt2x00: Call all configure handlers during resume > rt2x00: Big rt2x00 cleanup > rt2x00: Add Multicast/Broadcast filtering > rt2x00: Include <linux/delay.h> > rt2x00: Periodically read statistics > rt2x00: Don't check for preamble in RXdone > rt2x00: Configure type during add_interface > rt2x00: Add Signal reporting The above have been merged nicely, but where did the following patch go to? > rt2x00: rt2x00 2.0.5 Was this intentionally dropped, or was there a weird git problem somewhere? Thanks, Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2007-07-25 20:49 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-07-25 20:49 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Today a very quick release of 2.0.4,
reason for this quick followup on 2.0.3 are the fixes
regarding the USB ID and the rt61pci interrupts.
The latter one (hopefully) resolves an bugreport recently
raised in the Fedora Bugzilla. (I'll update the report in a few seconds)
And yes I have read the mails of today regarding patch submissions,
so I'll start sending the individual patches as well along with this pull request. ;)
Short note about the state of rt2x00:
- Code cleaning is progressing, next version will probably contain
the result of Lindent run. But after that I don't expect big changes regarding
code style.
- Writing "Magical" values to the registers has been reduced as much as possible,
most values that are still magical are really magic and I have no clue on what they
exactly mean, except that those values should be written. ;)
- Suspend/resume is completely broken. I am not sure how the device should
correctly suspend/resume. Most important points on this area are
deregistering/registering ieee80211_hw and reassociation after resume.
I am gathering some more info on this, and will post a bigger report on the mailinglist
in a few days.
- Statistics reading. Noise and Signal are still empty...
It would really be nice to have some value to report for these statistics.
- Bug reports show definite progress, rt2x00 doesn't really seem to break things,
but neither is it doing a usefull things...
Ivo
---
The following changes since commit 9cc4f5142dd983d178b158e782d5e60900e48270:
Michael Wu (1):
mac80211: use more GFP_KERNEL instead of GFP_ATOMIC
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ upstream
Adam Baker (1):
rt2x00: Don't export unneeded symbols
Ivo van Doorn (13):
rt2x00: Check permissions on debugfs write
Merge branch 'wireless-dev'
rt2x00: Use rts_cts_rate for CTS frames
rt2x00: Cleanup allocation/initialization
rt2x00: rt61pci interrupts are called on MCU CMD done
rt2x00: Reduce requirement for debugfs wrapper functions
rt2x00: Don't toggle promisc mode in link_tuner
rt2x00: Fix MAC address initialization for multiple interfaces
Merge branch 'wireless-dev'
rt2x00: Check for all errors on RXdone
rt2x00: Parse chipset revision for RT chip validation
rt2x00: Release 2.0.4
Merge branch 'wireless-dev'
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 83 +--
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 2 +-
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 90 +---
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 2 +-
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 105 ++---
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 4 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 17 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c | 237 +++------
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 27 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 560 ++++++++++----------
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.h | 1 -
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 57 ++-
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 58 ++-
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 126 +++--
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.h | 1 -
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 99 ++---
drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 2 +-
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 100 ++---
drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 2 +-
19 files changed, 731 insertions(+), 842 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-07-20 8:11 Ivo van Doorn
2007-07-20 8:13 ` Ivo van Doorn
0 siblings, 1 reply; 73+ messages in thread
From: Ivo van Doorn @ 2007-07-20 8:11 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Finally the 2.0.3 release of rt2x00 is here :)
And as promised since actually contains bugfixes
The hightlights are a working link tuner which finally
makes sure all drivers come close to being actually
useable.
Also a small change in statistics, rt2x00 will now only report the RSSI to mac80211.
The reporting of Noise values have been removed,
since rt2x00 cannot measure the noise and previously
reported the sensitivity value determined by the link_tuner.
And I am not completely sure if that is a desired behavior, since the preference
would be a measured value I guess.
Also I still have to determine what a good value for the Signal reporting
should be. With only a RSSI reporting I feel rt2x00 isn't reporting all that it can...
Ivo
---
The following changes since commit a7008e4ecc4ec69a9868105ce7f805a6ab486d69:
Johannes Berg (1):
mac80211: regdomain.c needs to include ieee80211_i.h
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ master
Adam Baker (1):
rt2x00: Set Maximum sensitivity when not receiving
Ivo van Doorn (42):
rt2x00: Remove usage of open and stop callbacks
rt2x00: Fix rfkill compilation
rt2x00: rfkill should use input_poll device
rt2x00: Fix promisc mode check
rt2x00: Put debugfs_intf inbetween DEBUGFS defines
rt2x00: Cleanup debug messages
rt2x00: Remove ENTRY_TXD_NEW_SEQ flag
rt2x00: Remove DRV_NAME define from rt2x00.h
rt2x00: Remove device & mac_addr fields
rt2x00: Use the mac80211 provided workqueue
rt2x00: Don't wake device on resume
rt2x00: Move interrupt toggling into seperate function
rt2x00: Round LINK_TUNER_INTERVAL up
rt2x00: Set the IEEE80211_HW_NO_PROBE_FILTERING flag
rt2x00: Add rt2570 chipset revisions
rt2x00: Split TXD_ENTRY_AVAILABLE
rt2x00: rt61 should check the CIPHER_ERROR bit
rt2x00: Fix reporting false rate during rx
rt2x00: Correctly exit the firmware load function
rt2x00: Fix link tuner limitation for rt2400pci
rt2x00: Cleanup Kconfig dependencies and selects
rt2x00: Defer firmware loading untill ifup
rt2x00: Change register definition ordering
rt2x00: Correctly initialize PSCSR2 in rt2400.
rt2x00: Introduce the walking average
rt2x00: Remove noise reporting
rt2x00: Fix RSSI value reading / reporting / link tuning
rt2x00: Use prefetch for ring loop
rt2x00: Use the register field defines
rt2x00: Move initialization of rings into rt2x00usb
rt2x00: Move usb_interrupt_rxdone into rt2x00usb
rt2x00: Fix RX skb allocation
rt2x00: KConfig layout correction
rt2x00: Set DEVICE_ENABLED_RADIO_HW when rfkill is disabled
rt2x00: Change word argument for debug_access_t
rt2x00: Suspend/Resume Don't register/reregister device
Merge branch 'wireless-dev'
rt2x00: Fix CTS frame requirement detection
rt2x00: Don't cut FCS in RX frames
rt2x00: Use delayed_work_pending
rt2x00: Don't enable/disable link tuner twice
rt2x00: Release 2.0.3
drivers/net/wireless/mac80211/rt2x00/Kconfig | 91 ++++----
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 167 ++++++-------
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 45 ++--
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 191 +++++++-------
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 54 +++--
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 176 ++++---------
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 61 +++--
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 141 +++++++----
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 2 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 86 +------
.../net/wireless/mac80211/rt2x00/rt2x00firmware.c | 77 ++----
.../net/wireless/mac80211/rt2x00/rt2x00firmware.h | 6 -
drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 7 -
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 131 ++++------
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 52 ++++-
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.h | 16 +-
.../net/wireless/mac80211/rt2x00/rt2x00rfkill.c | 62 +++--
.../net/wireless/mac80211/rt2x00/rt2x00rfkill.h | 7 +
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 156 +++++++++---
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 264 +++++++++++++-------
drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 77 ++++--
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 242 ++++++++++---------
drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 81 ++++---
23 files changed, 1166 insertions(+), 1026 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Re: Please pull 'upstream' branch of rt2x00 2007-07-20 8:11 Ivo van Doorn @ 2007-07-20 8:13 ` Ivo van Doorn 0 siblings, 0 replies; 73+ messages in thread From: Ivo van Doorn @ 2007-07-20 8:13 UTC (permalink / raw) To: John Linville; +Cc: linux-wireless, rt2400-devel Hi, One additional note I forgot to mention: > The following changes since commit a7008e4ecc4ec69a9868105ce7f805a6ab486d69: > Johannes Berg (1): > mac80211: regdomain.c needs to include ieee80211_i.h > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git/ master Please note the new location of the Git repository ;) Because of problems with the git.serialmonkey repository we have now moved to git.kernel.org. :) Ivo ^ permalink raw reply [flat|nested] 73+ messages in thread
* Please pull 'upstream' branch of rt2x00
@ 2007-06-19 18:18 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-06-19 18:18 UTC (permalink / raw)
To: John Linville, linux-wireless, rt2400-devel
Hi John,
Here is the 2.0.2 release of rt2x00.
As usual most changes are code cleaning,
followed by code moving into the library modules.
Unfortunately, this round still does not contain real bugfixes.
Hopefully the next release will really bugfixes. ;)
The actuall diff is quite big, but that is mainly because
of the cleanup in the register access functions which caused
all register functions to be renamed (which prevents namespace
pollution).
Ivo
---
The following changes since commit 9181e959da76d85d688d8ec763702ed2f3b4edf9:
John W. Linville (1):
rt2x00firmware.c: include delay.h to avoid build error on ppc64
are available in the git repository at:
git://git.serialmonkey.com/rt2x00.git/ upstream
Gertjan van Wingerde (1):
rt2x00: Clean up register access functions.
Ivo van Doorn (32):
rt2x00: Remove debug module parameter
rt2x00: Cleanup header
rt2x00: *_bbp_check should not return magic value
rt2x00: rt2400pci - Use BBPCSR for txdesc
rt2x00: Make antenna selection more transparent
rt2x00: Don't hardcode beacon interval
rt2x00: Move config requirement into rt2x00lib
rt2x00: Remove pointless 0xff checks
rt2x00: Correct *_bbp_check
rt2x00: Correctly set the flags for the correct flags field
rt2x00: Remove unsused structure
rt2x00: Don't export config functions to outside rt2x00lib
Merge branch 'wireless-dev'
rt2x00: Constify txd_size and rxd_size
rt2x00: rt2x00lib_disable_radio should call toggle_rx
rt2x00: Move USB radio enabling/disabling into rt2x00usb
rt2x00: Remove ring->type
rt2x00: Split rings into tx and rx arrays
rt2x00: Split tx ring array into tx and bcn
rt2x00: Move rt2x00{pci,usb} shared code into rt2x00lib
rt2x00: Move ring allocation into rt2x00lib
Merge branch 'wireless-dev'
rt2x00: Fix ring array iteration
rt2x00: Remove huge macro functions
rt2x00: Include rt2x00firmware.h
rt2x00: Move ring allocation partially into rt2x00lib
rt2x00: Remove unused library call fields
rt2x00: rt61 and rt73 do not support Atim
rt2x00: link_tuner should be toggled when the radio is toggled
rt2x00: Add EEPROM recovery code for mac address
Merge branch 'wireless-dev'
rt2x00: Release rt2x00 2.0.2
Mattias Nissler (1):
rt73: Prevent oops when usb device is disconnected.
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 627 ++++++---------
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 28 +-
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 673 +++++++---------
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 34 +-
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 660 ++++++---------
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 38 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 120 ++--
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 540 ++++++++++---
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.h | 60 ++
.../net/wireless/mac80211/rt2x00/rt2x00firmware.c | 7 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 13 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 52 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 283 +------
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.h | 29 +
.../net/wireless/mac80211/rt2x00/rt2x00rfkill.c | 4 -
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 323 +++-----
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.h | 14 +-
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 858 +++++++++-----------
drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 43 +-
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 758 +++++++----------
drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 43 +-
21 files changed, 2363 insertions(+), 2844 deletions(-)
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00dev.h
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-06-03 12:25 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-06-03 12:25 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the new rt2x00 release: 2.0.1
It contains many patches since the previous release.
It doesn't address any major bugs that have been
reported, but the code has been cleaned up.
The most notable change is the addition of rfkill support. :)
Ivo
---
The following changes since commit 2e6c9eed7541f3e2a23a469f08e5be3ec28a129f:
James Ketrenos (1):
Add iwlwifi wireless drivers
are available in the git repository at:
git://git.serialmonkey.com/rt2x00.git/ upstream
Gertjan van Wingerde (8):
rt2x00: Move rxd_size and txd_size fields.
rt2x00: Update firmware loading interface.
rt2x00: Initialisation cleanup.
Move firmware loading code out of main rt2x00lib source file.
Fix debug support.
Let lowlevel driver decide on firmware names.
rt2x00: Provide cleaner firmware loading interface to lowlevel driver.
rt2x00: Deregister debugs at firmware loading failure.
Ivo van Doorn (34):
rt2x00: Add rfkill support
rt2x00: Use MODULE_FIRMWARE
rt2x00: cosmetic - rename CONFIG_RT2X00_DEBUGFS
rt2x00: Move crc-itu-t usage into rt2x00lib
rt2x00: Remove channel_change_time usage
rt2x00: Apply the 80 character line rule
rt2x00: Prevent forward declaration of functions
rt2x00: When toggling RX the link tuner should also be toggled
rt2x00: Move generic link_tuner code into rt2x00lib
rt2x00: Make rt2400 link tuner work like legacy driver
rt2x00: Remove activity_led
rt2x00: Make sure link tuning follows Legacy guidelines
rt2x00: Use correct values for r24, r25 and r26
rt2x00: Add EEPROM recovery data
rt2x00: Correctly initialize rt73usb PHY_CSR1
rt2x00: Use defines for chipset assignments
rt2x00: Merge kick_beacon_gen and kick_tx_queue
rt2x00: Merge radio control functions into 1 callback function
rt2x00: Make promisc mode available to USB devices
rt2x00: Make use of open / stop handlers
rt2x00: Cleanup flag handling
rt2x00: Use linux/bitops.h
rt2x00: Add FIELD8 and matching handlers
rt2x00: Move drv_name field into rt2x00_ops
rt2x00: rt2x00lib is in charge of forcing promisc mode
rt2x00: Make debug messages more informative
rt2x00: Fix rt61 typo
rt2x00: Move CONFIG_RT2X00_LIB_DEBUGFS ifdef out of rt2x00dev.c
rt2x00: Reduce indentation for txpower handlers
rt2x00: Define ARCSR2, ARCSR3, ARCSR4 and ARCSR5 registers
rt2x00: Fix compilation errors for rt2x00-rfkill
Merge branch 'wireless-dev'
rt2x00: Merge LENGTH_LOW and LENGTH_HIGH
rt2x00: Release rt2x00 2.0.1
drivers/net/wireless/mac80211/rt2x00/Kconfig | 33 +-
drivers/net/wireless/mac80211/rt2x00/Makefile | 10 +-
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 401 +++++++------
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 65 ++-
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 486 +++++++++-------
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 61 ++-
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 542 +++++++++++-------
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 29 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 407 +++++++------
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c | 39 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 22 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 264 ++++-----
.../net/wireless/mac80211/rt2x00/rt2x00firmware.c | 129 +++++
.../net/wireless/mac80211/rt2x00/rt2x00firmware.h | 49 ++
drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 15 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 179 +++---
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 98 ++--
.../net/wireless/mac80211/rt2x00/rt2x00rfkill.c | 133 +++++
.../net/wireless/mac80211/rt2x00/rt2x00rfkill.h | 51 ++
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 76 ++--
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 601 ++++++++++++--------
drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 33 +-
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 589 +++++++++++--------
drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 33 +-
24 files changed, 2589 insertions(+), 1756 deletions(-)
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00firmware.c
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00firmware.h
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00rfkill.c
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00rfkill.h
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-05-07 14:44 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-05-07 14:44 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, rt2400-devel
Hi John,
Here is the latest rt2x00 update. It is a rather small one.
Only 1 real fix, and the second path is cosmetic since it
will start a proper versioning of rt2x00.
This will most likely be the last pull request for the next 1 or 2 months
due to developer/time/health shortage.
The TODO list for rt2x00 has been expanding over the last few days,
so as soon as I am fully back there will be quite a lot to do. ;)
(http://rt2x00.serialmonkey.com/wiki/index.php?title=Rt2x00_beta#rt2x00_beta_status_page)
Ivo
---
The following changes since commit 5209b1eff0b1891d8bb002eb067a11b4caa5f5bc:
John W. Linville (1):
Merge branch 'from-linus'
are found in the git repository at:
http://git.serialmonkey.com/rt2x00.git/ upstream
Ivo van Doorn (2):
rt2x00: release 2.0.0
Merge branch 'wireless-dev'
Jan Kiszka (1):
rt2x00: Fix master beacon setup
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 8 +++-----
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 8 +++-----
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 8 +++-----
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 3 +--
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 17 -----------------
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 14 +++++++++++++-
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 17 -----------------
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 19 +------------------
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 8 +++-----
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 8 +++-----
10 files changed, 30 insertions(+), 80 deletions(-)
^ permalink raw reply [flat|nested] 73+ messages in thread* Please pull 'upstream' branch of rt2x00
@ 2007-04-28 20:45 Ivo van Doorn
0 siblings, 0 replies; 73+ messages in thread
From: Ivo van Doorn @ 2007-04-28 20:45 UTC (permalink / raw)
To: John Linville, linux-wireless
Hi John,
A new update of rt2x00 is ready. :)
Perhaps the most interesting thing would be the removal
of passive scan support, because it was a purely software based
solution that (if really required) could best be resolved in mac80211
rather then the driver for devices that don't support such a thing in the
hardware.
The rest is just code being moved around, (more specifically code being moved
from the drivers toward rt2x00lib/pci/usb. There aren't any specific bugfixes made.
Ivo
---
The following changes since commit 9e4fd17309d0acddd1748c76f6bd35a0c85446b6:
Johannes Berg (1):
clarify locking comment in cfg80211
are found in the git repository at:
http://git.serialmonkey.com/rt2x00.git/ upstream
Ivo van Doorn (38):
rt2x00: Move beaconhandling into rt2x00{usb,pci} modules
rt2x00: Fix rt2x00pci, rt2x00usb, rt2x00mac module/debug enviroment
rt2x00: Move common rxdone and txdone code into rt2x00lib
rt2x00: Set rf_base during channel configuration
rt2x00: Move initialize() and uninitialize() into rt2x00pci/rt2x00usb
rt2x00: Fix spellin error
rt2x00: Move ieee80211_hw init & registration into rt2x00lib
rt2x00: Fix hardware mode registration order
rt2x00: Add struct debugsfs pointer to rt2x00dev
rt2x00: Fix debugfs related compile problem
rt2x00: Explicit return type for rt2x00debug_register
rt2x00: Fix sparse errors
rt2x00: Move alloc_rings into rt2x00lib
rt2x00: Move device allocation into rt2x00lib
rt2x00: Make rt2x00debug const
rt2x00: Minor fixes (comment & headers)
rt2x00: Create rt2x00_ops structure
rt2x00: rt2x00pci shouldn't use DRV_NAME for irq registration
rt2x00: Rename rt(25)73 identifications
rt2x00: Move PCI/USB handlers into rt2x00pci/usb modules
rt2x00: Fix hw mode registration
rt2x00: Fix NULL pointer exeption during init_hw
rt2x00: Fix sparse warnings
rt2x00: Fix ERROR strings
rt2x00: Move rf values outside functions
rt2x00: Allocate enough rings
rt2x00: Move write_tx_data functions into rt2x00pci/usb
rt2x00: Fix compilation error when not selecting rt61pci and rt73usb
rt2x00: Add return statement to rt2x00lib_alloc_dev
rt2x00: Create dummy rt2x00lib_firmware_load_wait()
rt2x00: Move write_tx_desc initialization into rt2x00lib
rt2x00: Remove ENTRY_RTS_CTS_FRAME flag
rt2x00: Fix check for Acked frames
Merge branch 'wireless-dev'
rt2x00: Remove passive scanning support
rt2x00: Set channel_change_time to 0
rt2x00: Move USB txdone handler into rt2x00usb
rt2x00: rt61 should call ieee80211_wake_queue only for correct queues
drivers/net/wireless/mac80211/rt2x00/Makefile | 2 +
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 1303 +++------------
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 9 +-
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 1496 ++++--------------
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 7 -
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 1448 +++--------------
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 2 -
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 165 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c | 27 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 7 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 689 +++++++-
drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 70 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 166 +--
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 587 +++++++
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.h | 50 +-
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 637 +++++++
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.h | 44 +-
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 1731 ++++---------------
drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 7 -
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 1597 ++++---------------
drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 4 +-
21 files changed, 3553 insertions(+), 6495 deletions(-)
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c
create mode 100644 drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c
^ permalink raw reply [flat|nested] 73+ messages in threadend of thread, other threads:[~2008-12-20 10:01 UTC | newest]
Thread overview: 73+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-03 14:41 Please pull 'upstream' branch of rt2x00 Ivo van Doorn
2008-02-03 14:42 ` [PATCH 01/19] rt2x00: Update copyright notice Ivo van Doorn
2008-02-03 14:45 ` [PATCH 02/19] rt2x00: Queue handling overhaul Ivo van Doorn
2008-02-03 14:46 ` [PATCH 03/19] rt2x00: don't write past the end when writing short descriptors on rt61 Ivo van Doorn
2008-02-03 14:47 ` [PATCH 04/19] rt2x00: Add new USB ID to rt2500usb Ivo van Doorn
2008-02-03 14:47 ` [PATCH 05/19] rt2x00: Fix tx parameter initialization Ivo van Doorn
2008-02-03 14:48 ` [PATCH 06/19] rt2x00: Enable master and adhoc mode again Ivo van Doorn
2008-02-03 14:48 ` [PATCH 07/19] rt2x00: Driver requiring firmware should select crc algo Ivo van Doorn
2008-02-03 14:49 ` [PATCH 08/19] rt2x00: Add per-interface structure Ivo van Doorn
2008-02-03 14:50 ` [PATCH 09/19] rt2x00: Rate structure overhaul Ivo van Doorn
2008-02-03 14:51 ` [PATCH 10/19] rt2x00: Remove HWMODE_{A,B,G} Ivo van Doorn
2008-02-03 14:51 ` [PATCH 11/19] rt2x00: Remove TX_MGMT queue usage Ivo van Doorn
2008-02-03 14:52 ` [PATCH 12/19] rt2x00: Initialize QID from queue->qid Ivo van Doorn
2008-02-03 14:52 ` [PATCH 13/19] rt2x00: Use ieee80211_channel_to_frequency() Ivo van Doorn
2008-02-03 14:53 ` [PATCH 14/19] rt2x00: Make use of MAC80211_LED_TRIGGERS Ivo van Doorn
2008-02-03 14:54 ` [PATCH 15/19] rt2x00: Enable LED class support for rt2500usb/rt73usb Ivo van Doorn
2008-02-03 14:54 ` [PATCH 16/19] rt2x00: Fix rate initialization Ivo van Doorn
2008-02-03 14:54 ` [PATCH 17/19] rt2x00: Move beacon and atim queue defines into rt2x00 Ivo van Doorn
2008-02-03 14:55 ` [PATCH 18/19] rt2x00: Fix queue index handling Ivo van Doorn
2008-02-03 14:56 ` [PATCH 19/19] rt2x00: Release rt2x00 2.1.0 Ivo van Doorn
-- strict thread matches above, loose matches on Subject: below --
2008-12-20 9:52 Please pull 'upstream' branch of rt2x00 Ivo van Doorn
2008-12-02 17:19 Ivo van Doorn
2008-10-29 16:16 Ivo van Doorn
2008-08-29 19:03 Ivo van Doorn
2008-08-04 14:36 Ivo van Doorn
2008-07-19 14:15 Ivo van Doorn
2008-07-18 18:43 Ivo van Doorn
2008-07-19 13:55 ` Ivo van Doorn
2008-06-16 17:58 Ivo van Doorn
2008-06-08 21:41 Ivo van Doorn
2008-05-10 11:37 Ivo van Doorn
2008-05-10 12:48 ` drago01
2008-05-10 13:06 ` Ivo van Doorn
2008-05-10 13:15 ` drago01
2008-05-05 15:23 Ivo van Doorn
2008-05-02 21:04 Scott White
2008-05-02 21:25 ` Ivo van Doorn
2008-05-03 6:19 ` Mattias Nissler
2008-05-03 9:58 ` Ivo van Doorn
2008-05-03 10:18 ` Mattias Nissler
2008-05-03 15:02 ` Ivo van Doorn
2008-05-03 15:27 ` Johannes Berg
2008-05-03 15:38 ` Mattias Nissler
2008-05-03 16:56 ` Ivo van Doorn
2008-05-03 19:29 ` Scott White
2008-05-05 17:31 ` John W. Linville
2008-04-21 17:06 Ivo van Doorn
2008-05-01 8:29 ` Ivo van Doorn
2008-03-09 21:37 Ivo van Doorn
2008-02-25 22:20 Ivo van Doorn
2008-02-17 16:30 Ivo van Doorn
2008-02-10 21:46 Ivo van Doorn
2008-01-06 22:37 Ivo van Doorn
2007-11-27 20:46 Ivo van Doorn
2007-11-27 20:54 ` Ivo van Doorn
2007-11-29 22:26 ` John W. Linville
2007-11-30 9:51 ` Ivo van Doorn
2007-10-27 11:34 Ivo van Doorn
2007-10-13 14:27 Ivo van Doorn
2007-10-06 12:19 Ivo van Doorn
2007-09-25 18:52 Ivo van Doorn
2007-09-16 12:17 Ivo van Doorn
2007-08-19 18:18 Ivo van Doorn
2007-08-02 15:45 Ivo van Doorn
2007-07-31 18:36 Ivo van Doorn
2007-08-01 17:05 ` Ivo van Doorn
2007-07-25 20:49 Ivo van Doorn
2007-07-20 8:11 Ivo van Doorn
2007-07-20 8:13 ` Ivo van Doorn
2007-06-19 18:18 Ivo van Doorn
2007-06-03 12:25 Ivo van Doorn
2007-05-07 14:44 Ivo van Doorn
2007-04-28 20:45 Ivo van Doorn
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).