r86 - in tags: . rt2400-1.2.2+cvs20070911-1/debian rt2400-1.2.2+cvs20070911-1/debian/patches rt2500-1.1.0-b4+cvs20070924-2/debian rt2570-1.1.0+cvs20070927-1/debian rt2570-1.1.0+cvs20070927-1/debian/patches rt2x00-2.0.12+git20071103/debian rt2x00-2.0.12+git20071103/debian/patches

benh at alioth.debian.org benh at alioth.debian.org
Mon Nov 12 00:30:16 UTC 2007


Author: benh
Date: 2007-11-12 00:30:15 +0000 (Mon, 12 Nov 2007)
New Revision: 86

Added:
   tags/rt2400-1.2.2+cvs20070911-1/
   tags/rt2400-1.2.2+cvs20070911-1/debian/changelog
   tags/rt2400-1.2.2+cvs20070911-1/debian/control
   tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/004_fix_mlme_queue_locking.diff
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series
   tags/rt2400-1.2.2+cvs20070911-1/debian/rules
   tags/rt2500-1.1.0-b4+cvs20070924-2/
   tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog
   tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control
   tags/rt2570-1.1.0+cvs20070927-1/
   tags/rt2570-1.1.0+cvs20070927-1/debian/changelog
   tags/rt2570-1.1.0+cvs20070927-1/debian/control
   tags/rt2570-1.1.0+cvs20070927-1/debian/patches/004_fix_mlme_queue_locking.diff
   tags/rt2570-1.1.0+cvs20070927-1/debian/patches/005_fix_delays.diff
   tags/rt2570-1.1.0+cvs20070927-1/debian/patches/006_fix_probe_148f_2573.diff
   tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series
   tags/rt2x00-2.0.12+git20071103/
   tags/rt2x00-2.0.12+git20071103/debian/changelog
   tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/series
Removed:
   tags/rt2400-1.2.2+cvs20070911-1/debian/RaConfig2400.1
   tags/rt2400-1.2.2+cvs20070911-1/debian/RaConfig2400.xpm
   tags/rt2400-1.2.2+cvs20070911-1/debian/changelog
   tags/rt2400-1.2.2+cvs20070911-1/debian/control
   tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/002_linux-headers.diff
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/2.6.22.diff
   tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series
   tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.dirs
   tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.docs
   tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.manpages
   tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.menu
   tags/rt2400-1.2.2+cvs20070911-1/debian/rules
   tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog
   tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control
   tags/rt2570-1.1.0+cvs20070927-1/debian/changelog
   tags/rt2570-1.1.0+cvs20070927-1/debian/control
   tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series
   tags/rt2x00-2.0.12+git20071103/debian/changelog
   tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/005_fix_probe_148f_2573.diff
   tags/rt2x00-2.0.12+git20071103/debian/patches/series
Log:
Tagged versions about to be uploaded.


Copied: tags/rt2400-1.2.2+cvs20070911-1 (from rev 81, unstable/rt2400)

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/RaConfig2400.1
===================================================================
--- unstable/rt2400/debian/RaConfig2400.1	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/RaConfig2400.1	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,35 +0,0 @@
-.\"                                      Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH RACONFIG2400 1 "May 17, 2005"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh        disable hyphenation
-.\" .hy        enable hyphenation
-.\" .ad l      left justify
-.\" .ad b      justify to both left and right margins
-.\" .nf        disable filling
-.\" .fi        enable filling
-.\" .br        insert line break
-.\" .sp <n>    insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-RaConfig2400 \- A configuration tool for wireless RT2400 network cards
-.SH SYNOPSIS
-.B RaConfig2400 
-.SH DESCRIPTION
-.B RaConfig2400
-is a simple X11 utility to configure your RT2400 wireless
-network card. It must be used with the corresponding RT2400 driver.
-.SH OPTIONS
-This software does not have any options.
-.SH SEE ALSO
-iwconfig(8).
-.SH AUTHOR
-.B RaConfig2400 
-was written by Ralink Tech Inc.
-.br
-This manual page was written by Aurelien Jarno <aurel32 at debian.org>,
-for the Debian GNU/Linux system (but may be used by others).

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/RaConfig2400.xpm
===================================================================
--- unstable/rt2400/debian/RaConfig2400.xpm	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/RaConfig2400.xpm	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,43 +0,0 @@
-/* XPM */
-static char *pixmap[] = {
-/* width height ncols cpp */
-"32 32 5 2",
-  /* Colors */
-  "00 c #000000",
-  "01 c #000080",
-  "02 c #FF0000",
-  "03 c #00FFFF",
-  ".. s None c None",
-  "................................................................",
-  "............................030303030303030303..................",
-  "........................03030303030303030303030303..............",
-  "........................0303030303030303030303030303............",
-  "..............................................03030303..........",
-  "................................................030303..........",
-  "................................................030303..........",
-  "................................0303030303030303030303..........",
-  "............................03030303030303030303030303..........",
-  "........................030303030303030303030303030303..........",
-  "..01010101010101010101010303030301..............030303..........",
-  "......010101010101....0303030301010101..........030303..........",
-  "........0101010101....030303..0101010101......03030303..........",
-  "........0101010101....03030303..0101010101030303030303..........",
-  "........0101010101......03030303010101010103030303030303........",
-  "........0101010101........03030301010101010303..03030303030303..",
-  "........0101010101............030101010101......................",
-  "........0101010101..............01010101........................",
-  "........0101010101............0101010101........................",
-  "........0101010101..........01010101..............02............",
-  "........010101010101010101010101..................0202..........",
-  "........0101010101..010101010101..................0202..........",
-  "........0101010101....010101010101................0202..........",
-  "........0101010101......010101010101..............0202..........",
-  "........0101010101........010101010101....0202020202020202020202",
-  "........0101010101..........0101010101010202020202020202020202..",
-  "........0101010101............010101010101........0202..........",
-  "........0101010101..............010101010101......0202..........",
-  "........0101010101................010101010101....0202..........",
-  "......01010101010101................010101010101..0202..........",
-  "..0101010101010101010101............010101010101010102..........",
-  "................................................................",
-};

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/changelog
===================================================================
--- unstable/rt2400/debian/changelog	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,198 +0,0 @@
-rt2400 (1.2.2+cvs20070219-3) unstable; urgency=low
-
-  * Workaround linux-libc-dev bug by including linux/if.h before
-    linux/wireless.h  (closes: bug#428996).
-  * patches/2.6.22.diff: fix the build of the module with 2.6.22+ kernels
-    (closes: bug#432532).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 15 Jul 2007 19:12:43 +0200
-
-rt2400 (1.2.2+cvs20070219-2) unstable; urgency=low
-
-  * Switch maintainer to "Debian Ralink packages maintainers".
-  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
-  * Use quilt for patch management.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon,  5 Mar 2007 23:34:53 +0100
-
-rt2400 (1.2.2+cvs20070219-1) unstable; urgency=low
-
-   * Switch Maintainer and Uploader.
-   * New CVS snaphost.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 20 Feb 2007 00:51:27 +0100
-
-rt2400 (1.2.2+cvs20061231-2) unstable; urgency=low
-
-  * Use bzip2 instead of gzip to compress the sources.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 20:53:59 +0100
-
-rt2400 (1.2.2+cvs20061231-1) unstable; urgency=low
-
-  * New CVS version.
-    - Fix SSID handling with kernels >= 2.6.19 (closes: bug#405009).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:29:13 +0100
-
-rt2400 (1.2.2+cvs20061210-1) unstable; urgency=low
-
-  * New CVS version. 
-    - Fix build with kernels >= 2.6.19 (closes: bug#401209).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 10 Dec 2006 15:05:08 +0100
-
-rt2400 (1.2.2+cvs20060620-4) unstable; urgency=low
-
-  * debian/rules: fix a bashims (closes: bug#385205). 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed, 30 Aug 2006 14:49:18 +0200
-
-rt2400 (1.2.2+cvs20060620-3) unstable; urgency=low
-
-  * Fixed a typo in the description. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:23:05 +0200
-
-rt2400 (1.2.2+cvs20060620-2) unstable; urgency=low
-
-  * Fix build with kernels >= 2.6.17 (closes: bug#379085).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Fri, 21 Jul 2006 12:10:52 +0200
-
-rt2400 (1.2.2+cvs20060620-1) unstable; urgency=low
-
-  * New CVS version.
-  * Bumped Standards-Version to 3.7.2 (no changes).
-  * rt2400: stop recommending rt2400-module (closes: bug#376904).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 11 Jul 2006 10:39:56 +0200
-
-rt2400 (1.2.2+cvs20060417-4) unstable; urgency=low
-
-  * Rename rt2400-_KVERS_ into rt2400-modules-_KVERS_.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sat, 22 Apr 2006 20:17:52 +0200
-
-rt2400 (1.2.2+cvs20060417-3) unstable; urgency=low
-
-  * Added Ben Hutchings <ben at decadentplace.org.uk> to the Uploaders: field.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 16:22:32 +0200
-
-rt2400 (1.2.2+cvs20060417-2) unstable; urgency=low
-
-  * Fix a typo in README.Debian. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 03:31:20 +0200
-
-rt2400 (1.2.2+cvs20060417-1) unstable; urgency=low
-
-  * New CVS version.
-  * Put a link to /usr/share/doc/rt2400-source/README.Debian into the
-    root of rt2400.tar.gz, as users are unable to look in /usr/share/doc/
-    by themselves.
-  * Add a menu item for RaConfig2400.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 17 Apr 2006 16:20:47 +0200
-
-rt2400 (1.2.2+cvs20051217-2) unstable; urgency=low
-
-  * I have received reports that the rt2400 driver is also working with an 
-    SMP kernel, so disable the error message when compiling on such a kernel.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 19 Dec 2005 21:36:39 +0100
-
-rt2400 (1.2.2+cvs20051217-1) unstable; urgency=low
-
-  * New CVS version.
-  * Only suggests gcc-3.3 and fails if it is not installed when building
-    the module against a 2.4 kernel.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 18 Dec 2005 00:12:48 +0100
-
-rt2400 (1.2.2+cvs20050730-6) unstable; urgency=low
-
-  * Really upload to unstable. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed,  2 Nov 2005 11:19:34 +0100
-
-rt2400 (1.2.2+cvs20050730-5) experimental; urgency=low
-
-  * Upload to unstable. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Nov 2005 16:13:56 +0100
-
-rt2400 (1.2.2+cvs20050730-4) experimental; urgency=low
-
-  * Upload to experimental as unstable is semi-frozen. 
-  * Refuse to build the module on an SMP kernel.
-  * Only recommends linux-image-2.6.xx.
-  * Clarified the description of rt2400.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 31 Oct 2005 20:17:52 +0100
-
-rt2400 (1.2.2+cvs20050730-3) unstable; urgency=low
- 
-  * It's seems RT2400STA.dat is only used by the configuration tool.
-    Move this file in this package, and delete the rt2400-base package
-    (closes: bug#325897)
-  * Changed the name of the interface directly in the sources to be
-    able to get rid of rt2400-base.
-  * Added a README.Debian in the module package to explain how to
-    change the name of the interface.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Fri, 16 Sep 2005 11:14:31 +0200
-
-rt2400 (1.2.2+cvs20050730-2) unstable; urgency=low
-
-  * C++ transition: build-depends on libqt3-mt-dev (>= 3.3.4-4)
-    (closes: bug#320507). 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Fri, 12 Aug 2005 00:03:00 +0200
-
-rt2400 (1.2.2+cvs20050730-1) unstable; urgency=low
-
-  * New CVS version corresponding to 1.2.2-b3.
-  * Fixed a bug in debian rules that was making the module unbuildable.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Fri,  5 Aug 2005 19:21:16 +0200
-
-rt2400 (1.2.2+cvs20050710-2) unstable; urgency=low
-
-  * Make the modules also depending on the kernel images which are using
-    the new kernel naming scheme.
-  * Only build modules with gcc-3.3 with 2.4 kernels.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon,  1 Aug 2005 01:57:33 +0200
-
-rt2400 (1.2.2+cvs20050710-1) unstable; urgency=low
-
-  * Upload from Debconf 5.
-  * New CVS version.
-  * Build modules ith gcc-3.3.
-  * Bumped Standards-Version to 3.6.2 (no changes).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 11 Jul 2005 10:44:27 +0300
-
-rt2400 (1.2.2+cvs20050618-1) unstable; urgency=low
-
-  * New CVS version. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sat, 18 Jun 2005 20:33:19 +0200
-
-rt2400 (1.2.2+cvs20050530-2) unstable; urgency=low
-
-  * Don't try to include README in the module package (closes: bug#312001). 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sat,  4 Jun 2005 20:41:45 +0200
-
-rt2400 (1.2.2+cvs20050530-1) unstable; urgency=low
-
-  * Initial Release (closes: bug#285757).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 31 May 2005 07:23:11 +0200
-
-Local variables:
-mode: debian-changelog
-End:

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/changelog (from rev 84, unstable/rt2400/debian/changelog)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/changelog	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,205 @@
+rt2400 (1.2.2+cvs20070911-1) unstable; urgency=low
+
+  * New CVS snapshot
+    - Removes RaConfig2400 utility and rt2400 binary package
+  * Added suggestion of rutilt package as a replacement for rt2400
+  * Fixed some race conditions in processing of queued work, with help
+    from Bryan Batten (004_fix_mlme_queue_locking.diff)
+  * Added dependency of rt2400-source on bzip2 (closes: bug#448715)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 11 Nov 2007 23:57:45 +0000
+
+rt2400 (1.2.2+cvs20070219-3) unstable; urgency=low
+
+  * Workaround linux-libc-dev bug by including linux/if.h before
+    linux/wireless.h  (closes: bug#428996).
+  * patches/2.6.22.diff: fix the build of the module with 2.6.22+ kernels
+    (closes: bug#432532).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 15 Jul 2007 19:12:43 +0200
+
+rt2400 (1.2.2+cvs20070219-2) unstable; urgency=low
+
+  * Switch maintainer to "Debian Ralink packages maintainers".
+  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
+  * Use quilt for patch management.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon,  5 Mar 2007 23:34:53 +0100
+
+rt2400 (1.2.2+cvs20070219-1) unstable; urgency=low
+
+   * Switch Maintainer and Uploader.
+   * New CVS snaphost.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 20 Feb 2007 00:51:27 +0100
+
+rt2400 (1.2.2+cvs20061231-2) unstable; urgency=low
+
+  * Use bzip2 instead of gzip to compress the sources.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 20:53:59 +0100
+
+rt2400 (1.2.2+cvs20061231-1) unstable; urgency=low
+
+  * New CVS version.
+    - Fix SSID handling with kernels >= 2.6.19 (closes: bug#405009).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:29:13 +0100
+
+rt2400 (1.2.2+cvs20061210-1) unstable; urgency=low
+
+  * New CVS version. 
+    - Fix build with kernels >= 2.6.19 (closes: bug#401209).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 10 Dec 2006 15:05:08 +0100
+
+rt2400 (1.2.2+cvs20060620-4) unstable; urgency=low
+
+  * debian/rules: fix a bashims (closes: bug#385205). 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed, 30 Aug 2006 14:49:18 +0200
+
+rt2400 (1.2.2+cvs20060620-3) unstable; urgency=low
+
+  * Fixed a typo in the description. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:23:05 +0200
+
+rt2400 (1.2.2+cvs20060620-2) unstable; urgency=low
+
+  * Fix build with kernels >= 2.6.17 (closes: bug#379085).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Fri, 21 Jul 2006 12:10:52 +0200
+
+rt2400 (1.2.2+cvs20060620-1) unstable; urgency=low
+
+  * New CVS version.
+  * Bumped Standards-Version to 3.7.2 (no changes).
+  * rt2400: stop recommending rt2400-module (closes: bug#376904).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 11 Jul 2006 10:39:56 +0200
+
+rt2400 (1.2.2+cvs20060417-4) unstable; urgency=low
+
+  * Rename rt2400-_KVERS_ into rt2400-modules-_KVERS_.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sat, 22 Apr 2006 20:17:52 +0200
+
+rt2400 (1.2.2+cvs20060417-3) unstable; urgency=low
+
+  * Added Ben Hutchings <ben at decadentplace.org.uk> to the Uploaders: field.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 16:22:32 +0200
+
+rt2400 (1.2.2+cvs20060417-2) unstable; urgency=low
+
+  * Fix a typo in README.Debian. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 03:31:20 +0200
+
+rt2400 (1.2.2+cvs20060417-1) unstable; urgency=low
+
+  * New CVS version.
+  * Put a link to /usr/share/doc/rt2400-source/README.Debian into the
+    root of rt2400.tar.gz, as users are unable to look in /usr/share/doc/
+    by themselves.
+  * Add a menu item for RaConfig2400.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 17 Apr 2006 16:20:47 +0200
+
+rt2400 (1.2.2+cvs20051217-2) unstable; urgency=low
+
+  * I have received reports that the rt2400 driver is also working with an 
+    SMP kernel, so disable the error message when compiling on such a kernel.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 19 Dec 2005 21:36:39 +0100
+
+rt2400 (1.2.2+cvs20051217-1) unstable; urgency=low
+
+  * New CVS version.
+  * Only suggests gcc-3.3 and fails if it is not installed when building
+    the module against a 2.4 kernel.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 18 Dec 2005 00:12:48 +0100
+
+rt2400 (1.2.2+cvs20050730-6) unstable; urgency=low
+
+  * Really upload to unstable. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed,  2 Nov 2005 11:19:34 +0100
+
+rt2400 (1.2.2+cvs20050730-5) experimental; urgency=low
+
+  * Upload to unstable. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Nov 2005 16:13:56 +0100
+
+rt2400 (1.2.2+cvs20050730-4) experimental; urgency=low
+
+  * Upload to experimental as unstable is semi-frozen. 
+  * Refuse to build the module on an SMP kernel.
+  * Only recommends linux-image-2.6.xx.
+  * Clarified the description of rt2400.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 31 Oct 2005 20:17:52 +0100
+
+rt2400 (1.2.2+cvs20050730-3) unstable; urgency=low
+ 
+  * It's seems RT2400STA.dat is only used by the configuration tool.
+    Move this file in this package, and delete the rt2400-base package
+    (closes: bug#325897)
+  * Changed the name of the interface directly in the sources to be
+    able to get rid of rt2400-base.
+  * Added a README.Debian in the module package to explain how to
+    change the name of the interface.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Fri, 16 Sep 2005 11:14:31 +0200
+
+rt2400 (1.2.2+cvs20050730-2) unstable; urgency=low
+
+  * C++ transition: build-depends on libqt3-mt-dev (>= 3.3.4-4)
+    (closes: bug#320507). 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Fri, 12 Aug 2005 00:03:00 +0200
+
+rt2400 (1.2.2+cvs20050730-1) unstable; urgency=low
+
+  * New CVS version corresponding to 1.2.2-b3.
+  * Fixed a bug in debian rules that was making the module unbuildable.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Fri,  5 Aug 2005 19:21:16 +0200
+
+rt2400 (1.2.2+cvs20050710-2) unstable; urgency=low
+
+  * Make the modules also depending on the kernel images which are using
+    the new kernel naming scheme.
+  * Only build modules with gcc-3.3 with 2.4 kernels.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon,  1 Aug 2005 01:57:33 +0200
+
+rt2400 (1.2.2+cvs20050710-1) unstable; urgency=low
+
+  * Upload from Debconf 5.
+  * New CVS version.
+  * Build modules ith gcc-3.3.
+  * Bumped Standards-Version to 3.6.2 (no changes).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 11 Jul 2005 10:44:27 +0300
+
+rt2400 (1.2.2+cvs20050618-1) unstable; urgency=low
+
+  * New CVS version. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sat, 18 Jun 2005 20:33:19 +0200
+
+rt2400 (1.2.2+cvs20050530-2) unstable; urgency=low
+
+  * Don't try to include README in the module package (closes: bug#312001). 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sat,  4 Jun 2005 20:41:45 +0200
+
+rt2400 (1.2.2+cvs20050530-1) unstable; urgency=low
+
+  * Initial Release (closes: bug#285757).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 31 May 2005 07:23:11 +0200

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/control
===================================================================
--- unstable/rt2400/debian/control	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/control	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,39 +0,0 @@
-Source: rt2400
-Section: net
-Priority: extra
-Build-Depends: debhelper (>= 4.0), libqt3-mt-dev (>= 3.3.4-4), bzip2, quilt
-Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
-Uploaders: Aurelien Jarno <aurel32 at debian.org>, Ben Hutchings <ben at decadent.org.uk>, Romain Beauxis <toots at rastageeks.org>
-Standards-Version: 3.7.2
-Homepage: http://rt2x00.serialmonkey.com/
-Vcs-Svn: svn://svn.debian.org/svn/pkg-ralink/unstable/rt2400
-Vcs-Browser: http://svn.debian.org/wsvn/pkg-ralink/unstable/rt2400
-
-Package: rt2400-source
-Architecture: all
-Depends: debhelper (>= 4.0), module-assistant
-Suggests: gcc-3.3
-Description: source for rt2400 wireless network driver
- This package provides source code for the rt2400 driver for Linux.
- This driver supports PCI and CardBus wireless network cards with the
- Ralink RT2400 or RT2401 chipset.  An alternate driver, rt2400pci, is
- available in the rt2x00-source package and in the Linux kernel from
- version 2.6.24.
- .
- In order to compile the driver you need the kernel sources (or
- the linux-headers for the linux-image packages from Debian). For
- compile instructions look into /usr/share/doc/rt2400-source/README.Debian
- or simply use the module-assistant utility.
-
-Package: rt2400
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Conflicts: rt2400-base
-Recommends: wireless-tools
-Description: configuration tool for rt2400 wireless network driver
- This package provides an X11 application to configure wireless
- network cards controlled by the rt2400 driver.
- .
- This package is useless without the appropriate rt2400-modules-x.yy.zz package
- for the kernel you are running, except if you have built it by hand. You can
- create such a package from rt2400-source.

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/control (from rev 84, unstable/rt2400/debian/control)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/control	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/control	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,26 @@
+Source: rt2400
+Section: net
+Priority: extra
+Build-Depends: debhelper (>= 4.0), bzip2, quilt
+Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
+Uploaders: Aurelien Jarno <aurel32 at debian.org>, Ben Hutchings <ben at decadent.org.uk>, Romain Beauxis <toots at rastageeks.org>
+Standards-Version: 3.7.2
+Homepage: http://rt2x00.serialmonkey.com/
+Vcs-Svn: svn://svn.debian.org/svn/pkg-ralink/unstable/rt2400
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-ralink/unstable/rt2400
+
+Package: rt2400-source
+Architecture: all
+Depends: debhelper (>= 4.0), module-assistant, bzip2
+Suggests: gcc-3.3
+Description: source for rt2400 wireless network driver
+ This package provides source code for the rt2400 driver for Linux.
+ This driver supports PCI and CardBus wireless network cards with the
+ Ralink RT2400 or RT2401 chipset.  An alternate driver, rt2400pci, is
+ available in the rt2x00-source package and in the Linux kernel from
+ version 2.6.24.
+ .
+ In order to compile the driver you need the kernel sources (or
+ the linux-headers for the linux-image packages from Debian). For
+ compile instructions look into /usr/share/doc/rt2400-source/README.Debian
+ or simply use the module-assistant utility.

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in
===================================================================
--- unstable/rt2400/debian/control.modules.in	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,18 +0,0 @@
-Source: rt2400
-Section: net
-Priority: extra
-Build-Depends: debhelper (>= 4.0.0)
-Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
-Standards-Version: 3.7.2
-Homepage: http://rt2x00.serialmonkey.com/
-
-Package: rt2400-modules-_KVERS_
-Architecture: any
-Recommends: linux-image-_KVERS_, wireless-tools
-Conflicts: rt2400-_KVERS_
-Suggests: rt2400
-Description: rt2400 wireless network driver
- This package contains the rt2400 driver for Linux _KVERS_.
- .
- This driver supports PCI and CardBus wireless network cards with the
- Ralink RT2400 or RT2401 chipset.

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in (from rev 82, unstable/rt2400/debian/control.modules.in)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/control.modules.in	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,18 @@
+Source: rt2400
+Section: net
+Priority: extra
+Build-Depends: debhelper (>= 4.0.0)
+Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
+Standards-Version: 3.7.2
+Homepage: http://rt2x00.serialmonkey.com/
+
+Package: rt2400-modules-_KVERS_
+Architecture: any
+Recommends: linux-image-_KVERS_, wireless-tools
+Conflicts: rt2400-_KVERS_
+Suggests: rutilt
+Description: rt2400 wireless network driver
+ This package contains the rt2400 driver for Linux _KVERS_.
+ .
+ This driver supports PCI and CardBus wireless network cards with the
+ Ralink RT2400 or RT2401 chipset.

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff
===================================================================
--- unstable/rt2400/debian/patches/000_if_name.diff	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,40 +0,0 @@
---- Utility/raconfig.cpp
-+++ Utility/raconfig.cpp
-@@ -135,7 +135,7 @@
- 
- 	for (i=0; i<8; i++)
- 	{
--		sprintf(name, "ra%d", i);		
-+		sprintf(name, "eth%d", i);		
- 		if(Check_DeviceName(socket_id, name, "RT2400PCI"))
- 		{
- 			count++;
---- Module/rtmp_main.c
-+++ Module/rtmp_main.c
-@@ -64,7 +64,7 @@
- #endif
- 
- MODULE_PARM_DESC(debug, "Enable level: accepted values: 1 to switch debug on, 0 to switch debug off.");
--MODULE_PARM_DESC(ifname, "Network device name (default ra%d)");
-+MODULE_PARM_DESC(ifname, "Network device name (default eth%d)");
- #else
- int	debug = 0;	/* Default is off. */
- module_param(debug, int, 0);
-@@ -72,7 +72,7 @@
- 
- static char *ifname = NULL;
- module_param(ifname, charp, 0);
--MODULE_PARM_DESC(ifname, "Network device name (default ra%d)");
-+MODULE_PARM_DESC(ifname, "Network device name (default eth%d)");
- #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) */
- 
- // The driver version information
-@@ -265,7 +265,7 @@
- 	// register_netdev() will call dev_alloc_name() for us
- 	// TODO: remove the following line to keep the default "eth%d" (see above)
-         if (ifname == NULL)
--             strcpy(net_dev->name, "ra%d");
-+             strcpy(net_dev->name, "eth%d");
-         else 
-              strncpy(net_dev->name, ifname, IFNAMSIZ);
- 

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff (from rev 82, unstable/rt2400/debian/patches/000_if_name.diff)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/000_if_name.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,31 @@
+--- Module/rtmp_main.c.orig
++++ Module/rtmp_main.c
+@@ -64,7 +64,7 @@
+ #endif
+ 
+ MODULE_PARM_DESC(debug, "Enable level: accepted values: 1 to switch debug on, 0 to switch debug off.");
+-MODULE_PARM_DESC(ifname, "Network device name (default ra%d)");
++MODULE_PARM_DESC(ifname, "Network device name (default eth%d)");
+ #else
+ int	debug = 0;	/* Default is off. */
+ module_param(debug, int, 0);
+@@ -72,7 +72,7 @@
+ 
+ static char *ifname = NULL;
+ module_param(ifname, charp, 0);
+-MODULE_PARM_DESC(ifname, "Network device name (default ra%d)");
++MODULE_PARM_DESC(ifname, "Network device name (default eth%d)");
+ #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) */
+ 
+ // The driver version information
+@@ -284,9 +284,8 @@
+ 	net_dev->set_mac_address = rt2400_set_mac_address;
+ 
+ 	// register_netdev() will call dev_alloc_name() for us
+-	// TODO: remove the following line to keep the default "eth%d" (see above)
+         if (ifname == NULL)
+-             strcpy(net_dev->name, "ra%d");
++             strcpy(net_dev->name, "eth%d");
+         else
+              strncpy(net_dev->name, ifname, IFNAMSIZ);
+ 

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/002_linux-headers.diff
===================================================================
--- unstable/rt2400/debian/patches/002_linux-headers.diff	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/002_linux-headers.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,40 +0,0 @@
---- Utility/rt_tool.cpp
-+++ Utility/rt_tool.cpp
-@@ -38,6 +38,7 @@
- #include <string.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
-+#include <linux/if.h>
- #include <linux/wireless.h>
- 
- #include "rt_tool.h"
---- Utility/raconfigform.cpp
-+++ Utility/raconfigform.cpp
-@@ -71,6 +71,7 @@
- #include <string.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
-+#include <linux/if.h>
- #include <linux/wireless.h>
- #include <unistd.h>
- #include <sys/types.h>
---- Utility/addform.cpp
-+++ Utility/addform.cpp
-@@ -66,6 +66,7 @@
- #include <string.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
-+#include <linux/if.h>
- #include <linux/wireless.h>
- #include <ctype.h>
- 
---- Utility/raconfig.cpp
-+++ Utility/raconfig.cpp
-@@ -46,6 +46,7 @@
- #include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <unistd.h>
-+#include <linux/if.h>
- #include <linux/wireless.h>
- #include <errno.h>
- #include <fcntl.h>

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/004_fix_mlme_queue_locking.diff (from rev 82, unstable/rt2400/debian/patches/004_fix_mlme_queue_locking.diff)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/patches/004_fix_mlme_queue_locking.diff	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/004_fix_mlme_queue_locking.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,217 @@
+--- rt2400.orig/Module/mlme.c
++++ rt2400/Module/mlme.c
+@@ -39,6 +39,8 @@
+ #include "rt_config.h"
+ #include <stdarg.h>
+ 
++#include <asm/system.h>
++
+ /*
+     ==========================================================================
+     Description:
+@@ -58,7 +60,6 @@
+     do
+     {
+         pAd->Mlme.Running = FALSE;
+-        spin_lock_init(&pAd->Mlme.TaskLock);
+ 
+         // initialize the two tables
+         // MacTableInit(pAd);
+@@ -131,32 +132,28 @@
+ {
+     MLME_QUEUE_ELEM        *Elem = NULL;
+ 
+-    // Only accept MLME and Frame from peer side, no other (control/data) frame should
+-    // get into this state machine
++    // Only accept MLME and Frame from peer side, no other (control/data)
++	// frame should get into this state machine
+ 
+-    spin_lock(&pAd->Mlme.TaskLock);
++	// We fix the multiple context service drop problem identified by
++	// Ben Hutchings in an SMP- safe way by combining TaskLock and Queue.Lock
++	// per his suggestion.
++    spin_lock(&pAd->Mlme.Queue.Lock);
+     if(pAd->Mlme.Running)
+     {
+-        spin_unlock(&pAd->Mlme.TaskLock);
++        spin_unlock(&pAd->Mlme.Queue.Lock);
+         return;
+     }
+-    else
+-    {
+-        pAd->Mlme.Running = TRUE;
+-    }
+-    spin_unlock(&pAd->Mlme.TaskLock);
++	pAd->Mlme.Running = TRUE;
++
++	while (MlmeGetHead(&pAd->Mlme.Queue, &Elem)) {
++		smp_read_barrier_depends();
++		if (!Elem->Occupied) break;
+ 
+-    while (TRUE) {
+-    	spin_lock(&pAd->Mlme.Queue.Lock);
+-	    if (!MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
+-			spin_unlock(&pAd->Mlme.Queue.Lock);
+-			break;
+-	    }
+     	spin_unlock(&pAd->Mlme.Queue.Lock);
+-        if (pAd->PortCfg.BssType == BSS_MONITOR)
+-        	continue;
++
+         // From message type, determine which state machine I should drive
+-        switch (Elem->Machine) {
++		if (pAd->PortCfg.BssType != BSS_MONITOR) switch (Elem->Machine) {
+             case ASSOC_STATE_MACHINE:
+                 StateMachinePerformAction(pAd, &pAd->Mlme.AssocMachine, Elem);
+                 break;
+@@ -173,18 +170,19 @@
+                 MlmeCntlMachinePerformAction(pAd, &pAd->Mlme.CntlMachine, Elem);
+                 break;
+             default:
+-                DBGPRINT(RT_DEBUG_TRACE, "ERROR: Illegal machine in MlmeHandler()\n");
++                DBGPRINT(RT_DEBUG_ERROR,
++						 "ERROR: Illegal machine in MlmeHandler()\n");
+                 break;
+         } // end of switch
+ 
+         // free MLME element
+-        Elem->Occupied = FALSE;
+-        Elem->MsgLen = 0;
++        smp_mb();
++        Elem->Occupied = FALSE;	// sic - bb
++		spin_lock(&pAd->Mlme.Queue.Lock);
++		MlmeDequeue(&pAd->Mlme.Queue);
+     }
+-
+-    spin_lock(&pAd->Mlme.TaskLock);
+     pAd->Mlme.Running = FALSE;
+-    spin_unlock(&pAd->Mlme.TaskLock);
++    spin_unlock(&pAd->Mlme.Queue.Lock);
+ }
+ 
+ /*
+@@ -229,7 +227,6 @@
+     StateMachineDestroy(&pAd->Mlme.AuthRspMachine);
+     StateMachineDestroy(&pAd->Mlme.SyncMachine);
+     //    StateMachineDestroy(&pAd->Mlme.CntlMachine);
+-//    spin_unlock(&pAd->Mlme.TaskLock);
+     // NdisFreeSpinLock(&pAd->PortCfg.MacTab.Lock);
+ 
+     // Cancel pending timers
+@@ -1392,17 +1389,31 @@
+         printk(KERN_ERR DRV_NAME ": MlmeEnqueue full, msg dropped and may corrupt MLME\n");
+         return FALSE;
+     }
++	// If another context preempts us, it uses the next element - sic. bb
+     Tail = Queue->Tail++;
+     Queue->Tail %= MAX_LEN_OF_MLME_QUEUE;
+     Queue->Num++;
++
++	// We guard against Ben Hutchings' incomplete queue element problem by not
++	// setting the Occupied flag until the memcpy is done. The ocurrence of a
++	// refresh cycle during a copy can stretch the time by up to 100 usec
++	// (well, quite a few usec, anyway); not good when interrupts are disabled.
++	// Note that this can leave a bubble in the queue, but it will have
++	// disappeared by the time this thread gets around to calling MlmeHandler.
++	// All items will be handled in their proper order, but possibly not in the
++	// context in which they were added. - bb
+     spin_unlock(&Queue->Lock);
+     DBGPRINT(RT_DEBUG_INFO, "MlmeEnqueue, num=%d\n", Queue->Num);
+ 
+-    Queue->Entry[Tail].Occupied = TRUE;
+     Queue->Entry[Tail].Machine = Machine;
+     Queue->Entry[Tail].MsgType = MsgType;
+     Queue->Entry[Tail].MsgLen  = MsgLen;
+     memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
++
++	//MlmeHandler will stop when it finds this false.
++    smp_wmb();
++    Queue->Entry[Tail].Occupied = TRUE;
++
+     return TRUE;
+ }
+ 
+@@ -1449,7 +1460,7 @@
+     DBGPRINT(RT_DEBUG_INFO, "MlmeEnqueueForRecv, num=%d\n",Queue->Num);
+ 
+     // OK, we got all the informations, it is time to put things into queue
+-    Queue->Entry[Tail].Occupied = TRUE;
++	// See MlmeEnqueue note for use of Occupied flag.
+     Queue->Entry[Tail].Machine = Machine;
+     Queue->Entry[Tail].MsgType = MsgType;
+     Queue->Entry[Tail].MsgLen  = MsgLen;
+@@ -1458,13 +1469,15 @@
+     Queue->Entry[Tail].TimeStamp = jiffies;
+     Queue->Entry[Tail].Rssi = Rssi;
+     memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
++    smp_wmb();
++    Queue->Entry[Tail].Occupied = TRUE;
+ 
+     MlmeHandler(pAd);
+ 
+     return TRUE;
+ }
+ 
+-/*! \brief   Dequeue a message from the MLME Queue
++/*! \brief   Get the first message from the MLME Queue
+  * 			WARNING: Must be call with Mlme.Queue.Lock held
+  *  \param  *Queue    The MLME Queue
+  *  \param  *Elem     The message dequeued from MLME Queue
+@@ -1472,14 +1485,29 @@
+  *  \pre
+  *  \post
+  */
+-BOOLEAN MlmeDequeue(
++BOOLEAN MlmeGetHead(
+     IN MLME_QUEUE *Queue,
+     OUT MLME_QUEUE_ELEM **Elem)
+ {
+ 	if (Queue->Num == 0)
+ 		return FALSE;
+-    *Elem = &Queue->Entry[Queue->Head++];
+-    Queue->Head %= MAX_LEN_OF_MLME_QUEUE;
++    *Elem = &Queue->Entry[Queue->Head];
++    return TRUE;
++}
++
++/*! \brief   Remove the first message from the MLME Queue
++ * 			WARNING: Must be call with Mlme.Queue.Lock held
++ *  \param  *Queue    The MLME Queue
++ *  \return  TRUE if a message was removed, FALSE if the queue was empty
++ *  \pre
++ *  \post
++ */
++BOOLEAN MlmeDequeue(
++    IN MLME_QUEUE *Queue)
++{
++    if (Queue->Num == 0)
++	    return FALSE;
++    Queue->Head = (Queue->Head + 1) % MAX_LEN_OF_MLME_QUEUE;
+     Queue->Num--;
+     DBGPRINT(RT_DEBUG_INFO, "MlmeDequeue, num=%d\n",Queue->Num);
+ 
+--- rt2400.orig/Module/rtmp.h
++++ rt2400/Module/rtmp.h
+@@ -596,7 +596,6 @@
+     ULONG                   RxPER;    // 0..100 %
+ 
+     BOOLEAN                 Running;
+-    spinlock_t				TaskLock;
+     MLME_QUEUE              Queue;
+ 
+     UINT                    ShiftReg;
+@@ -1287,10 +1286,13 @@
+     IN ULONG MsgLen,
+     IN VOID *Msg);
+ 
+-BOOLEAN MlmeDequeue(
++BOOLEAN MlmeGetHead(
+     IN MLME_QUEUE *Queue,
+     OUT MLME_QUEUE_ELEM **Elem);
+ 
++BOOLEAN MlmeDequeue(
++    IN MLME_QUEUE *Queue);
++
+ BOOLEAN  MsgTypeSubst(
+     IN MACFRAME *Fr,
+     OUT INT *Machine,

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/2.6.22.diff
===================================================================
--- unstable/rt2400/debian/patches/2.6.22.diff	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/2.6.22.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,53 +0,0 @@
---- Module.orig/rt_config.h	2007/05/10 08:45:32	1.8
-+++ Module/rt_config.h	2007/06/18 19:39:09	1.9
-@@ -88,6 +88,22 @@
- #include <asm/irq.h>
- #include <asm/uaccess.h>
- 
-+#ifndef pci_name
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
-+#define pci_name(__pPci_Dev)	(__pPci_Dev)->dev.bus_id
-+#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */
-+#define pci_name(__pPci_Dev)	(__pPci_Dev)->slot_name
-+#endif /*(LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */
-+#endif /* pci_name */
-+
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
-+#define pci_module_init	pci_register_driver
-+#endif
-+
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
-+#define skb_reset_mac_header(skb) (skb->mac.raw = skb->data)
-+#endif
-+
- #if WIRELESS_EXT > 12
- #include <net/iw_handler.h> /* New driver API */
- #endif /* WIRELESS_EXT > 12 */
---- Module.orig/rtmp.h	2007/04/25 05:28:43	1.10
-+++ Module/rtmp.h	2007/06/18 19:39:10	1.11
-@@ -55,14 +55,6 @@
- #define netdev_priv(_dev)	( _dev->priv )
- #endif
- 
--#ifndef pci_name
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0))
--#define pci_name(__pPci_Dev)	(__pPci_Dev)->dev.bus_id
--#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */
--#define pci_name(__pPci_Dev)	(__pPci_Dev)->slot_name
--#endif /*(LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */
--#endif /* pci_name */
--
- //
- //  MACRO for debugging information
- //
---- Module.orig/rtmp_data.c	2007/03/21 04:12:20	1.6
-+++ Module/rtmp_data.c	2007/06/18 19:39:10	1.7
-@@ -110,7 +110,7 @@
-                     {
-                        skb->dev = pAd->net_dev;
-                        memcpy(skb_put(skb, pRxD->DataByteCnt), pData, pRxD->DataByteCnt);
--                       skb->mac.raw = skb->data;
-+                       skb_reset_mac_header(skb);
-                        skb->pkt_type = PACKET_OTHERHOST;
-                        skb->protocol = htons(ETH_P_802_2);
-                        skb->ip_summed = CHECKSUM_NONE;

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series
===================================================================
--- unstable/rt2400/debian/patches/series	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,3 +0,0 @@
-000_if_name.diff -p0
-002_linux-headers.diff -p0
-2.6.22.diff -p0

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series (from rev 82, unstable/rt2400/debian/patches/series)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/patches/series	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,2 @@
+000_if_name.diff -p0
+004_fix_mlme_queue_locking.diff

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.dirs
===================================================================
--- unstable/rt2400/debian/rt2400.dirs	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.dirs	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,3 +0,0 @@
-/etc/Ralink/RT2400
-usr/bin
-usr/share/pixmaps

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.docs
===================================================================
--- unstable/rt2400/debian/rt2400.docs	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.docs	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,2 +0,0 @@
-FAQ
-THANKS

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.manpages
===================================================================
--- unstable/rt2400/debian/rt2400.manpages	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.manpages	2007-11-12 00:30:15 UTC (rev 86)
@@ -1 +0,0 @@
-debian/RaConfig2400.1

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.menu
===================================================================
--- unstable/rt2400/debian/rt2400.menu	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/rt2400.menu	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,7 +0,0 @@
-?package(rt2400):\
-       needs="X11" \
-       section="Apps/System" \
-       title="RT2400 configuration utility" \
-       command="su-to-root -X -c /usr/bin/RaConfig2400" \
-       icon="/usr/share/pixmaps/RaConfig2400.xpm"
-

Deleted: tags/rt2400-1.2.2+cvs20070911-1/debian/rules
===================================================================
--- unstable/rt2400/debian/rules	2007-11-11 23:01:04 UTC (rev 81)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/rules	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,215 +0,0 @@
-#!/usr/bin/make -f
-# Sample debian/rules that uses debhelper.
-# GNU copyright 1997 by Joey Hess.
-#
-# This version is for a hypothetical package that builds an
-# architecture-dependant package, as well as an architecture-independent
-# package.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-# prefix of the target package name
-PACKAGE=rt2400-modules
-# modifieable for experiments or debugging m-a
-MA_DIR ?= /usr/share/modass
-# load generic variable handling
--include $(MA_DIR)/include/generic.make
-# load default rules
--include $(MA_DIR)/include/common-rules.make
-
-ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
-	CFLAGS += -g
-endif
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-	INSTALL_PROGRAM += -s
-endif
-
-clean:
-	dh_testdir
-	dh_testroot
-	-$(MAKE) -C Module clean
-	-$(MAKE) -C Utility clean
-	-rm Utility/Makefile
-	-rm Utility/RaConfig2400
-	QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2
-	dh_clean	
-	rm -rf debian/build
-	rm -f *-stamp
-
-patch: patch-stamp
-patch-stamp:
-	QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
-
-build-arch: build-arch-stamp
-build-arch-stamp: patch-stamp
-	dh_testdir
-	cd Utility/ \
-		&& qmake -o Makefile raconfig2400.pro \
-		&& $(MAKE)
-	
-	touch build-arch-stamp
-
-install-arch: build-arch install-arch-stamp
-install-arch-stamp:
-	dh_testdir
-	dh_testroot
-	dh_clean -k -a
-	dh_installdirs -a
-
-	install -m 755 -o root -g root $(CURDIR)/Utility/RaConfig2400 $(CURDIR)/debian/rt2400/usr/bin
-	install -m 644 -o root -g root $(CURDIR)/debian/RaConfig2400.xpm $(CURDIR)/debian/rt2400/usr/share/pixmaps
-
-	touch install-arch-stamp
-
-build-indep: build-indep-stamp
-build-indep-stamp: patch-stamp
-	dh_testdir
-
-	# Copy most of the source tree into the temp directory and clean it
-	cd $(CURDIR)/Module \
-		&& find . -path ./debian/\* -type d -prune -o -print \
-		| egrep -v 'RPM|CVS|debian'  \
-		| cpio -admp $(CURDIR)/debian/build/usr/src/modules/rt2400
-	cp -f $(CURDIR)/FAQ $(CURDIR)/debian/build/usr/src/modules/rt2400
-	cp -f $(CURDIR)/THANKS $(CURDIR)/debian/build/usr/src/modules/rt2400
-	cp -f $(CURDIR)/CHANGELOG $(CURDIR)/debian/build/usr/src/modules/rt2400
-	ln -s /usr/share/doc/rt2400-source/README.Debian $(CURDIR)/debian/build/usr/src/modules/rt2400/INSTALL.Debian
-
-	mkdir $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
-	cp -f $(CURDIR)/debian/*.modules.in $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
-	cp -f $(CURDIR)/debian/changelog $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
-	cp -f $(CURDIR)/debian/compat $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
-	cp -f $(CURDIR)/debian/copyright $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
-	cp -f $(CURDIR)/debian/rt2400-source.docs $(CURDIR)/debian/build/usr/src/modules/rt2400/debian/docs
-	cp -f $(CURDIR)/debian/rules $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
-
-	cd $(CURDIR)/debian/build/usr/src/modules/rt2400 \
-		&& make clean
-	
-	touch build-indep-stamp
-
-install-indep: build-indep install-indep-stamp
-install-indep-stamp:
-	dh_testdir
-	dh_testroot
-	dh_clean -i -k
-	dh_installdirs -i
-	
-	# Pack this up into a tarball
-	chown -R root.src debian/build/usr/src/modules
-	mkdir -p debian/rt2400-source/usr/src
-	cd debian/build/usr/src \
-		&& tar cf - modules | bzip2 -9 > $(CURDIR)/debian/rt2400-source/usr/src/rt2400.tar.bz2
-	ln -s ../packages/default.sh \
-		debian/rt2400-source/usr/share/modass/overrides/rt2400-source
-
-	touch install-indep-stamp
-
-# Build architecture-independent files here.
-binary-indep: build-indep install-indep
-	dh_testdir -i
-	dh_testroot -i
-#	dh_installdebconf -i
-	dh_installdocs -i
-#	dh_installexamples -i
-#	dh_installmenu -i
-#	dh_installlogrotate -i
-#	dh_installemacsen -i
-#	dh_installpam -i
-#	dh_installmime -i
-#	dh_installinit -i
-#	dh_installcron -i
-	dh_installman -i
-#	dh_installinfo -i
-	dh_installmodules -i
-	dh_installchangelogs -i CHANGELOG
-	dh_strip -i
-	dh_link -i
-	dh_compress -i
-	dh_fixperms -i
-	dh_installdeb -i
-	dh_shlibdeps -i
-	dh_gencontrol -i
-	dh_md5sums -i
-	dh_builddeb -i
-
-# Build architecture-dependent files here.
-binary-arch: build-arch install-arch
-	dh_testdir -a
-	dh_testroot -a
-#	dh_installdebconf -a
-	dh_installdocs -a
-#	dh_installexamples -a
-	dh_installmenu -a
-#	dh_installlogrotate -a
-#	dh_installemacsen -a
-#	dh_installpam -a
-#	dh_installmime -a
-#	dh_installinit -a
-#	dh_installcron -a
-	dh_installman -a
-#	dh_installinfo -a
-	dh_installmodules -a
-	dh_installchangelogs -a CHANGELOG
-	dh_strip -a
-	dh_link -a
-	dh_compress -a
-	dh_fixperms -a
-	dh_installdeb -a
-	dh_shlibdeps -a
-	dh_gencontrol -a
-	dh_md5sums -a
-	dh_builddeb -a
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install
-
-PATCHLEVEL := $(shell echo $(KVERS) | cut -d. -f2)
-
-.PHONY: kdist_config
-kdist_config: prep-deb-files
-
-.PHONY: binary_modules binary-modules
-binary-modules: binary_modules
-binary_modules: kdist_config
-
-	# Install module
-	dh_installdirs lib/modules/$(KVERS)/kernel/drivers/net/wireless
-
-	# Build modules
-ifeq ($(PATCHLEVEL), 4)
-	@if ! [ -x "/usr/bin/gcc-3.3" ] ; then \
-		echo "gcc-3.3 does not appear to be installed on your. It is necessary to be" ; \
-		echo "able to build the module on a 2.4 kernel. Please install it by running:" ; \
-		echo "  apt-get install gcc-3.3" ; \
-		false ; \
-	fi
-
-	$(MAKE) KERNDIR=$(KSRC) PATCHLEVEL=$(PATCHLEVEL) CC=gcc-3.3
-	install -m 0644 rt2400.o $(CURDIR)/debian/rt2400-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net/wireless
-endif
-ifeq ($(PATCHLEVEL), 6)
-	$(MAKE) KERNDIR=$(KSRC) PATCHLEVEL=$(PATCHLEVEL)
-	install -m 0644 rt2400.ko $(CURDIR)/debian/rt2400-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net/wireless
-endif
-
-	dh_testdir
-	dh_testroot
-	dh_installdocs 
-	dh_installmodules
-	dh_installchangelogs CHANGELOG
-	dh_link
-	dh_strip
-	dh_compress
-	dh_fixperms
-	dh_installdeb
-	dh_gencontrol -- -v$(VERSION)
-	dh_md5sums
-	dh_builddeb --destdir=$(DEB_DESTDIR)
-
-.PHONY: kdist_clean
-kdist_clean:
-	touch config.mk \
-		&& $(MAKE) clean
-	-dh_clean

Copied: tags/rt2400-1.2.2+cvs20070911-1/debian/rules (from rev 82, unstable/rt2400/debian/rules)
===================================================================
--- tags/rt2400-1.2.2+cvs20070911-1/debian/rules	                        (rev 0)
+++ tags/rt2400-1.2.2+cvs20070911-1/debian/rules	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,201 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# prefix of the target package name
+PACKAGE=rt2400-modules
+# modifieable for experiments or debugging m-a
+MA_DIR ?= /usr/share/modass
+# load generic variable handling
+-include $(MA_DIR)/include/generic.make
+# load default rules
+-include $(MA_DIR)/include/common-rules.make
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -g
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+	INSTALL_PROGRAM += -s
+endif
+
+clean:
+	dh_testdir
+	dh_testroot
+	-$(MAKE) -C Module clean
+	QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2
+	dh_clean	
+	rm -rf debian/build
+	rm -f *-stamp
+
+patch: patch-stamp
+patch-stamp:
+	QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
+
+build-arch: build-arch-stamp
+build-arch-stamp: patch-stamp
+	dh_testdir
+	touch build-arch-stamp
+
+install-arch: build-arch install-arch-stamp
+install-arch-stamp:
+	dh_testdir
+	touch install-arch-stamp
+
+build-indep: build-indep-stamp
+build-indep-stamp: patch-stamp
+	dh_testdir
+
+	# Copy most of the source tree into the temp directory and clean it
+	cd $(CURDIR)/Module \
+		&& find . -path ./debian/\* -type d -prune -o -print \
+		| egrep -v 'RPM|CVS|debian'  \
+		| cpio -admp $(CURDIR)/debian/build/usr/src/modules/rt2400
+	cp -f $(CURDIR)/FAQ $(CURDIR)/debian/build/usr/src/modules/rt2400
+	cp -f $(CURDIR)/THANKS $(CURDIR)/debian/build/usr/src/modules/rt2400
+	cp -f $(CURDIR)/CHANGELOG $(CURDIR)/debian/build/usr/src/modules/rt2400
+	ln -s /usr/share/doc/rt2400-source/README.Debian $(CURDIR)/debian/build/usr/src/modules/rt2400/INSTALL.Debian
+
+	mkdir $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
+	cp -f $(CURDIR)/debian/*.modules.in $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
+	cp -f $(CURDIR)/debian/changelog $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
+	cp -f $(CURDIR)/debian/compat $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
+	cp -f $(CURDIR)/debian/copyright $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
+	cp -f $(CURDIR)/debian/rt2400-source.docs $(CURDIR)/debian/build/usr/src/modules/rt2400/debian/docs
+	cp -f $(CURDIR)/debian/rules $(CURDIR)/debian/build/usr/src/modules/rt2400/debian
+
+	cd $(CURDIR)/debian/build/usr/src/modules/rt2400 \
+		&& make clean
+	
+	touch build-indep-stamp
+
+install-indep: build-indep install-indep-stamp
+install-indep-stamp:
+	dh_testdir
+	dh_testroot
+	dh_clean -i -k
+	dh_installdirs -i
+	
+	# Pack this up into a tarball
+	chown -R root.src debian/build/usr/src/modules
+	mkdir -p debian/rt2400-source/usr/src
+	cd debian/build/usr/src \
+		&& tar cf - modules | bzip2 -9 > $(CURDIR)/debian/rt2400-source/usr/src/rt2400.tar.bz2
+	ln -s ../packages/default.sh \
+		debian/rt2400-source/usr/share/modass/overrides/rt2400-source
+
+	touch install-indep-stamp
+
+# Build architecture-independent files here.
+binary-indep: build-indep install-indep
+	dh_testdir -i
+	dh_testroot -i
+#	dh_installdebconf -i
+	dh_installdocs -i
+#	dh_installexamples -i
+#	dh_installmenu -i
+#	dh_installlogrotate -i
+#	dh_installemacsen -i
+#	dh_installpam -i
+#	dh_installmime -i
+#	dh_installinit -i
+#	dh_installcron -i
+	dh_installman -i
+#	dh_installinfo -i
+	dh_installmodules -i
+	dh_installchangelogs -i CHANGELOG
+	dh_strip -i
+	dh_link -i
+	dh_compress -i
+	dh_fixperms -i
+	dh_installdeb -i
+	dh_shlibdeps -i
+	dh_gencontrol -i
+	dh_md5sums -i
+	dh_builddeb -i
+
+# Build architecture-dependent files here.
+binary-arch: build-arch install-arch
+	dh_testdir -a
+	dh_testroot -a
+#	dh_installdebconf -a
+	dh_installdocs -a
+#	dh_installexamples -a
+	dh_installmenu -a
+#	dh_installlogrotate -a
+#	dh_installemacsen -a
+#	dh_installpam -a
+#	dh_installmime -a
+#	dh_installinit -a
+#	dh_installcron -a
+	dh_installman -a
+#	dh_installinfo -a
+	dh_installmodules -a
+	dh_installchangelogs -a CHANGELOG
+	dh_strip -a
+	dh_link -a
+	dh_compress -a
+	dh_fixperms -a
+	dh_installdeb -a
+	dh_shlibdeps -a
+	dh_gencontrol -a
+	dh_md5sums -a
+	dh_builddeb -a
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
+
+PATCHLEVEL := $(shell echo $(KVERS) | cut -d. -f2)
+
+.PHONY: kdist_config
+kdist_config: prep-deb-files
+
+.PHONY: binary_modules binary-modules
+binary-modules: binary_modules
+binary_modules: kdist_config
+
+	# Install module
+	dh_installdirs lib/modules/$(KVERS)/kernel/drivers/net/wireless
+
+	# Build modules
+ifeq ($(PATCHLEVEL), 4)
+	@if ! [ -x "/usr/bin/gcc-3.3" ] ; then \
+		echo "gcc-3.3 does not appear to be installed on your. It is necessary to be" ; \
+		echo "able to build the module on a 2.4 kernel. Please install it by running:" ; \
+		echo "  apt-get install gcc-3.3" ; \
+		false ; \
+	fi
+
+	$(MAKE) KERNDIR=$(KSRC) PATCHLEVEL=$(PATCHLEVEL) CC=gcc-3.3
+	install -m 0644 rt2400.o $(CURDIR)/debian/rt2400-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net/wireless
+endif
+ifeq ($(PATCHLEVEL), 6)
+	$(MAKE) KERNDIR=$(KSRC) PATCHLEVEL=$(PATCHLEVEL)
+	install -m 0644 rt2400.ko $(CURDIR)/debian/rt2400-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net/wireless
+endif
+
+	dh_testdir
+	dh_testroot
+	dh_installdocs 
+	dh_installmodules
+	dh_installchangelogs CHANGELOG
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_gencontrol -- -v$(VERSION)
+	dh_md5sums
+	dh_builddeb --destdir=$(DEB_DESTDIR)
+
+.PHONY: kdist_clean
+kdist_clean:
+	touch config.mk \
+		&& $(MAKE) clean
+	-dh_clean

Copied: tags/rt2500-1.1.0-b4+cvs20070924-2 (from rev 79, unstable/rt2500)

Deleted: tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog
===================================================================
--- unstable/rt2500/debian/changelog	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,222 +0,0 @@
-rt2500 (1:1.1.0-b4+cvs20070924-1) unstable; urgency=low
-
-  * New CVS snapshot
-    - Removes RaConfig2500 utility and rt2500 binary package
-  * Added suggestion of rutilt package as a replacement for rt2500
-  * Fixed some race conditions in processing of queued work, with help
-    from Bryan Batten (004_fix_mlme_queue_locking.diff)
-  * Fixed sharing of error rate variables between interfaces
-    (005_fix_error_rate_vars.diff)
-
- -- Ben Hutchings <ben at decadent.org.uk>  Mon, 22 Oct 2007 01:58:22 +0100
-
-rt2500 (1:1.1.0-b4-4) unstable; urgency=low
-
-  * Workaround linux-libc-dev bug by including linux/if.h before
-    linux/wireless.h  (closes: bug#429019).
-  * patches/2.6.22: fix the build of the module with 2.6.22+ kernels
-    (closes: bug#432358).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 15 Jul 2007 21:30:43 +0200
-
-rt2500 (1:1.1.0-b4-3) unstable; urgency=low
-
-  * Fixed 2.6.19.patch (Closes: #399051)
-
- -- Romain Beauxis <toots at rastageeks.org>  Thu, 15 Mar 2007 14:26:43 +0100
-
-rt2500 (1:1.1.0-b4-2) unstable; urgency=low
-
-  * patches/2.6.19.diff: add a missing part preventing the module
-    to be built on 2.6.19+ kernels (closes: bug#413724).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  6 Mar 2007 20:55:40 +0100
-
-rt2500 (1:1.1.0-b4-1) unstable; urgency=low
-
-  * Switch back to 1.1.0-b4 + backported patches (closes: bug#411703, 
-    bug#413158).
-  * Switch maintainer to "Debian Ralink packages maintainers".
-  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
-  * Use quilt for patch management.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  6 Mar 2007 00:53:59 +0100
-
-rt2500 (1.1.0+cvs20070219-1) unstable; urgency=low
-
-  * Switch Maintainer and Uploader.
-  * New CVS snaphost.
-    - Fix build on >= 2.6.20-rc5 kernels (closes: bug#406825).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 19 Feb 2007 01:50:17 +0100
-
-rt2500 (1.1.0+cvs20061231-2) unstable; urgency=low
-
-  * Use bzip2 instead of gzip to compress the sources. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 20:58:09 +0100
-
-rt2500 (1.1.0+cvs20061231-1) unstable; urgency=low
-
-  * New CVS snaphost.
-    - Fix SSID handling with kernels >= 2.6.19.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:28:26 +0100
-
-rt2500 (1.1.0+cvs20061210-1) unstable; urgency=low
-
-  * New CVS snapshot.
-     - Fix build with kernels >= 2.6.19.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 10 Dec 2006 15:30:22 +0100
-
-rt2500 (1.1.0+cvs20060620-3) unstable; urgency=low
-
-  * debian/rules: fix a bashism (closes: bug#385207).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed, 30 Aug 2006 14:56:48 +0200
-
-rt2500 (1.1.0+cvs20060620-2) unstable; urgency=low
-
-  * Fixed a typo in the description. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:28:49 +0200
-
-rt2500 (1.1.0+cvs20060620-1) unstable; urgency=low
-
-  * New CVS snapshot (closes: bug#376319). 
-  * Bumped Standard-Versions to 3.7.2 (no changes).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 11 Jul 2006 09:39:27 +0200
-
-rt2500 (1.1.0+cvs20060420-3) unstable; urgency=low
-
-  * Fixed a bug preventing the interface to be detected if its number is
-    greater than 0.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu, 27 Apr 2006 21:53:57 +0200
-
-rt2500 (1.1.0+cvs20060420-2) unstable; urgency=low
-
-  * Rename rt2500-_KVERS_ into rt2500-modules-_KVERS_.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sat, 22 Apr 2006 18:56:26 +0200
-
-rt2500 (1.1.0+cvs20060420-1) unstable; urgency=low
-
-  * New CVS version that should work on SMP machines (closes: bug#363640).
-  * Added Ben Hutchings <ben at decadentplace.org.uk> to the Uploaders: field.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 12:26:35 +0200
-
-rt2500 (1.1.0+cvs20060417-2) unstable; urgency=low
-
-  * Fix a typo in README.Debian (closes: bug#363563).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 03:28:32 +0200
-
-rt2500 (1.1.0+cvs20060417-1) unstable; urgency=low
-
-  * New CVS version.
-  * Put a link to /usr/share/doc/rt2500-source/README.Debian into the 
-    root of rt2500.tar.gz, as users are unable to look in /usr/share/doc/
-    by themselves (closes: bug#350500).
-  * Add a menu item for RaConfig2500 (closes: bug#360779).
-  * Fixed a typo in RaConfig2500. Thanks to Peter Crosbie Stevenson
-    <stevepe at earlham.edu> (closes: bug#355073).
-  * Fixed some text fields that where cutted-off in RaConfig2500. Thanks to 
-    Peter Stevenson (closes: bug#354795).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 30 Jan 2006 01:12:03 +0100
-
-rt2500 (1.1.0+cvs20051217-1) unstable; urgency=low
-
-  * New CVS version:
-    - Add support for injection of raw packets (closes: bug#339673).
-  * Only suggests gcc-3.3 and fails if it is not installed when building
-    the module against a 2.4 kernel (closes: bug#341655).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sat, 17 Dec 2005 23:38:32 +0100
-
-rt2500 (1.1.0+cvs20050819-4) unstable; urgency=low
-
-  * Move to unstable. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Nov 2005 15:32:06 +0100
-
-rt2500 (1.1.0+cvs20050819-3) experimental; urgency=low
-
-  * Upload to experimental as unstable is semi-frozen.
-  * Refuse to build the module on SMP kernel.
-  * Only recommends linux-image-2.6.xx.
-  * Clarified the description of rt2500. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 31 Oct 2005 19:59:19 +0100
-
-rt2500 (1.1.0+cvs20050819-2) unstable; urgency=low
-
-  * It's seems RT2500STA.dat is only used by the configuration tool.
-    Move this file in this package, and delete the rt2500-base package
-    (closes: bug#325897).
-  * Changed the name of the interface directly in the sources to be
-    able to get rid of rt2500-base.
-  * Added a README.Debian in the module package to explain how to
-    change the name of the interface.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed, 31 Aug 2005 23:03:27 +0200
-
-rt2500 (1.1.0+cvs20050819-1) unstable; urgency=low
-
-  * New CVS version.
-  * This version now builds on powerpc (closes: #321822), but I have no
-    way to verify it works on this architecture.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed, 31 Aug 2005 22:41:47 +0200
-
-rt2500 (1.1.0+cvs20050710-4) unstable; urgency=low
-
-  * C++ transition: build-depends on libqt3-mt-dev (>= 3.3.4-4)
-    (closes: bug#320234). 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Fri, 12 Aug 2005 00:04:06 +0200
-
-rt2500 (1.1.0+cvs20050710-3) unstable; urgency=low
-
-  * Oops fixed a typo in debian/control.modules.in. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon,  1 Aug 2005 01:57:18 +0200
-
-rt2500 (1.1.0+cvs20050710-2) unstable; urgency=low
-
-  * Make the modules also depending on the kernel images which are using
-    the new kernel naming scheme (closes: bug#320361).
-  * Only build modules with gcc-3.3 on a 2.4 kernel.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon,  1 Aug 2005 01:38:07 +0200
-
-rt2500 (1.1.0+cvs20050710-1) unstable; urgency=low
-
-  * Upload from Debconf 5.
-  * New CVS version.
-  * Build modules with gcc-3.3.
-  * Bumped Standard-Versions to 3.6.2 (no changes).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 11 Jul 2005 10:44:57 +0300
-
-rt2500 (1.1.0+cvs20050530-2) unstable; urgency=low
-
-  * Build-Depends on debhelper (closes: bug#311575). 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu,  2 Jun 2005 08:22:33 +0200
-
-rt2500 (1.1.0+cvs20050530-1) unstable; urgency=low
-
-  * New CVS version.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 31 May 2005 07:16:46 +0200
-
-rt2500 (1.1.0+cvs20050528-1) unstable; urgency=low
-
-  * Initial Release (closes: bug#285756).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 29 May 2005 19:03:04 +0200

Copied: tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog (from rev 84, unstable/rt2500/debian/changelog)
===================================================================
--- tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog	                        (rev 0)
+++ tags/rt2500-1.1.0-b4+cvs20070924-2/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,228 @@
+rt2500 (1:1.1.0-b4+cvs20070924-2) unstable; urgency=low
+
+  * Added dependency of rt2500-source on bzip2 (closes: bug#448717)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 11 Nov 2007 23:58:24 +0000
+
+rt2500 (1:1.1.0-b4+cvs20070924-1) unstable; urgency=low
+
+  * New CVS snapshot
+    - Removes RaConfig2500 utility and rt2500 binary package
+  * Added suggestion of rutilt package as a replacement for rt2500
+  * Fixed some race conditions in processing of queued work, with help
+    from Bryan Batten (004_fix_mlme_queue_locking.diff)
+  * Fixed sharing of error rate variables between interfaces
+    (005_fix_error_rate_vars.diff)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Mon, 22 Oct 2007 01:58:22 +0100
+
+rt2500 (1:1.1.0-b4-4) unstable; urgency=low
+
+  * Workaround linux-libc-dev bug by including linux/if.h before
+    linux/wireless.h  (closes: bug#429019).
+  * patches/2.6.22: fix the build of the module with 2.6.22+ kernels
+    (closes: bug#432358).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 15 Jul 2007 21:30:43 +0200
+
+rt2500 (1:1.1.0-b4-3) unstable; urgency=low
+
+  * Fixed 2.6.19.patch (Closes: #399051)
+
+ -- Romain Beauxis <toots at rastageeks.org>  Thu, 15 Mar 2007 14:26:43 +0100
+
+rt2500 (1:1.1.0-b4-2) unstable; urgency=low
+
+  * patches/2.6.19.diff: add a missing part preventing the module
+    to be built on 2.6.19+ kernels (closes: bug#413724).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  6 Mar 2007 20:55:40 +0100
+
+rt2500 (1:1.1.0-b4-1) unstable; urgency=low
+
+  * Switch back to 1.1.0-b4 + backported patches (closes: bug#411703, 
+    bug#413158).
+  * Switch maintainer to "Debian Ralink packages maintainers".
+  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
+  * Use quilt for patch management.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  6 Mar 2007 00:53:59 +0100
+
+rt2500 (1.1.0+cvs20070219-1) unstable; urgency=low
+
+  * Switch Maintainer and Uploader.
+  * New CVS snaphost.
+    - Fix build on >= 2.6.20-rc5 kernels (closes: bug#406825).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 19 Feb 2007 01:50:17 +0100
+
+rt2500 (1.1.0+cvs20061231-2) unstable; urgency=low
+
+  * Use bzip2 instead of gzip to compress the sources. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 20:58:09 +0100
+
+rt2500 (1.1.0+cvs20061231-1) unstable; urgency=low
+
+  * New CVS snaphost.
+    - Fix SSID handling with kernels >= 2.6.19.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:28:26 +0100
+
+rt2500 (1.1.0+cvs20061210-1) unstable; urgency=low
+
+  * New CVS snapshot.
+     - Fix build with kernels >= 2.6.19.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 10 Dec 2006 15:30:22 +0100
+
+rt2500 (1.1.0+cvs20060620-3) unstable; urgency=low
+
+  * debian/rules: fix a bashism (closes: bug#385207).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed, 30 Aug 2006 14:56:48 +0200
+
+rt2500 (1.1.0+cvs20060620-2) unstable; urgency=low
+
+  * Fixed a typo in the description. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:28:49 +0200
+
+rt2500 (1.1.0+cvs20060620-1) unstable; urgency=low
+
+  * New CVS snapshot (closes: bug#376319). 
+  * Bumped Standard-Versions to 3.7.2 (no changes).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 11 Jul 2006 09:39:27 +0200
+
+rt2500 (1.1.0+cvs20060420-3) unstable; urgency=low
+
+  * Fixed a bug preventing the interface to be detected if its number is
+    greater than 0.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu, 27 Apr 2006 21:53:57 +0200
+
+rt2500 (1.1.0+cvs20060420-2) unstable; urgency=low
+
+  * Rename rt2500-_KVERS_ into rt2500-modules-_KVERS_.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sat, 22 Apr 2006 18:56:26 +0200
+
+rt2500 (1.1.0+cvs20060420-1) unstable; urgency=low
+
+  * New CVS version that should work on SMP machines (closes: bug#363640).
+  * Added Ben Hutchings <ben at decadentplace.org.uk> to the Uploaders: field.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 12:26:35 +0200
+
+rt2500 (1.1.0+cvs20060417-2) unstable; urgency=low
+
+  * Fix a typo in README.Debian (closes: bug#363563).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu, 20 Apr 2006 03:28:32 +0200
+
+rt2500 (1.1.0+cvs20060417-1) unstable; urgency=low
+
+  * New CVS version.
+  * Put a link to /usr/share/doc/rt2500-source/README.Debian into the 
+    root of rt2500.tar.gz, as users are unable to look in /usr/share/doc/
+    by themselves (closes: bug#350500).
+  * Add a menu item for RaConfig2500 (closes: bug#360779).
+  * Fixed a typo in RaConfig2500. Thanks to Peter Crosbie Stevenson
+    <stevepe at earlham.edu> (closes: bug#355073).
+  * Fixed some text fields that where cutted-off in RaConfig2500. Thanks to 
+    Peter Stevenson (closes: bug#354795).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 30 Jan 2006 01:12:03 +0100
+
+rt2500 (1.1.0+cvs20051217-1) unstable; urgency=low
+
+  * New CVS version:
+    - Add support for injection of raw packets (closes: bug#339673).
+  * Only suggests gcc-3.3 and fails if it is not installed when building
+    the module against a 2.4 kernel (closes: bug#341655).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sat, 17 Dec 2005 23:38:32 +0100
+
+rt2500 (1.1.0+cvs20050819-4) unstable; urgency=low
+
+  * Move to unstable. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Nov 2005 15:32:06 +0100
+
+rt2500 (1.1.0+cvs20050819-3) experimental; urgency=low
+
+  * Upload to experimental as unstable is semi-frozen.
+  * Refuse to build the module on SMP kernel.
+  * Only recommends linux-image-2.6.xx.
+  * Clarified the description of rt2500. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 31 Oct 2005 19:59:19 +0100
+
+rt2500 (1.1.0+cvs20050819-2) unstable; urgency=low
+
+  * It's seems RT2500STA.dat is only used by the configuration tool.
+    Move this file in this package, and delete the rt2500-base package
+    (closes: bug#325897).
+  * Changed the name of the interface directly in the sources to be
+    able to get rid of rt2500-base.
+  * Added a README.Debian in the module package to explain how to
+    change the name of the interface.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed, 31 Aug 2005 23:03:27 +0200
+
+rt2500 (1.1.0+cvs20050819-1) unstable; urgency=low
+
+  * New CVS version.
+  * This version now builds on powerpc (closes: #321822), but I have no
+    way to verify it works on this architecture.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed, 31 Aug 2005 22:41:47 +0200
+
+rt2500 (1.1.0+cvs20050710-4) unstable; urgency=low
+
+  * C++ transition: build-depends on libqt3-mt-dev (>= 3.3.4-4)
+    (closes: bug#320234). 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Fri, 12 Aug 2005 00:04:06 +0200
+
+rt2500 (1.1.0+cvs20050710-3) unstable; urgency=low
+
+  * Oops fixed a typo in debian/control.modules.in. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon,  1 Aug 2005 01:57:18 +0200
+
+rt2500 (1.1.0+cvs20050710-2) unstable; urgency=low
+
+  * Make the modules also depending on the kernel images which are using
+    the new kernel naming scheme (closes: bug#320361).
+  * Only build modules with gcc-3.3 on a 2.4 kernel.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon,  1 Aug 2005 01:38:07 +0200
+
+rt2500 (1.1.0+cvs20050710-1) unstable; urgency=low
+
+  * Upload from Debconf 5.
+  * New CVS version.
+  * Build modules with gcc-3.3.
+  * Bumped Standard-Versions to 3.6.2 (no changes).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 11 Jul 2005 10:44:57 +0300
+
+rt2500 (1.1.0+cvs20050530-2) unstable; urgency=low
+
+  * Build-Depends on debhelper (closes: bug#311575). 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu,  2 Jun 2005 08:22:33 +0200
+
+rt2500 (1.1.0+cvs20050530-1) unstable; urgency=low
+
+  * New CVS version.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 31 May 2005 07:16:46 +0200
+
+rt2500 (1.1.0+cvs20050528-1) unstable; urgency=low
+
+  * Initial Release (closes: bug#285756).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 29 May 2005 19:03:04 +0200

Deleted: tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control
===================================================================
--- unstable/rt2500/debian/control	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,26 +0,0 @@
-Source: rt2500
-Section: net
-Priority: extra
-Build-Depends: debhelper (>= 4.0), bzip2, quilt
-Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
-Uploaders: Aurelien Jarno <aurel32 at debian.org>, Ben Hutchings <ben at decadent.org.uk>, Romain Beauxis <toots at rastageeks.org>
-Standards-Version: 3.7.2
-Homepage: http://rt2x00.serialmonkey.com/
-Vcs-Svn: svn://svn.debian.org/svn/pkg-ralink/unstable/rt2500
-Vcs-Browser: http://svn.debian.org/wsvn/pkg-ralink/unstable/rt2500
-
-Package: rt2500-source
-Architecture: all
-Depends: debhelper (>= 4.0), module-assistant
-Suggests: gcc-3.3
-Description: source for rt2500 wireless network driver
- This package provides source code for the rt2500 driver for Linux.
- This driver supports PCI and CardBus wireless network cards with the
- Ralink RT2500 or RT5200 chipset.  An alternate driver, rt2500pci, is
- available in the rt2x00-source package and in the Linux kernel from
- version 2.6.24.
- .
- In order to compile the driver you need the kernel sources (or
- the linux-headers for the linux-image packages from Debian). For
- compile instructions look into /usr/share/doc/rt2500-source/README.Debian
- or simply use the module-assistant utility.

Copied: tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control (from rev 84, unstable/rt2500/debian/control)
===================================================================
--- tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control	                        (rev 0)
+++ tags/rt2500-1.1.0-b4+cvs20070924-2/debian/control	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,26 @@
+Source: rt2500
+Section: net
+Priority: extra
+Build-Depends: debhelper (>= 4.0), bzip2, quilt
+Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
+Uploaders: Aurelien Jarno <aurel32 at debian.org>, Ben Hutchings <ben at decadent.org.uk>, Romain Beauxis <toots at rastageeks.org>
+Standards-Version: 3.7.2
+Homepage: http://rt2x00.serialmonkey.com/
+Vcs-Svn: svn://svn.debian.org/svn/pkg-ralink/unstable/rt2500
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-ralink/unstable/rt2500
+
+Package: rt2500-source
+Architecture: all
+Depends: debhelper (>= 4.0), module-assistant, bzip2
+Suggests: gcc-3.3
+Description: source for rt2500 wireless network driver
+ This package provides source code for the rt2500 driver for Linux.
+ This driver supports PCI and CardBus wireless network cards with the
+ Ralink RT2500 or RT5200 chipset.  An alternate driver, rt2500pci, is
+ available in the rt2x00-source package and in the Linux kernel from
+ version 2.6.24.
+ .
+ In order to compile the driver you need the kernel sources (or
+ the linux-headers for the linux-image packages from Debian). For
+ compile instructions look into /usr/share/doc/rt2500-source/README.Debian
+ or simply use the module-assistant utility.

Copied: tags/rt2570-1.1.0+cvs20070927-1 (from rev 79, unstable/rt2570)

Deleted: tags/rt2570-1.1.0+cvs20070927-1/debian/changelog
===================================================================
--- unstable/rt2570/debian/changelog	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,67 +0,0 @@
-rt2570 (1.1.0+cvs20070927-1) unstable; urgency=low
-
-  * New CVS snapshot
-    - Believed to be SMP-safe (closes: bug#423127)
-    - Supports Linux 2.6.22 (closes: bug#432533)
-
- -- Ben Hutchings <ben at decadent.org.uk>  Sat, 29 Sep 2007 21:13:30 +0100
-
-rt2570 (1.1.0+cvs20070219-2) unstable; urgency=low
-
-  * Switch maintainer to "Debian Ralink packages maintainers".
-  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
-  * Use quilt for patch management.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon,  5 Mar 2007 17:17:22 +0100
-
-rt2570 (1.1.0+cvs20070219-1) unstable; urgency=low
-
-  * Switch Maintainer and Uploader.
-  * New CVS snaphost.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 20 Feb 2007 01:00:55 +0100
-
-rt2570 (1.1.0+cvs20061231-2) unstable; urgency=low
-
-  * Use bzip2 instead of gzip to compress the sources. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 21:03:54 +0100
-
-rt2570 (1.1.0+cvs20061231-1) unstable; urgency=low
-
-  * New CVS version.
-    - Fix SSID with kernels >= 2.6.19.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:29:47 +0100
-
-rt2570 (1.1.0+cvs20061210-1) unstable; urgency=low
-
-  * New upstream CVS.
-    - Fix build with kernels >= 2.6.19.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 10 Dec 2006 16:06:06 +0100
-
-rt2570 (1.1.0+cvs20060620-3) unstable; urgency=low
-
-  * debian/rules: fix a bashims (closes: bug#385206).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed, 30 Aug 2006 15:03:38 +0200
-
-rt2570 (1.1.0+cvs20060620-2) unstable; urgency=low
-
-  * Fixed a typo in the description. 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:42:08 +0200
-
-rt2570 (1.1.0+cvs20060620-1) unstable; urgency=low
-
-  * New upstream CVS.
-  * Bumped Standards-Version to 3.7.2 (no changes).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue, 11 Jul 2006 11:29:20 +0200
-
-rt2570 (1.1.0+cvs20060421-1) unstable; urgency=low
-
-  * Initial Release (closes: bug#339599).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 29 May 2005 19:03:04 +0200

Copied: tags/rt2570-1.1.0+cvs20070927-1/debian/changelog (from rev 84, unstable/rt2570/debian/changelog)
===================================================================
--- tags/rt2570-1.1.0+cvs20070927-1/debian/changelog	                        (rev 0)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,74 @@
+rt2570 (1.1.0+cvs20070927-1) unstable; urgency=low
+
+  * New CVS snapshot
+    - Believed to be SMP-safe (closes: bug#423127)
+    - Supports Linux 2.6.22 (closes: bug#432533)
+  * Added suggestion of rutilt package
+  * Fixed some race conditions in processing of queued work, with help
+    from Bryan Batten (004_fix_mlme_queue_locking.diff)
+  * Fixed some miscalculated delays (005_fix_delays.diff)
+  * Changed probing code to reject devices which require the rt73 driver
+    (006_fix_probe_148f_2573.diff)
+  * Added dependency of rt2500-source on bzip2 (closes: bug#448719)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 11 Nov 2007 23:55:23 +0000
+
+rt2570 (1.1.0+cvs20070219-2) unstable; urgency=low
+
+  * Switch maintainer to "Debian Ralink packages maintainers".
+  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
+  * Use quilt for patch management.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon,  5 Mar 2007 17:17:22 +0100
+
+rt2570 (1.1.0+cvs20070219-1) unstable; urgency=low
+
+  * Switch Maintainer and Uploader.
+  * New CVS snaphost.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 20 Feb 2007 01:00:55 +0100
+
+rt2570 (1.1.0+cvs20061231-2) unstable; urgency=low
+
+  * Use bzip2 instead of gzip to compress the sources. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 21:03:54 +0100
+
+rt2570 (1.1.0+cvs20061231-1) unstable; urgency=low
+
+  * New CVS version.
+    - Fix SSID with kernels >= 2.6.19.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:29:47 +0100
+
+rt2570 (1.1.0+cvs20061210-1) unstable; urgency=low
+
+  * New upstream CVS.
+    - Fix build with kernels >= 2.6.19.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 10 Dec 2006 16:06:06 +0100
+
+rt2570 (1.1.0+cvs20060620-3) unstable; urgency=low
+
+  * debian/rules: fix a bashims (closes: bug#385206).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed, 30 Aug 2006 15:03:38 +0200
+
+rt2570 (1.1.0+cvs20060620-2) unstable; urgency=low
+
+  * Fixed a typo in the description. 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:42:08 +0200
+
+rt2570 (1.1.0+cvs20060620-1) unstable; urgency=low
+
+  * New upstream CVS.
+  * Bumped Standards-Version to 3.7.2 (no changes).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue, 11 Jul 2006 11:29:20 +0200
+
+rt2570 (1.1.0+cvs20060421-1) unstable; urgency=low
+
+  * Initial Release (closes: bug#339599).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 29 May 2005 19:03:04 +0200

Deleted: tags/rt2570-1.1.0+cvs20070927-1/debian/control
===================================================================
--- unstable/rt2570/debian/control	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/control	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,26 +0,0 @@
-Source: rt2570
-Section: net
-Priority: extra
-Build-Depends: debhelper (>= 4.0), bzip2, quilt
-Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
-Uploaders: Aurelien Jarno <aurel32 at debian.org>, Ben Hutchings <ben at decadent.org.uk>, Romain Beauxis <toots at rastageeks.org>
-Standards-Version: 3.7.2
-Homepage: http://rt2x00.serialmonkey.com/
-Vcs-Svn: svn://svn.debian.org/svn/pkg-ralink/unstable/rt2570
-Vcs-Browser: http://svn.debian.org/wsvn/pkg-ralink/unstable/rt2570
-
-Package: rt2570-source
-Architecture: all
-Depends: debhelper (>= 4.0), module-assistant
-Suggests: gcc-3.3
-Description: source for rt2570 wireless network driver
- This package provides source code for the rt2570 driver for Linux.
- This driver supports USB wireless network cards with the Ralink
- RT2500USB chipset.  An alternate driver, rt2500usb, is available in
- the rt2x00-source package and in the Linux kernel from version
- 2.6.24.
- .
- In order to compile the driver you need the kernel sources (or
- the linux-headers for the linux-image packages from Debian). For
- compile instructions look into /usr/share/doc/rt2570-source/README.Debian
- or simply use the module-assistant utility.

Copied: tags/rt2570-1.1.0+cvs20070927-1/debian/control (from rev 84, unstable/rt2570/debian/control)
===================================================================
--- tags/rt2570-1.1.0+cvs20070927-1/debian/control	                        (rev 0)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/control	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,26 @@
+Source: rt2570
+Section: net
+Priority: extra
+Build-Depends: debhelper (>= 4.0), bzip2, quilt
+Maintainer: Debian Ralink packages maintainers <pkg-ralink-maintainers at lists.alioth.debian.org>
+Uploaders: Aurelien Jarno <aurel32 at debian.org>, Ben Hutchings <ben at decadent.org.uk>, Romain Beauxis <toots at rastageeks.org>
+Standards-Version: 3.7.2
+Homepage: http://rt2x00.serialmonkey.com/
+Vcs-Svn: svn://svn.debian.org/svn/pkg-ralink/unstable/rt2570
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-ralink/unstable/rt2570
+
+Package: rt2570-source
+Architecture: all
+Depends: debhelper (>= 4.0), module-assistant, bzip2
+Suggests: gcc-3.3
+Description: source for rt2570 wireless network driver
+ This package provides source code for the rt2570 driver for Linux.
+ This driver supports USB wireless network cards with the Ralink
+ RT2500USB chipset.  An alternate driver, rt2500usb, is available in
+ the rt2x00-source package and in the Linux kernel from version
+ 2.6.24.
+ .
+ In order to compile the driver you need the kernel sources (or
+ the linux-headers for the linux-image packages from Debian). For
+ compile instructions look into /usr/share/doc/rt2570-source/README.Debian
+ or simply use the module-assistant utility.

Copied: tags/rt2570-1.1.0+cvs20070927-1/debian/patches/004_fix_mlme_queue_locking.diff (from rev 83, unstable/rt2570/debian/patches/004_fix_mlme_queue_locking.diff)
===================================================================
--- tags/rt2570-1.1.0+cvs20070927-1/debian/patches/004_fix_mlme_queue_locking.diff	                        (rev 0)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/patches/004_fix_mlme_queue_locking.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,250 @@
+--- rt2570.orig/Module/mlme.c
++++ rt2570/Module/mlme.c
+@@ -242,7 +242,6 @@
+ 		}
+ 
+ 		pAd->Mlme.Running = FALSE;
+-		NdisAllocateSpinLock(&pAd->Mlme.TaskLock);
+ 
+ 		// initialize the two tables
+ 		// MacTableInit(pAd);
+@@ -350,19 +349,18 @@
+ 
+ 	// Only accept MLME and Frame from peer side, no other
+ 	// (control/data) frame should get into this state machine
+-	NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
++	NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
+ 	if(pAd->Mlme.Running)
+ 	{
+-	    NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++	    NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 	    return;
+ 	}
+-	else
+-	{
+-	    pAd->Mlme.Running = TRUE;
+-	}
+-	NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++	pAd->Mlme.Running = TRUE;
++
++	while (MlmeGetHead(&pAd->Mlme.Queue, &Elem)) {
++		smp_read_barrier_depends();
++		if (!Elem->Occupied) break;
+ 
+-	while (TRUE) {
+ 		if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS) ||
+ 			RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS) ||
+ 			RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_REMOVE_IN_PROGRESS))
+@@ -371,18 +369,10 @@
+ 			break;
+ 		}
+ 
+-		NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
+-		if (!MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
+-		    NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+-		    break;
+-		}
+-	    NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+-
+-		if (pAd->PortCfg.BssType == BSS_MONITOR)
+-			continue;
++		NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 
+ 		//From message type, determine which state machine I should drive
+-		switch (Elem->Machine)
++		if (pAd->PortCfg.BssType != BSS_MONITOR) switch (Elem->Machine)
+ 		{
+ 			case ASSOC_STATE_MACHINE:
+ 			    StateMachinePerformAction(pAd, &pAd->Mlme.AssocMachine, Elem);
+@@ -408,8 +398,10 @@
+ 		} // end of switch
+ 
+ 		// free MLME element
++		smp_mb();
+ 		Elem->Occupied = FALSE;
+-		Elem->MsgLen = 0;
++		NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
++		MlmeDequeue(&pAd->Mlme.Queue);
+ 	}
+ 
+ 	if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS))
+@@ -441,9 +433,8 @@
+ 		RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS);
+ 	}
+ 
+-	NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
+ 	pAd->Mlme.Running = FALSE;
+-	NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++	NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 
+ }
+ 
+@@ -465,31 +456,26 @@
+ 	RTMPCancelTimer(&pAd->Mlme.SyncAux.BeaconTimer);
+ 	RTMPCancelTimer(&pAd->Mlme.SyncAux.ScanTimer);
+ 
+-	NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
++	NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
+ 	if(pAd->Mlme.Running)
+ 	{
+-	    NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++	    NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 	    return;
+ 	}
+ 	else
+ 	{
+ 	    pAd->Mlme.Running = TRUE;
+ 	}
+-	NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
+ 
+ 	// Remove all Mlme queues elements
+-    NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
+-	while (MlmeDequeue(&pAd->Mlme.Queue, &Elem)) {
+-	    // free MLME element
+-	    Elem->Occupied = FALSE;
+-	    Elem->MsgLen = 0;
++	while (MlmeGetHead(&pAd->Mlme.Queue, &Elem)) {
++		MlmeDequeue(&pAd->Mlme.Queue);
++		Elem->Occupied = FALSE;
+ 	}
+-    NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 
+ 	// Remove running state
+-	NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
+ 	pAd->Mlme.Running = FALSE;
+-	NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++	NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 
+ 	RTUSBCleanUpMLMEWaitQueue(pAd);
+ 	RTUSBCleanUpMLMEBulkOutQueue(pAd);
+@@ -2793,11 +2779,12 @@
+ 	    NdisReleaseSpinLock(&Queue->Lock);
+ 		DBGPRINT(RT_DEBUG_INFO,"MlmeEnqueue, num=%d\n",Queue->Num);
+ 
+-		Queue->Entry[Tail].Occupied = TRUE;
+ 		Queue->Entry[Tail].Machine = Machine;
+ 		Queue->Entry[Tail].MsgType = MsgType;
+ 		Queue->Entry[Tail].MsgLen  = MsgLen;
+ 		memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
++		smp_wmb();
++		Queue->Entry[Tail].Occupied = TRUE;
+ 	}
+ 	return TRUE;
+ }
+@@ -2870,19 +2857,20 @@
+     DBGPRINT(RT_DEBUG_INFO, "MlmeEnqueueForRecv, num=%d\n",Queue->Num);
+ 
+     // OK, we got all the informations, it is time to put things into queue
+-    Queue->Entry[Tail].Occupied = TRUE;
+     Queue->Entry[Tail].Machine = Machine;
+     Queue->Entry[Tail].MsgType = MsgType;
+     Queue->Entry[Tail].MsgLen  = MsgLen;
+ 
+     Queue->Entry[Tail].Rssi = Rssi;
+     memcpy(Queue->Entry[Tail].Msg, Msg, MsgLen);
++    smp_wmb();
++    Queue->Entry[Tail].Occupied = TRUE;
+ 
+ 	RTUSBMlmeUp(pAd, (&(pAd->mlme_semaphore)));
+ 
+     return TRUE;
+ }
+-/*! \brief   Dequeue a message from the MLME Queue
++/*! \brief   Get the first message from the MLME Queue
+  * 			WARNING: Must be call with Mlme.Queue.Lock held
+  *  \param  *Queue    The MLME Queue
+  *  \param  *Elem     The message dequeued from MLME Queue
+@@ -2893,15 +2881,36 @@
+  IRQL = DISPATCH_LEVEL
+ 
+  */
+-BOOLEAN MlmeDequeue(
++BOOLEAN MlmeGetHead(
+     IN MLME_QUEUE *Queue,
+     OUT MLME_QUEUE_ELEM **Elem)
+ {
+ 	if (Queue->Num == 0)
+ 		return FALSE; //Empty
+ 
+-    *Elem = &Queue->Entry[Queue->Head++];
+-    Queue->Head %= MAX_LEN_OF_MLME_QUEUE;
++    *Elem = &Queue->Entry[Queue->Head];
++    DBGPRINT(RT_DEBUG_INFO, "MlmeDequeue, num=%d\n",Queue->Num);
++
++    return TRUE;
++}
++
++/*! \brief   Remove the first message from the MLME Queue
++ * 			WARNING: Must be call with Mlme.Queue.Lock held
++ *  \param  *Queue    The MLME Queue
++ *  \return  TRUE if a message was remove, FALSE if the queue was empty
++ *  \pre
++ *  \post
++
++ IRQL = DISPATCH_LEVEL
++
++ */
++BOOLEAN MlmeDequeue(
++    IN MLME_QUEUE *Queue)
++{
++	if (Queue->Num == 0)
++		return FALSE; //Empty
++
++    Queue->Head = (Queue->Head + 1) % MAX_LEN_OF_MLME_QUEUE;
+     Queue->Num--;
+     DBGPRINT(RT_DEBUG_INFO, "MlmeDequeue, num=%d\n",Queue->Num);
+ 
+@@ -2918,15 +2927,14 @@
+ 
+ 	RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS);
+ 
+-	NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
++	NdisAcquireSpinLock(&pAd->Mlme.Queue.Lock);
+ 	if(pAd->Mlme.Running)
+ 	{
+ 		DBGPRINT(RT_DEBUG_TRACE, "<== MlmeRestartStateMachine, Mlme is Runing[Queue=%d]!\n", pAd->Mlme.Queue.Num);
+-		NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++		NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 		return;
+ 	}
+ 	pAd->Mlme.Running = TRUE;
+-	NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
+ 
+ 	MlmeQueueDestroy(&pAd->Mlme.Queue);
+ 
+@@ -2956,9 +2964,8 @@
+ 	RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS);
+ 
+ 	// Remove running state
+-	NdisAcquireSpinLock(&pAd->Mlme.TaskLock);
+ 	pAd->Mlme.Running = FALSE;
+-	NdisReleaseSpinLock(&pAd->Mlme.TaskLock);
++	NdisReleaseSpinLock(&pAd->Mlme.Queue.Lock);
+ 
+ 	DBGPRINT(RT_DEBUG_TRACE, "<== MlmeRestartStateMachine\n");
+ }
+--- rt2570.orig/Module/rt2570sw.h
++++ rt2570/Module/rt2570sw.h
+@@ -1077,7 +1077,6 @@
+     ULONG                   ChannelQuality;  // 0..100, Channel Quality Indication for Roaming
+ 
+     BOOLEAN                 Running;
+-    spinlock_t          TaskLock;
+     MLME_QUEUE              Queue;
+ 
+     UINT                    ShiftReg;
+@@ -2341,10 +2340,13 @@
+     IN ULONG MsgLen,
+     IN PVOID Msg);
+ 
+-BOOLEAN MlmeDequeue(
++BOOLEAN MlmeGetHead(
+     IN MLME_QUEUE *Queue,
+     OUT MLME_QUEUE_ELEM **Elem);
+ 
++BOOLEAN MlmeDequeue(
++    IN MLME_QUEUE *Queue);
++
+ #if 1
+ VOID	MlmeRestartStateMachine(
+     IN	PRT2570ADAPTER	pAd);

Copied: tags/rt2570-1.1.0+cvs20070927-1/debian/patches/005_fix_delays.diff (from rev 83, unstable/rt2570/debian/patches/005_fix_delays.diff)
===================================================================
--- tags/rt2570-1.1.0+cvs20070927-1/debian/patches/005_fix_delays.diff	                        (rev 0)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/patches/005_fix_delays.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,42 @@
+--- rt2570.orig/Module/rt2570sw.h
++++ rt2570/Module/rt2570sw.h
+@@ -384,7 +384,7 @@
+ #define CMD_SingleRead 0x0C
+ #define CMD_SingleWrite 0x0D
+ 
+-#define NdisMSleep	mdelay
++#define NdisMSleep	msleep
+ 
+ 
+ //  Assert MACRO to make sure program running
+--- rt2570.orig/Module/rtusb_main.c
++++ rt2570/Module/rtusb_main.c
+@@ -847,7 +847,7 @@
+ 								}
+ 							}
+ 
+-							NdisMSleep(500000);
++							NdisMSleep(500);
+ 						}
+ 
+ 						NICResetFromError(pAdapter);
+--- rt2570.orig/Module/rtusb_bulk.c
++++ rt2570/Module/rtusb_bulk.c
+@@ -1386,7 +1386,7 @@
+ 			usb_kill_urb(pMLMEContext->pUrb);
+ 
+ 			// Sleep 200 microsecs to give cancellation time to work
+-			NdisMSleep(200);
++			udelay(200);
+ 		}
+ 	}
+ 
+@@ -1405,7 +1405,7 @@
+ 			usb_kill_urb(pBeaconContext->pUrb);
+ 
+ 			// Sleep 200 microsecs to give cancellation time to work
+-			NdisMSleep(200);
++			udelay(200);
+ 		}
+ 	}
+ 

Copied: tags/rt2570-1.1.0+cvs20070927-1/debian/patches/006_fix_probe_148f_2573.diff (from rev 83, unstable/rt2570/debian/patches/006_fix_probe_148f_2573.diff)
===================================================================
--- tags/rt2570-1.1.0+cvs20070927-1/debian/patches/006_fix_probe_148f_2573.diff	                        (rev 0)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/patches/006_fix_probe_148f_2573.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,39 @@
+--- rt2570.orig/Module/rtusb_main.c
++++ rt2570/Module/rtusb_main.c
+@@ -1853,6 +1853,7 @@
+ {
+ 	struct usb_device *dev = interface_to_usbdev(intf);
+ 	PRT2570ADAPTER pAdapter = (PRT2570ADAPTER)NULL;
++	USHORT version = 0;
+ 	int i;
+ 	struct net_device *netdev;
+ 	int res = -ENOMEM;
+@@ -1881,16 +1883,25 @@
+ 	{
+ 		//if (!(pAdapter->net = init_etherdev(0, 0) )) {
+ 		printk("alloc_etherdev failed\n");
+-
+-		module_put(THIS_MODULE);
++		usb_put_dev(dev);
+ 		return res;
+ 	}
+ 
+ 	pAdapter = netdev->priv;
++	pAdapter->usb = dev;
++
++	RTUSBReadMACRegister(pAdapter, MAC_CSR0, &version);
++	if (version == 0 || (le16_to_cpu(version) & 0xfff0) != 0)
++	{
++		printk("ASIC version not matching\n");
++		kfree(netdev);
++		usb_put_dev(dev);
++		return -ENODEV;
++	}
++
+ 	pAdapter->net = netdev;
+ 	netif_stop_queue(netdev);
+ 	pAdapter->config = &dev->config->desc;
+-	pAdapter->usb = dev;
+ 	SET_MODULE_OWNER(pAdapter->net);
+ 	ether_setup(pAdapter->net);
+ 	netdev->open = usb_rtusb_open;

Deleted: tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series
===================================================================
--- unstable/rt2570/debian/patches/series	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series	2007-11-12 00:30:15 UTC (rev 86)
@@ -1 +0,0 @@
-000_if_name.diff -p0

Copied: tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series (from rev 83, unstable/rt2570/debian/patches/series)
===================================================================
--- tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series	                        (rev 0)
+++ tags/rt2570-1.1.0+cvs20070927-1/debian/patches/series	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,4 @@
+000_if_name.diff -p0
+004_fix_mlme_queue_locking.diff
+005_fix_delays.diff
+006_fix_probe_148f_2573.diff

Copied: tags/rt2x00-2.0.12+git20071103 (from rev 79, unstable/rt2x00)

Deleted: tags/rt2x00-2.0.12+git20071103/debian/changelog
===================================================================
--- unstable/rt2x00/debian/changelog	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2x00-2.0.12+git20071103/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,122 +0,0 @@
-rt2x00 (2.0.9-2) unstable; urgency=low
-
-  * Fixed probing for USB devices with ambiguous id
-  * Added suggestion of rutilt
-
- -- Ben Hutchings <ben at decadent.org.uk>  Wed, 31 Oct 2007 23:43:08 +0000
-
-rt2x00 (2.0.9-1) unstable; urgency=low
-
-  * New version from git
-
- -- Ben Hutchings <ben at decadent.org.uk>  Sun,  7 Oct 2007 01:01:44 +0100
-
-rt2x00 (2.0.8+git20070918-2) unstable; urgency=low
-
-  * Fixed unversioned import of symbols from eeprom_93cx6 in PCI drivers
-    which would taint the kernel
-  * Added hardware flags needed in mainline kernels (closes: bug#444771)
-
- -- Ben Hutchings <ben at decadent.org.uk>  Sat,  6 Oct 2007 16:19:28 +0100
-
-rt2x00 (2.0.8+git20070918-1) unstable; urgency=low
-
-  * New version from git (closes: bug#421747, bug#422685)
-
- -- Ben Hutchings <ben at decadent.org.uk>  Sun, 23 Sep 2007 22:00:31 +0100
-
-rt2x00 (0cvs20070219-2) unstable; urgency=low
-
-  * Switch maintainer to "Debian Ralink packages maintainers".
-  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
-  * Use quilt for patch management.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  6 Mar 2007 00:23:48 +0100
-
-rt2x00 (0cvs20070219-1) unstable; urgency=low
-
-  * New CVS version
-    - Fix kernel panic while loading the module (closes: bug#409821).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Mon, 19 Feb 2007 01:43:08 +0100
-
-rt2x00 (0cvs20070121-1) unstable; urgency=low
-
-  * Switch Maintainer and Uploader.
-  * New CVS version
-    - Fix build on >= 2.6.20-rc5 kernels (closes: bug#406827).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 21 Jan 2007 23:40:26 +0100
-
-rt2x00 (0cvs20070104.1-1) unstable; urgency=low
-
-  * New CVS version.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu,  4 Jan 2007 19:19:27 +0100
-
-rt2x00 (0cvs20070104-1) unstable; urgency=low
-
-  * New CVS version.
-  * Disable CONFIG_RT2X00_DEBUGFS.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu,  4 Jan 2007 11:51:54 +0100
-
-rt2x00 (0cvs20070103-1) unstable; urgency=low
-
-  * New CVS version.
-  * Use bzip2 instead of gzip to compress the sources.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 21:13:59 +0100
-
-rt2x00 (0cvs20061231-1) unstable; urgency=low
-
-  * New CVS version.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:40:54 +0100
-
-rt2x00 (0cvs20061202-1) unstable; urgency=low
-
-  * New CVS version:
-    - rt2500 PCI should be able to associate in WPA2-PSK-CCMP mode (closes:
-      bug#397727).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun,  3 Dec 2006 02:06:51 +0100
-
-rt2x00 (0cvs20060928-1) unstable; urgency=low
-
-  * New CVS version.
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu, 28 Sep 2006 12:04:00 +0200
-
-rt2x00 (0cvs20060801-4) unstable; urgency=low
-
-  * Added a note that you need a 2.6.17 or later kernel (closes: 
-    bug#383519). 
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sun, 20 Aug 2006 13:39:16 +0200
-
-rt2x00 (0cvs20060801-3) unstable; urgency=low
-
-  * Include the new crc-itu-c in the built package (closes: bug#381519).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Sat,  5 Aug 2006 22:04:37 +0200
-
-rt2x00 (0cvs20060801-2) unstable; urgency=low
-
-  * Pass the location of the kernel sources for the clean rule
-    (closes: bug#379753).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Thu,  3 Aug 2006 17:40:27 +0200
-
-rt2x00 (0cvs20060801-1) unstable; urgency=low
-
-  * New CVS version.
-  * Enhanced description (closes: bug#379762).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:36:24 +0200
-
-rt2x00 (0cvs20060721-1) unstable; urgency=low
-
-  * Initial Release (closes: bug#362040).
-
- -- Aurelien Jarno <aurel32 at debian.org>  Fri, 21 Jul 2006 17:27:45 +0200

Copied: tags/rt2x00-2.0.12+git20071103/debian/changelog (from rev 85, unstable/rt2x00/debian/changelog)
===================================================================
--- tags/rt2x00-2.0.12+git20071103/debian/changelog	                        (rev 0)
+++ tags/rt2x00-2.0.12+git20071103/debian/changelog	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,129 @@
+rt2x00 (2.0.12+git20071103-1) unstable; urgency=low
+
+  * New version from git
+  * Added suggestion of firmware packages needed for some drivers
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 04 Nov 2007 23:16:53 +0000
+
+rt2x00 (2.0.9-2) unstable; urgency=low
+
+  * Fixed probing for USB devices with ambiguous id
+  * Added suggestion of rutilt
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Wed, 31 Oct 2007 23:43:08 +0000
+
+rt2x00 (2.0.9-1) unstable; urgency=low
+
+  * New version from git
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun,  7 Oct 2007 01:01:44 +0100
+
+rt2x00 (2.0.8+git20070918-2) unstable; urgency=low
+
+  * Fixed unversioned import of symbols from eeprom_93cx6 in PCI drivers
+    which would taint the kernel
+  * Added hardware flags needed in mainline kernels (closes: bug#444771)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sat,  6 Oct 2007 16:19:28 +0100
+
+rt2x00 (2.0.8+git20070918-1) unstable; urgency=low
+
+  * New version from git (closes: bug#421747, bug#422685)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 23 Sep 2007 22:00:31 +0100
+
+rt2x00 (0cvs20070219-2) unstable; urgency=low
+
+  * Switch maintainer to "Debian Ralink packages maintainers".
+  * Move Ben Hutchings to uploaders, and add Romain Beauxis to uploaders.
+  * Use quilt for patch management.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  6 Mar 2007 00:23:48 +0100
+
+rt2x00 (0cvs20070219-1) unstable; urgency=low
+
+  * New CVS version
+    - Fix kernel panic while loading the module (closes: bug#409821).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Mon, 19 Feb 2007 01:43:08 +0100
+
+rt2x00 (0cvs20070121-1) unstable; urgency=low
+
+  * Switch Maintainer and Uploader.
+  * New CVS version
+    - Fix build on >= 2.6.20-rc5 kernels (closes: bug#406827).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 21 Jan 2007 23:40:26 +0100
+
+rt2x00 (0cvs20070104.1-1) unstable; urgency=low
+
+  * New CVS version.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu,  4 Jan 2007 19:19:27 +0100
+
+rt2x00 (0cvs20070104-1) unstable; urgency=low
+
+  * New CVS version.
+  * Disable CONFIG_RT2X00_DEBUGFS.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu,  4 Jan 2007 11:51:54 +0100
+
+rt2x00 (0cvs20070103-1) unstable; urgency=low
+
+  * New CVS version.
+  * Use bzip2 instead of gzip to compress the sources.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Wed,  3 Jan 2007 21:13:59 +0100
+
+rt2x00 (0cvs20061231-1) unstable; urgency=low
+
+  * New CVS version.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 31 Dec 2006 18:40:54 +0100
+
+rt2x00 (0cvs20061202-1) unstable; urgency=low
+
+  * New CVS version:
+    - rt2500 PCI should be able to associate in WPA2-PSK-CCMP mode (closes:
+      bug#397727).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun,  3 Dec 2006 02:06:51 +0100
+
+rt2x00 (0cvs20060928-1) unstable; urgency=low
+
+  * New CVS version.
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu, 28 Sep 2006 12:04:00 +0200
+
+rt2x00 (0cvs20060801-4) unstable; urgency=low
+
+  * Added a note that you need a 2.6.17 or later kernel (closes: 
+    bug#383519). 
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sun, 20 Aug 2006 13:39:16 +0200
+
+rt2x00 (0cvs20060801-3) unstable; urgency=low
+
+  * Include the new crc-itu-c in the built package (closes: bug#381519).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Sat,  5 Aug 2006 22:04:37 +0200
+
+rt2x00 (0cvs20060801-2) unstable; urgency=low
+
+  * Pass the location of the kernel sources for the clean rule
+    (closes: bug#379753).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Thu,  3 Aug 2006 17:40:27 +0200
+
+rt2x00 (0cvs20060801-1) unstable; urgency=low
+
+  * New CVS version.
+  * Enhanced description (closes: bug#379762).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Tue,  1 Aug 2006 16:36:24 +0200
+
+rt2x00 (0cvs20060721-1) unstable; urgency=low
+
+  * Initial Release (closes: bug#362040).
+
+ -- Aurelien Jarno <aurel32 at debian.org>  Fri, 21 Jul 2006 17:27:45 +0200

Deleted: tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff
===================================================================
--- unstable/rt2x00/debian/patches/002_out_of_tree.diff	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,100 +0,0 @@
---- rt2x00.orig/drivers/net/wireless/rt2x00/Makefile
-+++ rt2x00/drivers/net/wireless/rt2x00/Makefile
-@@ -1,3 +1,12 @@
-+# If KERNELRELEASE is defined, we've been invoked from the
-+# kernel build system and can use its language.
-+ifneq ($(KERNELRELEASE),)
-+
-+# Include rt2x00 config
-+include $(M)/config
-+
-+CPPFLAGS += -I$(M)/../../../../include
-+
- rt2x00lib-objs := rt2x00dev.o rt2x00mac.o rt2x00config.o
- 
- ifeq ($(CONFIG_RT2X00_LIB_DEBUGFS),y)
-@@ -20,3 +29,29 @@
- obj-$(CONFIG_RT61PCI)		+= rt61pci.o
- obj-$(CONFIG_RT2500USB)		+= rt2500usb.o
- obj-$(CONFIG_RT73USB)		+= rt73usb.o
-+
-+# Otherwise we were called directly from the command
-+# line; invoke the kernel build system.
-+else
-+
-+KSRC ?= /lib/modules/$(shell uname -r)/build
-+PWD := $(shell pwd)
-+
-+default: config.h
-+	$(MAKE) -C $(KSRC) M=$(PWD) modules
-+
-+config.h: config
-+	awk -F = > config.h < config '/^CONFIG.*$\/ \
-+	{ \
-+		if($$2 == "y") { \
-+			print "#define " $$1; \
-+		} else { \
-+			print "#undef " $$1; \
-+		} \
-+	}'
-+
-+clean:
-+	$(MAKE) -C $(KSRC) M=$(PWD) clean
-+	rm -f config.h
-+
-+endif
---- /dev/null
-+++ rt2x00/drivers/net/wireless/rt2x00/config
-@@ -0,0 +1,16 @@
-+CONFIG_RT2X00=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_PCI=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_RFKILL=n
-+CONFIG_RT2400PCI=m
-+CONFIG_RT2400PCI_RFKILL=n
-+CONFIG_RT2500PCI=m
-+CONFIG_RT2500PCI_RFKILL=n
-+CONFIG_RT61PCI=m
-+CONFIG_RT61PCI_RFKILL=n
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_DEBUGFS=y
-+CONFIG_RT2X00_DEBUG=y
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -38,6 +38,8 @@
- #include "rt2x00reg.h"
- #include "rt2x00ring.h"
- 
-+#include "config.h"
-+
- /*
-  * Module information.
-  * DRV_NAME should be set within the individual module source files.
---- /dev/null
-+++ rt2x00/drivers/misc/Makefile
-@@ -0,0 +1,22 @@
-+# If KERNELRELEASE is defined, we've been invoked from the
-+# kernel build system and can use its language.
-+ifneq ($(KERNELRELEASE),)
-+
-+CPPFLAGS += -I$(M)/../../include
-+
-+obj-m      += eeprom_93cx6.o
-+
-+# Otherwise we were called directly from the command
-+# line; invoke the kernel build system.
-+else
-+
-+KSRC ?= /lib/modules/$(shell uname -r)/build
-+PWD := $(shell pwd)
-+
-+default:
-+	$(MAKE) -C $(KSRC) M=$(PWD) modules
-+
-+clean:
-+	$(MAKE) -C $(KSRC) M=$(PWD) clean
-+
-+endif

Copied: tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff (from rev 85, unstable/rt2x00/debian/patches/002_out_of_tree.diff)
===================================================================
--- tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff	                        (rev 0)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/002_out_of_tree.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,100 @@
+--- rt2x00.orig/drivers/net/wireless/rt2x00/Makefile
++++ rt2x00/drivers/net/wireless/rt2x00/Makefile
+@@ -1,3 +1,12 @@
++# If KERNELRELEASE is defined, we've been invoked from the
++# kernel build system and can use its language.
++ifneq ($(KERNELRELEASE),)
++
++# Include rt2x00 config
++include $(M)/config
++
++CPPFLAGS += -I$(M)/../../../../include
++
+ rt2x00lib-objs := rt2x00dev.o rt2x00mac.o rt2x00config.o
+ 
+ ifeq ($(CONFIG_RT2X00_LIB_DEBUGFS),y)
+@@ -20,3 +29,29 @@
+ obj-$(CONFIG_RT61PCI)		+= rt61pci.o
+ obj-$(CONFIG_RT2500USB)		+= rt2500usb.o
+ obj-$(CONFIG_RT73USB)		+= rt73usb.o
++
++# Otherwise we were called directly from the command
++# line; invoke the kernel build system.
++else
++
++KSRC ?= /lib/modules/$(shell uname -r)/build
++PWD := $(shell pwd)
++
++default: config.h
++	$(MAKE) -C $(KSRC) M=$(PWD) modules
++
++config.h: config
++	awk -F = > config.h < config '/^CONFIG.*$\/ \
++	{ \
++		if($$2 == "y") { \
++			print "#define " $$1; \
++		} else { \
++			print "#undef " $$1; \
++		} \
++	}'
++
++clean:
++	$(MAKE) -C $(KSRC) M=$(PWD) clean
++	rm -f config.h
++
++endif
+--- /dev/null
++++ rt2x00/drivers/net/wireless/rt2x00/config
+@@ -0,0 +1,16 @@
++CONFIG_RT2X00=m
++CONFIG_RT2X00_LIB=m
++CONFIG_RT2X00_LIB_PCI=m
++CONFIG_RT2X00_LIB_USB=m
++CONFIG_RT2X00_LIB_FIRMWARE=y
++CONFIG_RT2X00_LIB_RFKILL=n
++CONFIG_RT2400PCI=m
++CONFIG_RT2400PCI_RFKILL=n
++CONFIG_RT2500PCI=m
++CONFIG_RT2500PCI_RFKILL=n
++CONFIG_RT61PCI=m
++CONFIG_RT61PCI_RFKILL=n
++CONFIG_RT2500USB=m
++CONFIG_RT73USB=m
++CONFIG_RT2X00_LIB_DEBUGFS=y
++CONFIG_RT2X00_DEBUG=y
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
+@@ -39,6 +39,8 @@
+ #include "rt2x00reg.h"
+ #include "rt2x00ring.h"
+ 
++#include "config.h"
++
+ /*
+  * Module information.
+  * DRV_NAME should be set within the individual module source files.
+--- /dev/null
++++ rt2x00/drivers/misc/Makefile
+@@ -0,0 +1,22 @@
++# If KERNELRELEASE is defined, we've been invoked from the
++# kernel build system and can use its language.
++ifneq ($(KERNELRELEASE),)
++
++CPPFLAGS += -I$(M)/../../include
++
++obj-m      += eeprom_93cx6.o
++
++# Otherwise we were called directly from the command
++# line; invoke the kernel build system.
++else
++
++KSRC ?= /lib/modules/$(shell uname -r)/build
++PWD := $(shell pwd)
++
++default:
++	$(MAKE) -C $(KSRC) M=$(PWD) modules
++
++clean:
++	$(MAKE) -C $(KSRC) M=$(PWD) clean
++
++endif

Deleted: tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff
===================================================================
--- unstable/rt2x00/debian/patches/003_workaround_mac80211_changes.diff	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,688 +0,0 @@
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -31,6 +31,7 @@
- #include <linux/skbuff.h>
- #include <linux/workqueue.h>
- #include <linux/firmware.h>
-+#include <linux/version.h>
- 
- #include <net/mac80211.h>
- 
-@@ -40,6 +41,76 @@
- 
- #include "config.h"
- 
-+/* Version compatibility workarounds */
-+
-+#ifndef IEEE80211_TXCTL_LONG_RETRY_LIMIT
-+#define IEEE80211_TXCTL_LONG_RETRY_LIMIT 0
-+/* These were changed around the same time as
-+ * IEEE80211_TXCTL_LONG_RETRY_LIMIT was added in wireless-dev, but we
-+ * can't detect this change directly using the preprocessor
-+ */
-+#define ieee80211_rts_get(hw, if_id, frame, frame_len, frame_txctl, rts) \
-+	ieee80211_rts_get(hw, frame, frame_len, frame_txctl, rts)
-+#define ieee80211_ctstoself_get(hw, if_id, frame, frame_len, frame_txctl, cts) \
-+	ieee80211_ctstoself_get(hw, frame, frame_len, frame_txctl, cts)
-+#endif
-+
-+/* These negative capability flags have been removed in wireless-dev */
-+#ifndef IEEE80211_HW_HOST_GEN_BEACON
-+#define IEEE80211_HW_HOST_GEN_BEACON 0
-+#endif
-+#ifndef IEEE80211_HW_WEP_INCLUDE_IV
-+#define IEEE80211_HW_WEP_INCLUDE_IV 0
-+#endif
-+#ifndef IEEE80211_HW_DATA_NULLFUNC_ACK
-+#define IEEE80211_HW_DATA_NULLFUNC_ACK 0
-+#endif
-+#ifndef IEEE80211_HW_NO_TKIP_WMM_HWACCEL
-+#define IEEE80211_HW_NO_TKIP_WMM_HWACCEL 0
-+#endif
-+
-+/* The filter interface has been changed in wireless-dev */
-+#ifdef IEEE80211_HW_MONITOR_DURING_OPER
-+#define RT2X00_ADAPT_OLD_FILTER_API
-+enum ieee80211_filter_flags {
-+	FIF_PROMISC_IN_BSS      = 1<<0,
-+	FIF_ALLMULTI            = 1<<1,
-+	FIF_FCSFAIL             = 1<<2,
-+	FIF_PLCPFAIL            = 1<<3,
-+	FIF_BCN_PRBRESP_PROMISC = 1<<4,
-+	FIF_CONTROL             = 1<<5,
-+	FIF_OTHER_BSS           = 1<<6,
-+};
-+enum {
-+	RX_FLAG_FAILED_FCS_CRC  = 0,
-+	RX_FLAG_FAILED_PLCP_CRC = 0,
-+};
-+struct dev_addr_list;
-+#else
-+#define IEEE80211_HW_MONITOR_DURING_OPER 0
-+#define IEEE80211_HW_NO_PROBE_FILTERING 0
-+#endif
-+
-+#ifndef DECLARE_MAC_BUF
-+#define DECLARE_MAC_BUF(var) char var[18] __maybe_unused
-+static inline
-+char *print_mac(char *buf, const u8 *addr)
-+{
-+	sprintf(buf, MAC_FMT,
-+		addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
-+	return buf;
-+}
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-+static inline
-+void cancel_delayed_work_sync(struct delayed_work *work)
-+{
-+	if (cancel_delayed_work(work))
-+		cancel_work_sync(&work->work);
-+}
-+#endif
-+
- /*
-  * Module information.
-  * DRV_NAME should be set within the individual module source files.
-@@ -315,6 +386,19 @@
- 	 * Store the packet filter mode for the current interface.
- 	 */
- 	unsigned int filter;
-+
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	/*
-+	 * Monitor mode count, the number of interfaces
-+	 * in monitor mode that that have been added.
-+	 */
-+	unsigned short monitor_count;
-+
-+	/*
-+	 * Interface filter passed to config_packet_filter.
-+	 */
-+	unsigned int iff_filter;
-+#endif
- };
- 
- /* Magic filter for configure_filter to apply existing filter */
-@@ -332,6 +416,13 @@
- 	return intf->type == type;
- }
- 
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+static inline int is_monitor_present(struct interface *intf)
-+{
-+	return !!intf->monitor_count;
-+}
-+#endif
-+
- /*
-  * Details about the supported modes, rates and channels
-  * of a particular chipset. This is used by rt2x00lib
-@@ -417,8 +508,12 @@
- 	 */
- 	void (*config_mac_addr) (struct rt2x00_dev *rt2x00dev, u8 *mac);
- 	void (*config_bssid) (struct rt2x00_dev *rt2x00dev, u8 *bssid);
--	void (*config_packet_filter) (struct rt2x00_dev *rt2x00dev,
--				      const unsigned int filter);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	void (*configure_filter) (struct ieee80211_hw *hw,
-+				  unsigned int changed_flags,
-+				  unsigned int *total_flags,
-+				  int mc_count, struct dev_addr_list *mc_list);
-+#endif
- 	void (*config_type) (struct rt2x00_dev *rt2x00dev, const int type);
- 	void (*config) (struct rt2x00_dev *rt2x00dev, const unsigned int flags,
- 			struct ieee80211_conf *conf);
-@@ -768,7 +863,11 @@
- int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
- 		 struct ieee80211_tx_control *control);
- int rt2x00mac_start(struct ieee80211_hw *hw);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+int rt2x00mac_stop(struct ieee80211_hw *hw);
-+#else
- void rt2x00mac_stop(struct ieee80211_hw *hw);
-+#endif
- int rt2x00mac_add_interface(struct ieee80211_hw *hw,
- 			    struct ieee80211_if_init_conf *conf);
- void rt2x00mac_remove_interface(struct ieee80211_hw *hw,
-@@ -776,6 +875,10 @@
- int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf);
- int rt2x00mac_config_interface(struct ieee80211_hw *hw, int if_id,
- 			       struct ieee80211_if_conf *conf);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+void rt2x00mac_set_multicast_list(struct ieee80211_hw *hw,
-+				  unsigned short flags, int mc_count);
-+#endif
- int rt2x00mac_get_stats(struct ieee80211_hw *hw,
- 			struct ieee80211_low_level_stats *stats);
- int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2400pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2400pci.c
-@@ -296,8 +296,13 @@
- 	 * Enable synchronisation.
- 	 */
- 	rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
--	rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
--	rt2x00_set_field32(&reg, CSR14_TBCN, 1);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	if (is_interface_present(&rt2x00dev->interface))
-+#endif
-+	{
-+		rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
-+		rt2x00_set_field32(&reg, CSR14_TBCN, 1);
-+	}
- 	rt2x00_set_field32(&reg, CSR14_BEACON_GEN, 0);
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- 	    is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1415,7 +1420,14 @@
- 	/*
- 	 * Initialize all hw fields.
- 	 */
--	rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
-+	rt2x00dev->hw->flags =
-+	    IEEE80211_HW_HOST_GEN_BEACON |
-+	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
-+	    IEEE80211_HW_WEP_INCLUDE_IV |
-+	    IEEE80211_HW_DATA_NULLFUNC_ACK |
-+	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
-+	    IEEE80211_HW_MONITOR_DURING_OPER |
-+	    IEEE80211_HW_NO_PROBE_FILTERING;
- 	rt2x00dev->hw->extra_tx_headroom = 0;
- 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
- 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -1616,13 +1628,19 @@
- 
- static const struct ieee80211_ops rt2400pci_mac80211_ops = {
- 	.tx			= rt2x00mac_tx,
-+#ifndef RT2X00_ADAPT_OLD_FILTER_API
- 	.start			= rt2x00mac_start,
-+#endif
- 	.stop			= rt2x00mac_stop,
- 	.add_interface		= rt2x00mac_add_interface,
- 	.remove_interface	= rt2x00mac_remove_interface,
- 	.config			= rt2x00mac_config,
- 	.config_interface	= rt2x00mac_config_interface,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.set_multicast_list	= rt2x00mac_set_multicast_list,
-+#else
- 	.configure_filter	= rt2400pci_configure_filter,
-+#endif
- 	.get_stats		= rt2x00mac_get_stats,
- 	.set_retry_limit	= rt2400pci_set_retry_limit,
- 	.conf_tx		= rt2400pci_conf_tx,
-@@ -1651,6 +1669,9 @@
- 	.fill_rxdone		= rt2400pci_fill_rxdone,
- 	.config_mac_addr	= rt2400pci_config_mac_addr,
- 	.config_bssid		= rt2400pci_config_bssid,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.configure_filter	= rt2400pci_configure_filter,
-+#endif
- 	.config_type		= rt2400pci_config_type,
- 	.config			= rt2400pci_config,
- };
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500pci.c
-@@ -300,8 +300,13 @@
- 	 * Enable synchronisation.
- 	 */
- 	rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
--	rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
--	rt2x00_set_field32(&reg, CSR14_TBCN, 1);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	if (is_interface_present(&rt2x00dev->interface))
-+#endif
-+	{
-+		rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
-+		rt2x00_set_field32(&reg, CSR14_TBCN, 1);
-+	}
- 	rt2x00_set_field32(&reg, CSR14_BEACON_GEN, 0);
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- 	    is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1729,7 +1734,14 @@
- 	/*
- 	 * Initialize all hw fields.
- 	 */
--	rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
-+	rt2x00dev->hw->flags =
-+	    IEEE80211_HW_HOST_GEN_BEACON |
-+	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
-+	    IEEE80211_HW_WEP_INCLUDE_IV |
-+	    IEEE80211_HW_DATA_NULLFUNC_ACK |
-+	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
-+	    IEEE80211_HW_MONITOR_DURING_OPER |
-+	    IEEE80211_HW_NO_PROBE_FILTERING;
- 	rt2x00dev->hw->extra_tx_headroom = 0;
- 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
- 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -1928,13 +1940,19 @@
- 
- static const struct ieee80211_ops rt2500pci_mac80211_ops = {
- 	.tx			= rt2x00mac_tx,
-+#ifndef RT2X00_ADAPT_OLD_FILTER_API
- 	.start			= rt2x00mac_start,
-+#endif
- 	.stop			= rt2x00mac_stop,
- 	.add_interface		= rt2x00mac_add_interface,
- 	.remove_interface	= rt2x00mac_remove_interface,
- 	.config			= rt2x00mac_config,
- 	.config_interface	= rt2x00mac_config_interface,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.set_multicast_list	= rt2x00mac_set_multicast_list,
-+#else
- 	.configure_filter	= rt2500pci_configure_filter,
-+#endif
- 	.get_stats		= rt2x00mac_get_stats,
- 	.set_retry_limit	= rt2500pci_set_retry_limit,
- 	.conf_tx		= rt2x00mac_conf_tx,
-@@ -1963,6 +1981,9 @@
- 	.fill_rxdone		= rt2500pci_fill_rxdone,
- 	.config_mac_addr	= rt2500pci_config_mac_addr,
- 	.config_bssid		= rt2500pci_config_bssid,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.configure_filter	= rt2500pci_configure_filter,
-+#endif
- 	.config_type		= rt2500pci_config_type,
- 	.config			= rt2500pci_config,
- };
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -309,8 +309,13 @@
- 	rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg);
- 
- 	rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg);
--	rt2x00_set_field16(&reg, TXRX_CSR19_TSF_COUNT, 1);
--	rt2x00_set_field16(&reg, TXRX_CSR19_TBCN, 1);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	if (is_interface_present(&rt2x00dev->interface))
-+#endif
-+	{
-+	       rt2x00_set_field16(&reg, TXRX_CSR19_TSF_COUNT, 1);
-+	       rt2x00_set_field16(&reg, TXRX_CSR19_TBCN, 1);
-+	}
- 	rt2x00_set_field16(&reg, TXRX_CSR19_BEACON_GEN, 0);
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- 	    is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1501,7 +1506,12 @@
- 	rt2x00dev->hw->flags =
- 	    IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
- 	    IEEE80211_HW_RX_INCLUDES_FCS |
--	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
-+	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
-+	    IEEE80211_HW_WEP_INCLUDE_IV |
-+	    IEEE80211_HW_DATA_NULLFUNC_ACK |
-+	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
-+ 	    IEEE80211_HW_MONITOR_DURING_OPER |
-+ 	    IEEE80211_HW_NO_PROBE_FILTERING;
- 	rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
- 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
- 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -1746,13 +1756,19 @@
- 
- static const struct ieee80211_ops rt2500usb_mac80211_ops = {
- 	.tx			= rt2x00mac_tx,
-+#ifndef RT2X00_ADAPT_OLD_FILTER_API
- 	.start			= rt2x00mac_start,
-+#endif
- 	.stop			= rt2x00mac_stop,
- 	.add_interface		= rt2x00mac_add_interface,
- 	.remove_interface	= rt2x00mac_remove_interface,
- 	.config			= rt2x00mac_config,
- 	.config_interface	= rt2x00mac_config_interface,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.set_multicast_list	= rt2x00mac_set_multicast_list,
-+#else
- 	.configure_filter	= rt2500usb_configure_filter,
-+#endif
- 	.get_stats		= rt2x00mac_get_stats,
- 	.conf_tx		= rt2x00mac_conf_tx,
- 	.get_tx_stats		= rt2x00mac_get_tx_stats,
-@@ -1773,6 +1789,9 @@
- 	.fill_rxdone		= rt2500usb_fill_rxdone,
- 	.config_mac_addr	= rt2500usb_config_mac_addr,
- 	.config_bssid		= rt2500usb_config_bssid,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.configure_filter	= rt2500usb_configure_filter,
-+#endif
- 	.config_type		= rt2500usb_config_type,
- 	.config			= rt2500usb_config,
- };
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt61pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt61pci.c
-@@ -2289,7 +2289,12 @@
- 	 */
- 	rt2x00dev->hw->flags =
- 	    IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
--	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
-+	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
-+	    IEEE80211_HW_WEP_INCLUDE_IV |
-+	    IEEE80211_HW_DATA_NULLFUNC_ACK |
-+	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
-+ 	    IEEE80211_HW_MONITOR_DURING_OPER |
-+ 	    IEEE80211_HW_NO_PROBE_FILTERING;
- 	rt2x00dev->hw->extra_tx_headroom = 0;
- 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
- 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -2521,13 +2526,19 @@
- 
- static const struct ieee80211_ops rt61pci_mac80211_ops = {
- 	.tx			= rt2x00mac_tx,
-+#ifndef RT2X00_ADAPT_OLD_FILTER_API
- 	.start			= rt2x00mac_start,
-+#endif
- 	.stop			= rt2x00mac_stop,
- 	.add_interface		= rt2x00mac_add_interface,
- 	.remove_interface	= rt2x00mac_remove_interface,
- 	.config			= rt2x00mac_config,
- 	.config_interface	= rt2x00mac_config_interface,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.set_multicast_list	= rt2x00mac_set_multicast_list,
-+#else
- 	.configure_filter	= rt61pci_configure_filter,
-+#endif
- 	.get_stats		= rt2x00mac_get_stats,
- 	.set_retry_limit	= rt61pci_set_retry_limit,
- 	.conf_tx		= rt2x00mac_conf_tx,
-@@ -2557,6 +2568,9 @@
- 	.fill_rxdone		= rt61pci_fill_rxdone,
- 	.config_mac_addr	= rt61pci_config_mac_addr,
- 	.config_bssid		= rt61pci_config_bssid,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.configure_filter	= rt61pci_configure_filter,
-+#endif
- 	.config_type		= rt61pci_config_type,
- 	.config			= rt61pci_config,
- };
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -314,8 +314,13 @@
- 	 * Enable synchronisation.
- 	 */
- 	rt73usb_register_read(rt2x00dev, TXRX_CSR9, &reg);
--	rt2x00_set_field32(&reg, TXRX_CSR9_TSF_TICKING, 1);
--	rt2x00_set_field32(&reg, TXRX_CSR9_TBTT_ENABLE, 1);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	if (is_interface_present(&rt2x00dev->interface))
-+#endif
-+	{
-+	    rt2x00_set_field32(&reg, TXRX_CSR9_TSF_TICKING, 1);
-+	    rt2x00_set_field32(&reg, TXRX_CSR9_TBTT_ENABLE, 1);
-+	}
- 	rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 0);
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- 	    is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1751,7 +1756,12 @@
- 	 */
- 	rt2x00dev->hw->flags =
- 	    IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
--	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
-+	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
-+	    IEEE80211_HW_WEP_INCLUDE_IV |
-+	    IEEE80211_HW_DATA_NULLFUNC_ACK |
-+	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
-+ 	    IEEE80211_HW_MONITOR_DURING_OPER |
-+ 	    IEEE80211_HW_NO_PROBE_FILTERING;
- 	rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
- 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
- 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -2007,13 +2017,19 @@
- 
- static const struct ieee80211_ops rt73usb_mac80211_ops = {
- 	.tx			= rt2x00mac_tx,
-+#ifndef RT2X00_ADAPT_OLD_FILTER_API
- 	.start			= rt2x00mac_start,
-+#endif
- 	.stop			= rt2x00mac_stop,
- 	.add_interface		= rt2x00mac_add_interface,
- 	.remove_interface	= rt2x00mac_remove_interface,
- 	.config			= rt2x00mac_config,
- 	.config_interface	= rt2x00mac_config_interface,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.set_multicast_list	= rt2x00mac_set_multicast_list,
-+#else
- 	.configure_filter	= rt73usb_configure_filter,
-+#endif
- 	.get_stats		= rt2x00mac_get_stats,
- 	.set_retry_limit	= rt73usb_set_retry_limit,
- 	.conf_tx		= rt2x00mac_conf_tx,
-@@ -2044,6 +2060,9 @@
- 	.fill_rxdone		= rt73usb_fill_rxdone,
- 	.config_mac_addr	= rt73usb_config_mac_addr,
- 	.config_bssid		= rt73usb_config_bssid,
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	.configure_filter	= rt73usb_configure_filter,
-+#endif
- 	.config_type		= rt73usb_config_type,
- 	.config			= rt73usb_config,
- };
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00config.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00config.c
-@@ -50,6 +50,11 @@
- {
- 	if (type != INVALID_INTERFACE)
- 		rt2x00dev->ops->lib->config_type(rt2x00dev, type);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	else if (is_monitor_present(&rt2x00dev->interface))
-+		rt2x00dev->ops->lib->config_type(rt2x00dev,
-+						 IEEE80211_IF_TYPE_MNTR);
-+#endif
- }
- 
- void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00mac.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00mac.c
-@@ -34,6 +34,28 @@
- #include "rt2x00.h"
- #include "rt2x00lib.h"
- 
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+static void rt2x00mac_configure_filter(struct rt2x00_dev *rt2x00dev)
-+{
-+	struct interface *intf = &rt2x00dev->interface;
-+	unsigned int filter = 0;
-+
-+	if (intf->iff_filter & IFF_PROMISC ||
-+	    is_monitor_present(intf) ||
-+	    !(is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
-+	      is_interface_type(intf, IEEE80211_IF_TYPE_STA)))
-+		filter |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
-+	if (intf->iff_filter & IFF_MULTICAST)
-+		filter |= FIF_ALLMULTI;
-+	if (!is_interface_present(intf) && is_monitor_present(intf))
-+		filter |= FIF_FCSFAIL | FIF_PLCPFAIL | FIF_CONTROL;
-+
-+	rt2x00dev->ops->lib->configure_filter(rt2x00dev->hw,
-+					      intf->filter ^ filter, &filter,
-+					      0, NULL);
-+}
-+#endif
-+
- static int rt2x00mac_tx_rts_cts(struct rt2x00_dev *rt2x00dev,
- 				struct data_ring *ring,
- 				struct sk_buff *frag_skb,
-@@ -173,12 +195,20 @@
- }
- EXPORT_SYMBOL_GPL(rt2x00mac_start);
- 
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+int rt2x00mac_stop(struct ieee80211_hw *hw)
-+#else
- void rt2x00mac_stop(struct ieee80211_hw *hw)
-+#endif
- {
- 	struct rt2x00_dev *rt2x00dev = hw->priv;
- 
- 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+		return 0;
-+#else
- 		return;
-+#endif
- 
- 	/*
- 	 * Perhaps we can add something smarter here,
-@@ -187,6 +217,10 @@
- 	rt2x00lib_disable_radio(rt2x00dev);
- 
- 	__clear_bit(DEVICE_STARTED, &rt2x00dev->flags);
-+
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	return 0;
-+#endif
- }
- EXPORT_SYMBOL_GPL(rt2x00mac_stop);
- 
-@@ -202,14 +236,37 @@
- 	 * another interface is already present.
- 	 */
- 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) ||
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	    conf->type != IEEE80211_IF_TYPE_MNTR &&
-+#endif
- 	    is_interface_present(intf))
- 		return -ENOBUFS;
- 
--	intf->id = conf->if_id;
--	intf->type = conf->type;
--	if (conf->type == IEEE80211_IF_TYPE_AP)
--		memcpy(&intf->bssid, conf->mac_addr, ETH_ALEN);
--	memcpy(&intf->mac, conf->mac_addr, ETH_ALEN);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	{
-+		int retval = rt2x00mac_start(hw);
-+		if (retval)
-+			return retval;
-+	}
-+
-+	/*
-+	 * We support muliple monitor mode interfaces.
-+	 * All we need to do is increase the monitor_count.
-+	 */
-+	if (conf->type == IEEE80211_IF_TYPE_MNTR) {
-+		intf->monitor_count++;
-+	} else
-+#endif
-+	{
-+		intf->id = conf->if_id;
-+		intf->type = conf->type;
-+		if (conf->type == IEEE80211_IF_TYPE_AP)
-+			memcpy(&intf->bssid, conf->mac_addr, ETH_ALEN);
-+		memcpy(&intf->mac, conf->mac_addr, ETH_ALEN);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+		intf->iff_filter = 0;
-+#endif
-+	}
- 
- 	/*
- 	 * The MAC adddress must be configured after the device
-@@ -218,6 +275,9 @@
- 	 */
- 	rt2x00lib_config_mac_addr(rt2x00dev, intf->mac);
- 	rt2x00lib_config_type(rt2x00dev, conf->type);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	rt2x00mac_configure_filter(rt2x00dev);
-+#endif
- 
- 	return 0;
- }
-@@ -235,13 +295,30 @@
- 	 * no interface is present.
- 	 */
- 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) ||
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	    conf->type != IEEE80211_IF_TYPE_MNTR &&
-+#endif
- 	    !is_interface_present(intf))
- 		return;
- 
--	intf->id = 0;
--	intf->type = INVALID_INTERFACE;
--	memset(&intf->bssid, 0x00, ETH_ALEN);
--	memset(&intf->mac, 0x00, ETH_ALEN);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	/*
-+	 * When removing an monitor interface, decrease monitor_count.
-+	 * For non-monitor interfaces, all interface data needs to be reset.
-+	 */
-+	if (conf->type == IEEE80211_IF_TYPE_MNTR) {
-+		intf->monitor_count--;
-+	} else if (intf->type == conf->type)
-+#endif
-+	{
-+		intf->id = 0;
-+		intf->type = INVALID_INTERFACE;
-+		memset(&intf->bssid, 0x00, ETH_ALEN);
-+		memset(&intf->mac, 0x00, ETH_ALEN);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+		intf->iff_filter = 0;
-+#endif
-+	}
- 
- 	/*
- 	 * Make sure the bssid and mac address registers
-@@ -250,6 +327,11 @@
- 	rt2x00lib_config_mac_addr(rt2x00dev, intf->mac);
- 	rt2x00lib_config_bssid(rt2x00dev, intf->bssid);
- 	rt2x00lib_config_type(rt2x00dev, intf->type);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	rt2x00mac_configure_filter(rt2x00dev);
-+	if (!is_monitor_present(intf))
-+		rt2x00mac_stop(hw);
-+#endif
- }
- EXPORT_SYMBOL_GPL(rt2x00mac_remove_interface);
- 
-@@ -303,6 +385,14 @@
- 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
- 		return 0;
- 
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+        /*
-+	 * Monitor mode does not need configuring.
-+         */
-+	if (conf->type == IEEE80211_IF_TYPE_MNTR)
-+		return 0;
-+#endif
-+
- 	/*
- 	 * If the given type does not match the configured type,
- 	 * there has been a problem.
-@@ -335,6 +425,18 @@
- }
- EXPORT_SYMBOL_GPL(rt2x00mac_config_interface);
- 
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+void rt2x00mac_set_multicast_list(struct ieee80211_hw *hw,
-+				  unsigned short iff_filter, int mc_count)
-+{
-+	struct rt2x00_dev *rt2x00dev = hw->priv;
-+
-+	rt2x00dev->interface.iff_filter = iff_filter;
-+	rt2x00mac_configure_filter(rt2x00dev);
-+}
-+EXPORT_SYMBOL_GPL(rt2x00mac_set_multicast_list);
-+#endif
-+
- int rt2x00mac_get_stats(struct ieee80211_hw *hw,
- 			struct ieee80211_low_level_stats *stats)
- {
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -280,9 +280,14 @@
- 	struct rt2x00_dev *rt2x00dev =
- 	    container_of(work, struct rt2x00_dev, filter_work);
- 
--	rt2x00dev->ops->hw->configure_filter(rt2x00dev->hw,
--					     FIF_RT2X00_USE_CURRENT, NULL,
--					     0, NULL);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+	rt2x00dev->ops->lib
-+#else
-+	rt2x00dev->ops->hw
-+#endif
-+	    ->configure_filter(rt2x00dev->hw,
-+			       FIF_RT2X00_USE_CURRENT, NULL,
-+			       0, NULL);
- }
- 
- /*

Copied: tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff (from rev 85, unstable/rt2x00/debian/patches/003_workaround_mac80211_changes.diff)
===================================================================
--- tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff	                        (rev 0)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/003_workaround_mac80211_changes.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,892 @@
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
+@@ -32,6 +32,7 @@
+ #include <linux/workqueue.h>
+ #include <linux/firmware.h>
+ #include <linux/mutex.h>
++#include <linux/version.h>
+ 
+ #include <net/mac80211.h>
+ 
+@@ -41,6 +42,86 @@
+ 
+ #include "config.h"
+ 
++/* Version compatibility workarounds */
++
++#ifndef IEEE80211_TXCTL_LONG_RETRY_LIMIT
++
++#define IEEE80211_TXCTL_LONG_RETRY_LIMIT 0
++
++/* These were changed around the same time as
++ * IEEE80211_TXCTL_LONG_RETRY_LIMIT was added in wireless-dev, but we
++ * can't detect this change directly using the preprocessor
++ */
++#define ieee80211_rts_get(hw, if_id, frame, frame_len, frame_txctl, rts) \
++	ieee80211_rts_get(hw, frame, frame_len, frame_txctl, rts)
++#define ieee80211_ctstoself_get(hw, if_id, frame, frame_len, frame_txctl, cts) \
++	ieee80211_ctstoself_get(hw, frame, frame_len, frame_txctl, cts)
++
++/* erp_ie_changed was added around the same time. */
++#define RT2X00_SYNTHESISE_ERP_IE_CHANGED
++enum ieee80211_erp_change_flags {
++	IEEE80211_ERP_CHANGE_PROTECTION = 1<<0,
++	IEEE80211_ERP_CHANGE_PREAMBLE   = 1<<1,
++};
++
++#endif /* !IEEE80211_TXCTL_LONG_RETRY_LIMIT */
++
++/* These negative capability flags have been removed in wireless-dev */
++#ifndef IEEE80211_HW_HOST_GEN_BEACON
++#define IEEE80211_HW_HOST_GEN_BEACON 0
++#endif
++#ifndef IEEE80211_HW_WEP_INCLUDE_IV
++#define IEEE80211_HW_WEP_INCLUDE_IV 0
++#endif
++#ifndef IEEE80211_HW_DATA_NULLFUNC_ACK
++#define IEEE80211_HW_DATA_NULLFUNC_ACK 0
++#endif
++#ifndef IEEE80211_HW_NO_TKIP_WMM_HWACCEL
++#define IEEE80211_HW_NO_TKIP_WMM_HWACCEL 0
++#endif
++
++/* The filter interface has been changed in wireless-dev */
++#ifdef IEEE80211_HW_MONITOR_DURING_OPER
++#define RT2X00_ADAPT_OLD_FILTER_API
++enum ieee80211_filter_flags {
++	FIF_PROMISC_IN_BSS      = 1<<0,
++	FIF_ALLMULTI            = 1<<1,
++	FIF_FCSFAIL             = 1<<2,
++	FIF_PLCPFAIL            = 1<<3,
++	FIF_BCN_PRBRESP_PROMISC = 1<<4,
++	FIF_CONTROL             = 1<<5,
++	FIF_OTHER_BSS           = 1<<6,
++};
++enum {
++	RX_FLAG_FAILED_FCS_CRC  = 0,
++	RX_FLAG_FAILED_PLCP_CRC = 0,
++};
++struct dev_addr_list;
++#else
++#define IEEE80211_HW_MONITOR_DURING_OPER 0
++#define IEEE80211_HW_NO_PROBE_FILTERING 0
++#endif
++
++#ifndef DECLARE_MAC_BUF
++#define DECLARE_MAC_BUF(var) char var[18] __maybe_unused
++static inline
++char *print_mac(char *buf, const u8 *addr)
++{
++	sprintf(buf, MAC_FMT,
++		addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
++	return buf;
++}
++#endif
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
++static inline
++void cancel_delayed_work_sync(struct delayed_work *work)
++{
++	if (cancel_delayed_work(work))
++		cancel_work_sync(&work->work);
++}
++#endif
++
+ /*
+  * Module information.
+  * DRV_NAME should be set within the individual module source files.
+@@ -375,7 +456,7 @@
+ 	 * When set to INVALID_INTERFACE, no interface is configured.
+ 	 */
+ 	int type;
+-#define INVALID_INTERFACE	IEEE80211_IF_TYPE_INVALID
++#define INVALID_INTERFACE	(IEEE80211_IF_TYPE_AP - 1)
+ 
+ 	/*
+ 	 * MAC of the device.
+@@ -391,6 +472,19 @@
+ 	 * Store the packet filter mode for the current interface.
+ 	 */
+ 	unsigned int filter;
++
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	/*
++	 * Monitor mode count, the number of interfaces
++	 * in monitor mode that that have been added.
++	 */
++	unsigned short monitor_count;
++
++	/*
++	 * Interface filter passed to config_packet_filter.
++	 */
++	unsigned int iff_filter;
++#endif
+ };
+ 
+ /* Magic filter for configure_filter to apply existing filter */
+@@ -408,6 +502,13 @@
+ 	return intf->type == type;
+ }
+ 
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++static inline int is_monitor_present(struct interface *intf)
++{
++	return !!intf->monitor_count;
++}
++#endif
++
+ /*
+  * Details about the supported modes, rates and channels
+  * of a particular chipset. This is used by rt2x00lib
+@@ -450,6 +551,9 @@
+ 	int phymode;
+ 
+ 	int basic_rates;
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++	int preamble;
++#endif
+ 	int slot_time;
+ 
+ 	short sifs;
+@@ -520,6 +624,12 @@
+ 	 */
+ 	void (*config_mac_addr) (struct rt2x00_dev *rt2x00dev, __le32 *mac);
+ 	void (*config_bssid) (struct rt2x00_dev *rt2x00dev, __le32 *bssid);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	void (*configure_filter) (struct ieee80211_hw *hw,
++				  unsigned int changed_flags,
++				  unsigned int *total_flags,
++				  int mc_count, struct dev_addr_list *mc_list);
++#endif
+ 	void (*config_type) (struct rt2x00_dev *rt2x00dev, const int type,
+ 							   const int tsf_sync);
+ 	void (*config_preamble) (struct rt2x00_dev *rt2x00dev,
+@@ -744,7 +854,9 @@
+ 	 */
+ 	struct work_struct beacon_work;
+ 	struct work_struct filter_work;
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	struct work_struct config_work;
++#endif
+ 
+ 	/*
+ 	 * Data ring arrays for RX, TX and Beacon.
+@@ -915,7 +1027,11 @@
+ int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
+ 		 struct ieee80211_tx_control *control);
+ int rt2x00mac_start(struct ieee80211_hw *hw);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++int rt2x00mac_stop(struct ieee80211_hw *hw);
++#else
+ void rt2x00mac_stop(struct ieee80211_hw *hw);
++#endif
+ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
+ 			    struct ieee80211_if_init_conf *conf);
+ void rt2x00mac_remove_interface(struct ieee80211_hw *hw,
+@@ -923,6 +1039,10 @@
+ int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf);
+ int rt2x00mac_config_interface(struct ieee80211_hw *hw, int if_id,
+ 			       struct ieee80211_if_conf *conf);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++void rt2x00mac_set_multicast_list(struct ieee80211_hw *hw,
++				  unsigned short flags, int mc_count);
++#endif
+ int rt2x00mac_get_stats(struct ieee80211_hw *hw,
+ 			struct ieee80211_low_level_stats *stats);
+ int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2400pci.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2400pci.c
+@@ -284,8 +284,13 @@
+ 	 * Enable synchronisation.
+ 	 */
+ 	rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
+-	rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
+-	rt2x00_set_field32(&reg, CSR14_TBCN, 1);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	if (is_interface_present(&rt2x00dev->interface))
++#endif
++	{
++		rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
++		rt2x00_set_field32(&reg, CSR14_TBCN, 1);
++	}
+ 	rt2x00_set_field32(&reg, CSR14_BEACON_GEN, 0);
+ 	rt2x00_set_field32(&reg, CSR14_TSF_SYNC, tsf_sync);
+ 	rt2x00pci_register_write(rt2x00dev, CSR14, reg);
+@@ -489,8 +494,14 @@
+ 			     const unsigned int flags,
+ 			     struct rt2x00lib_conf *libconf)
+ {
+-	if (flags & CONFIG_UPDATE_PHYMODE)
++	if (flags & CONFIG_UPDATE_PHYMODE) {
+ 		rt2400pci_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++		rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++					 IEEE80211_ERP_CHANGE_PREAMBLE,
++					 0, libconf->preamble);
++#endif
++	}
+ 	if (flags & CONFIG_UPDATE_CHANNEL)
+ 		rt2400pci_config_channel(rt2x00dev, &libconf->rf);
+ 	if (flags & CONFIG_UPDATE_TXPOWER)
+@@ -1369,7 +1380,14 @@
+ 	/*
+ 	 * Initialize all hw fields.
+ 	 */
+-	rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
++	rt2x00dev->hw->flags =
++	    IEEE80211_HW_HOST_GEN_BEACON |
++	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
++	    IEEE80211_HW_WEP_INCLUDE_IV |
++	    IEEE80211_HW_DATA_NULLFUNC_ACK |
++	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
++	    IEEE80211_HW_MONITOR_DURING_OPER |
++	    IEEE80211_HW_NO_PROBE_FILTERING;
+ 	rt2x00dev->hw->extra_tx_headroom = 0;
+ 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
+ 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
+@@ -1570,16 +1588,24 @@
+ 
+ static const struct ieee80211_ops rt2400pci_mac80211_ops = {
+ 	.tx			= rt2x00mac_tx,
++#ifndef RT2X00_ADAPT_OLD_FILTER_API
+ 	.start			= rt2x00mac_start,
++#endif
+ 	.stop			= rt2x00mac_stop,
+ 	.add_interface		= rt2x00mac_add_interface,
+ 	.remove_interface	= rt2x00mac_remove_interface,
+ 	.config			= rt2x00mac_config,
+ 	.config_interface	= rt2x00mac_config_interface,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.set_multicast_list	= rt2x00mac_set_multicast_list,
++#else
+ 	.configure_filter	= rt2400pci_configure_filter,
++#endif
+ 	.get_stats		= rt2x00mac_get_stats,
+ 	.set_retry_limit	= rt2400pci_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
++#endif
+ 	.conf_tx		= rt2400pci_conf_tx,
+ 	.get_tx_stats		= rt2x00mac_get_tx_stats,
+ 	.get_tsf		= rt2400pci_get_tsf,
+@@ -1604,6 +1630,9 @@
+ 	.fill_rxdone		= rt2400pci_fill_rxdone,
+ 	.config_mac_addr	= rt2400pci_config_mac_addr,
+ 	.config_bssid		= rt2400pci_config_bssid,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.configure_filter	= rt2400pci_configure_filter,
++#endif
+ 	.config_type		= rt2400pci_config_type,
+ 	.config_preamble	= rt2400pci_config_preamble,
+ 	.config			= rt2400pci_config,
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500pci.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2500pci.c
+@@ -288,8 +288,13 @@
+ 	 * Enable synchronisation.
+ 	 */
+ 	rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
+-	rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
+-	rt2x00_set_field32(&reg, CSR14_TBCN, 1);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	if (is_interface_present(&rt2x00dev->interface))
++#endif
++	{
++		rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 1);
++		rt2x00_set_field32(&reg, CSR14_TBCN, 1);
++	}
+ 	rt2x00_set_field32(&reg, CSR14_BEACON_GEN, 0);
+ 	rt2x00_set_field32(&reg, CSR14_TSF_SYNC, tsf_sync);
+ 	rt2x00pci_register_write(rt2x00dev, CSR14, reg);
+@@ -538,8 +543,14 @@
+ 			     const unsigned int flags,
+ 			     struct rt2x00lib_conf *libconf)
+ {
+-	if (flags & CONFIG_UPDATE_PHYMODE)
++	if (flags & CONFIG_UPDATE_PHYMODE) {
+ 		rt2500pci_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++		rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++					 IEEE80211_ERP_CHANGE_PREAMBLE,
++					 0, libconf->preamble);
++#endif
++	}
+ 	if (flags & CONFIG_UPDATE_CHANNEL)
+ 		rt2500pci_config_channel(rt2x00dev, &libconf->rf,
+ 					 libconf->conf->power_level);
+@@ -1664,7 +1675,14 @@
+ 	/*
+ 	 * Initialize all hw fields.
+ 	 */
+-	rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
++	rt2x00dev->hw->flags =
++	    IEEE80211_HW_HOST_GEN_BEACON |
++	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
++	    IEEE80211_HW_WEP_INCLUDE_IV |
++	    IEEE80211_HW_DATA_NULLFUNC_ACK |
++	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
++	    IEEE80211_HW_MONITOR_DURING_OPER |
++	    IEEE80211_HW_NO_PROBE_FILTERING;
+ 	rt2x00dev->hw->extra_tx_headroom = 0;
+ 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
+ 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
+@@ -1863,16 +1881,24 @@
+ 
+ static const struct ieee80211_ops rt2500pci_mac80211_ops = {
+ 	.tx			= rt2x00mac_tx,
++#ifndef RT2X00_ADAPT_OLD_FILTER_API
+ 	.start			= rt2x00mac_start,
++#endif
+ 	.stop			= rt2x00mac_stop,
+ 	.add_interface		= rt2x00mac_add_interface,
+ 	.remove_interface	= rt2x00mac_remove_interface,
+ 	.config			= rt2x00mac_config,
+ 	.config_interface	= rt2x00mac_config_interface,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.set_multicast_list	= rt2x00mac_set_multicast_list,
++#else
+ 	.configure_filter	= rt2500pci_configure_filter,
++#endif
+ 	.get_stats		= rt2x00mac_get_stats,
+ 	.set_retry_limit	= rt2500pci_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
++#endif
+ 	.conf_tx		= rt2x00mac_conf_tx,
+ 	.get_tx_stats		= rt2x00mac_get_tx_stats,
+ 	.get_tsf		= rt2500pci_get_tsf,
+@@ -1897,6 +1923,9 @@
+ 	.fill_rxdone		= rt2500pci_fill_rxdone,
+ 	.config_mac_addr	= rt2500pci_config_mac_addr,
+ 	.config_bssid		= rt2500pci_config_bssid,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.configure_filter	= rt2500pci_configure_filter,
++#endif
+ 	.config_type		= rt2500pci_config_type,
+ 	.config_preamble	= rt2500pci_config_preamble,
+ 	.config			= rt2500pci_config,
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
+@@ -331,8 +331,13 @@
+ 	rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg);
+ 
+ 	rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg);
+-	rt2x00_set_field16(&reg, TXRX_CSR19_TSF_COUNT, 1);
+-	rt2x00_set_field16(&reg, TXRX_CSR19_TBCN, 1);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	if (is_interface_present(&rt2x00dev->interface))
++#endif
++	{
++	       rt2x00_set_field16(&reg, TXRX_CSR19_TSF_COUNT, 1);
++	       rt2x00_set_field16(&reg, TXRX_CSR19_TBCN, 1);
++	}
+ 	rt2x00_set_field16(&reg, TXRX_CSR19_BEACON_GEN, 0);
+ 	rt2x00_set_field16(&reg, TXRX_CSR19_TSF_SYNC, tsf_sync);
+ 	rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg);
+@@ -345,6 +350,7 @@
+ {
+ 	u16 reg;
+ 
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	/*
+ 	 * When in atomic context, reschedule and let rt2x00lib
+ 	 * call this function again.
+@@ -353,6 +359,7 @@
+ 		queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->config_work);
+ 		return;
+ 	}
++#endif
+ 
+ 	rt2500usb_register_read(rt2x00dev, TXRX_CSR1, &reg);
+ 	rt2x00_set_field16(&reg, TXRX_CSR1_ACK_TIMEOUT, ack_timeout);
+@@ -525,9 +532,15 @@
+ 			     const unsigned int flags,
+ 			     struct rt2x00lib_conf *libconf)
+ {
+-	if (flags & CONFIG_UPDATE_PHYMODE)
++	if (flags & CONFIG_UPDATE_PHYMODE) {
+ 		rt2500usb_config_phymode(rt2x00dev, libconf->phymode,
+ 					 libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++		rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++					 IEEE80211_ERP_CHANGE_PREAMBLE,
++					 0, libconf->preamble);
++#endif
++	}
+ 	if (flags & CONFIG_UPDATE_CHANNEL)
+ 		rt2500usb_config_channel(rt2x00dev, &libconf->rf,
+ 					 libconf->conf->power_level);
+@@ -1523,7 +1536,12 @@
+ 	rt2x00dev->hw->flags =
+ 	    IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
+ 	    IEEE80211_HW_RX_INCLUDES_FCS |
+-	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
++	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
++	    IEEE80211_HW_WEP_INCLUDE_IV |
++	    IEEE80211_HW_DATA_NULLFUNC_ACK |
++	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
++ 	    IEEE80211_HW_MONITOR_DURING_OPER |
++ 	    IEEE80211_HW_NO_PROBE_FILTERING;
+ 	rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
+ 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
+ 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
+@@ -1764,15 +1782,23 @@
+ 
+ static const struct ieee80211_ops rt2500usb_mac80211_ops = {
+ 	.tx			= rt2x00mac_tx,
++#ifndef RT2X00_ADAPT_OLD_FILTER_API
+ 	.start			= rt2x00mac_start,
++#endif
+ 	.stop			= rt2x00mac_stop,
+ 	.add_interface		= rt2x00mac_add_interface,
+ 	.remove_interface	= rt2x00mac_remove_interface,
+ 	.config			= rt2x00mac_config,
+ 	.config_interface	= rt2x00mac_config_interface,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.set_multicast_list	= rt2x00mac_set_multicast_list,
++#else
+ 	.configure_filter	= rt2500usb_configure_filter,
++#endif
+ 	.get_stats		= rt2x00mac_get_stats,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
++#endif
+ 	.conf_tx		= rt2x00mac_conf_tx,
+ 	.get_tx_stats		= rt2x00mac_get_tx_stats,
+ 	.beacon_update		= rt2500usb_beacon_update,
+@@ -1793,6 +1819,9 @@
+ 	.fill_rxdone		= rt2500usb_fill_rxdone,
+ 	.config_mac_addr	= rt2500usb_config_mac_addr,
+ 	.config_bssid		= rt2500usb_config_bssid,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.configure_filter	= rt2500usb_configure_filter,
++#endif
+ 	.config_type		= rt2500usb_config_type,
+ 	.config_preamble	= rt2500usb_config_preamble,
+ 	.config			= rt2500usb_config,
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt61pci.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt61pci.c
+@@ -674,8 +674,14 @@
+ 			   const unsigned int flags,
+ 			   struct rt2x00lib_conf *libconf)
+ {
+-	if (flags & CONFIG_UPDATE_PHYMODE)
++	if (flags & CONFIG_UPDATE_PHYMODE) {
+ 		rt61pci_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++		rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++					 IEEE80211_ERP_CHANGE_PREAMBLE,
++					 0, libconf->preamble);
++#endif
++	}
+ 	if (flags & CONFIG_UPDATE_CHANNEL)
+ 		rt61pci_config_channel(rt2x00dev, &libconf->rf,
+ 				       libconf->conf->power_level);
+@@ -2209,7 +2215,12 @@
+ 	 */
+ 	rt2x00dev->hw->flags =
+ 	    IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
+-	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
++	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
++	    IEEE80211_HW_WEP_INCLUDE_IV |
++	    IEEE80211_HW_DATA_NULLFUNC_ACK |
++	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
++ 	    IEEE80211_HW_MONITOR_DURING_OPER |
++ 	    IEEE80211_HW_NO_PROBE_FILTERING;
+ 	rt2x00dev->hw->extra_tx_headroom = 0;
+ 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
+ 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
+@@ -2444,16 +2455,24 @@
+ 
+ static const struct ieee80211_ops rt61pci_mac80211_ops = {
+ 	.tx			= rt2x00mac_tx,
++#ifndef RT2X00_ADAPT_OLD_FILTER_API
+ 	.start			= rt2x00mac_start,
++#endif
+ 	.stop			= rt2x00mac_stop,
+ 	.add_interface		= rt2x00mac_add_interface,
+ 	.remove_interface	= rt2x00mac_remove_interface,
+ 	.config			= rt2x00mac_config,
+ 	.config_interface	= rt2x00mac_config_interface,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.set_multicast_list	= rt2x00mac_set_multicast_list,
++#else
+ 	.configure_filter	= rt61pci_configure_filter,
++#endif
+ 	.get_stats		= rt2x00mac_get_stats,
+ 	.set_retry_limit	= rt61pci_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
++#endif
+ 	.conf_tx		= rt2x00mac_conf_tx,
+ 	.get_tx_stats		= rt2x00mac_get_tx_stats,
+ 	.get_tsf		= rt61pci_get_tsf,
+@@ -2479,6 +2498,9 @@
+ 	.fill_rxdone		= rt61pci_fill_rxdone,
+ 	.config_mac_addr	= rt61pci_config_mac_addr,
+ 	.config_bssid		= rt61pci_config_bssid,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.configure_filter	= rt61pci_configure_filter,
++#endif
+ 	.config_type		= rt61pci_config_type,
+ 	.config_preamble	= rt61pci_config_preamble,
+ 	.config			= rt61pci_config,
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
+@@ -331,8 +331,13 @@
+ 	 * Enable synchronisation.
+ 	 */
+ 	rt73usb_register_read(rt2x00dev, TXRX_CSR9, &reg);
+-	rt2x00_set_field32(&reg, TXRX_CSR9_TSF_TICKING, 1);
+-	rt2x00_set_field32(&reg, TXRX_CSR9_TBTT_ENABLE, 1);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	if (is_interface_present(&rt2x00dev->interface))
++#endif
++	{
++	    rt2x00_set_field32(&reg, TXRX_CSR9_TSF_TICKING, 1);
++	    rt2x00_set_field32(&reg, TXRX_CSR9_TBTT_ENABLE, 1);
++	}
+ 	rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 0);
+ 	rt2x00_set_field32(&reg, TXRX_CSR9_TSF_SYNC, tsf_sync);
+ 	rt73usb_register_write(rt2x00dev, TXRX_CSR9, reg);
+@@ -345,6 +350,7 @@
+ {
+ 	u32 reg;
+ 
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	/*
+ 	 * When in atomic context, reschedule and let rt2x00lib
+ 	 * call this function again.
+@@ -353,6 +359,7 @@
+ 		queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->config_work);
+ 		return;
+ 	}
++#endif
+ 
+ 	rt73usb_register_read(rt2x00dev, TXRX_CSR0, &reg);
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_RX_ACK_TIMEOUT, ack_timeout);
+@@ -624,8 +631,14 @@
+ 			   const unsigned int flags,
+ 			   struct rt2x00lib_conf *libconf)
+ {
+-	if (flags & CONFIG_UPDATE_PHYMODE)
++	if (flags & CONFIG_UPDATE_PHYMODE) {
+ 		rt73usb_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++		rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++					 IEEE80211_ERP_CHANGE_PREAMBLE,
++					 0, libconf->preamble);
++#endif
++	}
+ 	if (flags & CONFIG_UPDATE_CHANNEL)
+ 		rt73usb_config_channel(rt2x00dev, &libconf->rf,
+ 				       libconf->conf->power_level);
+@@ -1754,7 +1767,12 @@
+ 	 */
+ 	rt2x00dev->hw->flags =
+ 	    IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
+-	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING;
++	    IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
++	    IEEE80211_HW_WEP_INCLUDE_IV |
++	    IEEE80211_HW_DATA_NULLFUNC_ACK |
++	    IEEE80211_HW_NO_TKIP_WMM_HWACCEL |
++ 	    IEEE80211_HW_MONITOR_DURING_OPER |
++ 	    IEEE80211_HW_NO_PROBE_FILTERING;
+ 	rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
+ 	rt2x00dev->hw->max_signal = MAX_SIGNAL;
+ 	rt2x00dev->hw->max_rssi = MAX_RX_SSI;
+@@ -2014,16 +2032,24 @@
+ 
+ static const struct ieee80211_ops rt73usb_mac80211_ops = {
+ 	.tx			= rt2x00mac_tx,
++#ifndef RT2X00_ADAPT_OLD_FILTER_API
+ 	.start			= rt2x00mac_start,
++#endif
+ 	.stop			= rt2x00mac_stop,
+ 	.add_interface		= rt2x00mac_add_interface,
+ 	.remove_interface	= rt2x00mac_remove_interface,
+ 	.config			= rt2x00mac_config,
+ 	.config_interface	= rt2x00mac_config_interface,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.set_multicast_list	= rt2x00mac_set_multicast_list,
++#else
+ 	.configure_filter	= rt73usb_configure_filter,
++#endif
+ 	.get_stats		= rt2x00mac_get_stats,
+ 	.set_retry_limit	= rt73usb_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
++#endif
+ 	.conf_tx		= rt2x00mac_conf_tx,
+ 	.get_tx_stats		= rt2x00mac_get_tx_stats,
+ 	.get_tsf		= rt73usb_get_tsf,
+@@ -2048,6 +2074,9 @@
+ 	.fill_rxdone		= rt73usb_fill_rxdone,
+ 	.config_mac_addr	= rt73usb_config_mac_addr,
+ 	.config_bssid		= rt73usb_config_bssid,
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	.configure_filter	= rt73usb_configure_filter,
++#endif
+ 	.config_type		= rt73usb_config_type,
+ 	.config_preamble	= rt73usb_config_preamble,
+ 	.config			= rt73usb_config,
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00mac.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00mac.c
+@@ -34,6 +34,28 @@
+ #include "rt2x00.h"
+ #include "rt2x00lib.h"
+ 
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++static void rt2x00mac_configure_filter(struct rt2x00_dev *rt2x00dev)
++{
++	struct interface *intf = &rt2x00dev->interface;
++	unsigned int filter = 0;
++
++	if (intf->iff_filter & IFF_PROMISC ||
++	    is_monitor_present(intf) ||
++	    !(is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
++	      is_interface_type(intf, IEEE80211_IF_TYPE_STA)))
++		filter |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
++	if (intf->iff_filter & IFF_MULTICAST)
++		filter |= FIF_ALLMULTI;
++	if (!is_interface_present(intf) && is_monitor_present(intf))
++		filter |= FIF_FCSFAIL | FIF_PLCPFAIL | FIF_CONTROL;
++
++	rt2x00dev->ops->lib->configure_filter(rt2x00dev->hw,
++					      intf->filter ^ filter, &filter,
++					      0, NULL);
++}
++#endif
++
+ static int rt2x00mac_tx_rts_cts(struct rt2x00_dev *rt2x00dev,
+ 				struct data_ring *ring,
+ 				struct sk_buff *frag_skb,
+@@ -173,12 +195,20 @@
+ }
+ EXPORT_SYMBOL_GPL(rt2x00mac_start);
+ 
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++int rt2x00mac_stop(struct ieee80211_hw *hw)
++#else
+ void rt2x00mac_stop(struct ieee80211_hw *hw)
++#endif
+ {
+ 	struct rt2x00_dev *rt2x00dev = hw->priv;
+ 
+ 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++		return 0;
++#else
+ 		return;
++#endif
+ 
+ 	/*
+ 	 * Perhaps we can add something smarter here,
+@@ -187,6 +217,10 @@
+ 	rt2x00lib_disable_radio(rt2x00dev);
+ 
+ 	__clear_bit(DEVICE_STARTED, &rt2x00dev->flags);
++
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	return 0;
++#endif
+ }
+ EXPORT_SYMBOL_GPL(rt2x00mac_stop);
+ 
+@@ -202,14 +236,37 @@
+ 	 * another interface is already present.
+ 	 */
+ 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) ||
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	    conf->type != IEEE80211_IF_TYPE_MNTR &&
++#endif
+ 	    is_interface_present(intf))
+ 		return -ENOBUFS;
+ 
+-	intf->id = conf->if_id;
+-	intf->type = conf->type;
+-	if (conf->type == IEEE80211_IF_TYPE_AP)
+-		memcpy(&intf->bssid, conf->mac_addr, ETH_ALEN);
+-	memcpy(&intf->mac, conf->mac_addr, ETH_ALEN);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	{
++		int retval = rt2x00mac_start(hw);
++		if (retval)
++			return retval;
++	}
++
++	/*
++	 * We support muliple monitor mode interfaces.
++	 * All we need to do is increase the monitor_count.
++	 */
++	if (conf->type == IEEE80211_IF_TYPE_MNTR) {
++		intf->monitor_count++;
++	} else
++#endif
++	{
++		intf->id = conf->if_id;
++		intf->type = conf->type;
++		if (conf->type == IEEE80211_IF_TYPE_AP)
++			memcpy(&intf->bssid, conf->mac_addr, ETH_ALEN);
++		memcpy(&intf->mac, conf->mac_addr, ETH_ALEN);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++		intf->iff_filter = 0;
++#endif
++	}
+ 
+ 	/*
+ 	 * The MAC adddress must be configured after the device
+@@ -218,6 +275,9 @@
+ 	 */
+ 	rt2x00lib_config_mac_addr(rt2x00dev, intf->mac);
+ 	rt2x00lib_config_type(rt2x00dev, conf->type);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	rt2x00mac_configure_filter(rt2x00dev);
++#endif
+ 
+ 	return 0;
+ }
+@@ -235,13 +295,30 @@
+ 	 * no interface is present.
+ 	 */
+ 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags) ||
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	    conf->type != IEEE80211_IF_TYPE_MNTR &&
++#endif
+ 	    !is_interface_present(intf))
+ 		return;
+ 
+-	intf->id = 0;
+-	intf->type = INVALID_INTERFACE;
+-	memset(&intf->bssid, 0x00, ETH_ALEN);
+-	memset(&intf->mac, 0x00, ETH_ALEN);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	/*
++	 * When removing an monitor interface, decrease monitor_count.
++	 * For non-monitor interfaces, all interface data needs to be reset.
++	 */
++	if (conf->type == IEEE80211_IF_TYPE_MNTR) {
++		intf->monitor_count--;
++	} else if (intf->type == conf->type)
++#endif
++	{
++		intf->id = 0;
++		intf->type = INVALID_INTERFACE;
++		memset(&intf->bssid, 0x00, ETH_ALEN);
++		memset(&intf->mac, 0x00, ETH_ALEN);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++		intf->iff_filter = 0;
++#endif
++	}
+ 
+ 	/*
+ 	 * Make sure the bssid and mac address registers
+@@ -250,6 +327,11 @@
+ 	rt2x00lib_config_mac_addr(rt2x00dev, intf->mac);
+ 	rt2x00lib_config_bssid(rt2x00dev, intf->bssid);
+ 	rt2x00lib_config_type(rt2x00dev, intf->type);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	rt2x00mac_configure_filter(rt2x00dev);
++	if (!is_monitor_present(intf))
++		rt2x00mac_stop(hw);
++#endif
+ }
+ EXPORT_SYMBOL_GPL(rt2x00mac_remove_interface);
+ 
+@@ -303,6 +385,14 @@
+ 	if (!test_bit(DEVICE_PRESENT, &rt2x00dev->flags))
+ 		return 0;
+ 
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++        /*
++	 * Monitor mode does not need configuring.
++         */
++	if (conf->type == IEEE80211_IF_TYPE_MNTR)
++		return 0;
++#endif
++
+ 	/*
+ 	 * If the given type does not match the configured type,
+ 	 * there has been a problem.
+@@ -335,6 +425,18 @@
+ }
+ EXPORT_SYMBOL_GPL(rt2x00mac_config_interface);
+ 
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++void rt2x00mac_set_multicast_list(struct ieee80211_hw *hw,
++				  unsigned short iff_filter, int mc_count)
++{
++	struct rt2x00_dev *rt2x00dev = hw->priv;
++
++	rt2x00dev->interface.iff_filter = iff_filter;
++	rt2x00mac_configure_filter(rt2x00dev);
++}
++EXPORT_SYMBOL_GPL(rt2x00mac_set_multicast_list);
++#endif
++
+ int rt2x00mac_get_stats(struct ieee80211_hw *hw,
+ 			struct ieee80211_low_level_stats *stats)
+ {
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
+@@ -156,8 +156,10 @@
+ 		cancel_work_sync(&rt2x00dev->beacon_work);
+ 	if (work_pending(&rt2x00dev->filter_work))
+ 		cancel_work_sync(&rt2x00dev->filter_work);
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	if (work_pending(&rt2x00dev->config_work))
+ 		cancel_work_sync(&rt2x00dev->config_work);
++#endif
+ 
+ 	/*
+ 	 * Stop the TX queues.
+@@ -422,11 +424,17 @@
+ 	struct rt2x00_dev *rt2x00dev =
+ 	    container_of(work, struct rt2x00_dev, filter_work);
+ 
+-	rt2x00dev->ops->hw->configure_filter(rt2x00dev->hw,
+-					     FIF_RT2X00_USE_CURRENT, NULL,
+-					     0, NULL);
++#ifdef RT2X00_ADAPT_OLD_FILTER_API
++	rt2x00dev->ops->lib
++#else
++	rt2x00dev->ops->hw
++#endif
++	    ->configure_filter(rt2x00dev->hw,
++			       FIF_RT2X00_USE_CURRENT, NULL,
++			       0, NULL);
+ }
+ 
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ static void rt2x00lib_configuration_scheduled(struct work_struct *work)
+ {
+ 	struct rt2x00_dev *rt2x00dev =
+@@ -436,6 +444,7 @@
+ 	rt2x00mac_erp_ie_changed(rt2x00dev->hw,
+ 				 IEEE80211_ERP_CHANGE_PREAMBLE, 0, preamble);
+ }
++#endif
+ 
+ /*
+  * Interrupt context handlers.
+@@ -1150,7 +1159,9 @@
+ 	 */
+ 	INIT_WORK(&rt2x00dev->beacon_work, rt2x00lib_beacondone_scheduled);
+ 	INIT_WORK(&rt2x00dev->filter_work, rt2x00lib_packetfilter_scheduled);
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ 	INIT_WORK(&rt2x00dev->config_work, rt2x00lib_configuration_scheduled);
++#endif
+ 	INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00lib_link_tuner);
+ 
+ 	/*
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00config.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00config.c
+@@ -227,6 +227,9 @@
+ 
+ 		libconf.basic_rates =
+ 		    DEVICE_GET_RATE_FIELD(rate->val, RATEMASK) & DEV_BASIC_RATEMASK;
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++		libconf.preamble = !!DEVICE_GET_RATE_FIELD(rate->val2, PREAMBLE);
++#endif
+ 	}
+ 
+ 	if (flags & CONFIG_UPDATE_CHANNEL) {

Deleted: tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff
===================================================================
--- unstable/rt2x00/debian/patches/004_fix_filter_flags.diff	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,207 +0,0 @@
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2400pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2400pci.c
-@@ -1511,8 +1511,8 @@
- 	 * - Some filters are set based on interface type.
- 	 */
- 	*total_flags |= FIF_ALLMULTI;
--	if (changed_flags & FIF_OTHER_BSS ||
--	    changed_flags & FIF_PROMISC_IN_BSS)
-+	if (*total_flags & FIF_OTHER_BSS ||
-+	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- 		*total_flags |= FIF_PROMISC_IN_BSS;
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500pci.c
-@@ -1844,8 +1844,8 @@
- 	 */
- 	if (mc_count)
- 		*total_flags |= FIF_ALLMULTI;
--	if (changed_flags & FIF_OTHER_BSS ||
--	    changed_flags & FIF_PROMISC_IN_BSS)
-+	if (*total_flags & FIF_OTHER_BSS ||
-+	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- 		*total_flags |= FIF_PROMISC_IN_BSS;
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -1594,8 +1594,14 @@
- {
- 	struct rt2x00_dev *rt2x00dev = hw->priv;
- 	struct interface *intf = &rt2x00dev->interface;
-+	unsigned int flags;
- 	u16 reg;
- 
-+	if (changed_flags & FIF_RT2X00_USE_CURRENT) {
-+		flags = *(volatile unsigned int *)&intf->filter;
-+		goto configure;
-+	}
-+
- 	/*
- 	 * Mask off any flags we are going to ignore from
- 	 * the total_flags field.
-@@ -1616,8 +1622,8 @@
- 	 */
- 	if (mc_count)
- 		*total_flags |= FIF_ALLMULTI;
--	if (changed_flags & FIF_OTHER_BSS ||
--	    changed_flags & FIF_PROMISC_IN_BSS)
-+	if (*total_flags & FIF_OTHER_BSS ||
-+	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- 		*total_flags |= FIF_PROMISC_IN_BSS;
-@@ -1627,7 +1633,8 @@
- 	 */
- 	if (intf->filter == *total_flags)
- 		return;
--	intf->filter = *total_flags;
-+	flags = *total_flags;
-+	*(volatile unsigned int *)&intf->filter = flags;
- 
- 	/*
- 	 * When in atomic context, reschedule and let rt2x00lib
-@@ -1638,6 +1645,7 @@
- 		return;
- 	}
- 
-+configure:
- 	/*
- 	 * Start configuration steps.
- 	 * Note that the version error will always be dropped
-@@ -1646,18 +1654,18 @@
- 	 */
- 	rt2500usb_register_read(rt2x00dev, TXRX_CSR2, &reg);
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_CRC,
--			   !(*total_flags & FIF_FCSFAIL));
-+			   !(flags & FIF_FCSFAIL));
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_PHYSICAL,
--			   !(*total_flags & FIF_PLCPFAIL));
-+			   !(flags & FIF_PLCPFAIL));
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_CONTROL,
--			   !(*total_flags & FIF_CONTROL));
-+			   !(flags & FIF_CONTROL));
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_NOT_TO_ME,
--			   !(*total_flags & FIF_PROMISC_IN_BSS));
-+			   !(flags & FIF_PROMISC_IN_BSS));
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_TODS,
--			   !(*total_flags & FIF_PROMISC_IN_BSS));
-+			   !(flags & FIF_PROMISC_IN_BSS));
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_VERSION_ERROR, 1);
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_MULTICAST,
--			   !(*total_flags & FIF_ALLMULTI));
-+			   !(flags & FIF_ALLMULTI));
- 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_BROADCAST, 0);
- 	rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg);
- }
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt61pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt61pci.c
-@@ -2403,8 +2403,8 @@
- 	 */
- 	if (mc_count)
- 		*total_flags |= FIF_ALLMULTI;
--	if (changed_flags & FIF_OTHER_BSS ||
--	    changed_flags & FIF_PROMISC_IN_BSS)
-+	if (*total_flags & FIF_OTHER_BSS ||
-+	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- 		*total_flags |= FIF_PROMISC_IN_BSS;
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -1848,8 +1848,14 @@
- {
- 	struct rt2x00_dev *rt2x00dev = hw->priv;
- 	struct interface *intf = &rt2x00dev->interface;
-+	unsigned int flags;
- 	u32 reg;
- 
-+	if (changed_flags & FIF_RT2X00_USE_CURRENT) {
-+		flags = *(volatile unsigned int *)&intf->filter;
-+		goto configure;
-+	}
-+
- 	/*
- 	 * Mask off any flags we are going to ignore from
- 	 * the total_flags field.
-@@ -1870,8 +1876,8 @@
- 	 */
- 	if (mc_count)
- 		*total_flags |= FIF_ALLMULTI;
--	if (changed_flags & FIF_OTHER_BSS ||
--	    changed_flags & FIF_PROMISC_IN_BSS)
-+	if (*total_flags & FIF_OTHER_BSS ||
-+	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- 	if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- 		*total_flags |= FIF_PROMISC_IN_BSS;
-@@ -1881,7 +1887,8 @@
- 	 */
- 	if (intf->filter == *total_flags)
- 		return;
--	intf->filter = *total_flags;
-+	flags = *total_flags;
-+	*(volatile unsigned int *)&intf->filter = flags;
- 
- 	/*
- 	 * When in atomic context, reschedule and let rt2x00lib
-@@ -1892,6 +1899,7 @@
- 		return;
- 	}
- 
-+configure:
- 	/*
- 	 * Start configuration steps.
- 	 * Note that the version error will always be dropped
-@@ -1900,18 +1908,18 @@
- 	 */
- 	rt73usb_register_read(rt2x00dev, TXRX_CSR0, &reg);
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_CRC,
--			   !(*total_flags & FIF_FCSFAIL));
-+			   !(flags & FIF_FCSFAIL));
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_PHYSICAL,
--			   !(*total_flags & FIF_PLCPFAIL));
-+			   !(flags & FIF_PLCPFAIL));
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_CONTROL,
--			   !(*total_flags & FIF_CONTROL));
-+			   !(flags & FIF_CONTROL));
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_NOT_TO_ME,
--			   !(*total_flags & FIF_PROMISC_IN_BSS));
-+			   !(flags & FIF_PROMISC_IN_BSS));
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_TO_DS,
--			   !(*total_flags & FIF_PROMISC_IN_BSS));
-+			   !(flags & FIF_PROMISC_IN_BSS));
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_VERSION_ERROR, 1);
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_MULTICAST,
--			   !(*total_flags & FIF_ALLMULTI));
-+			   !(flags & FIF_ALLMULTI));
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_BROADCAST, 0);
- 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_ACK_CTS, 1);
- 	rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg);
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -281,8 +281,7 @@
- 	    container_of(work, struct rt2x00_dev, filter_work);
- 
- 	rt2x00dev->ops->hw->configure_filter(rt2x00dev->hw,
--					     rt2x00dev->interface.filter,
--					     &rt2x00dev->interface.filter,
-+					     FIF_RT2X00_USE_CURRENT, NULL,
- 					     0, NULL);
- }
- 
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -315,6 +315,11 @@
- 	unsigned int filter;
- };
- 
-+/* Magic filter for configure_filter to apply existing filter */
-+enum {
-+	FIF_RT2X00_USE_CURRENT	= 1<<30
-+};
-+
- static inline int is_interface_present(struct interface *intf)
- {
- 	return !!intf->id;

Copied: tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff (from rev 85, unstable/rt2x00/debian/patches/004_fix_filter_flags.diff)
===================================================================
--- tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff	                        (rev 0)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/004_fix_filter_flags.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,157 @@
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
+@@ -1616,8 +1616,14 @@
+ {
+ 	struct rt2x00_dev *rt2x00dev = hw->priv;
+ 	struct interface *intf = &rt2x00dev->interface;
++	unsigned int flags;
+ 	u16 reg;
+ 
++	if (changed_flags & FIF_RT2X00_USE_CURRENT) {
++		flags = *(volatile unsigned int *)&intf->filter;
++		goto configure;
++	}
++
+ 	/*
+ 	 * Mask off any flags we are going to ignore from
+ 	 * the total_flags field.
+@@ -1649,7 +1655,8 @@
+ 	 */
+ 	if (intf->filter == *total_flags)
+ 		return;
+-	intf->filter = *total_flags;
++	flags = *total_flags;
++	*(volatile unsigned int *)&intf->filter = flags;
+ 
+ 	/*
+ 	 * When in atomic context, reschedule and let rt2x00lib
+@@ -1660,6 +1667,7 @@
+ 		return;
+ 	}
+ 
++configure:
+ 	/*
+ 	 * Start configuration steps.
+ 	 * Note that the version error will always be dropped
+@@ -1668,18 +1676,18 @@
+ 	 */
+ 	rt2500usb_register_read(rt2x00dev, TXRX_CSR2, &reg);
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_CRC,
+-			   !(*total_flags & FIF_FCSFAIL));
++			   !(flags & FIF_FCSFAIL));
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_PHYSICAL,
+-			   !(*total_flags & FIF_PLCPFAIL));
++			   !(flags & FIF_PLCPFAIL));
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_CONTROL,
+-			   !(*total_flags & FIF_CONTROL));
++			   !(flags & FIF_CONTROL));
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_NOT_TO_ME,
+-			   !(*total_flags & FIF_PROMISC_IN_BSS));
++			   !(flags & FIF_PROMISC_IN_BSS));
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_TODS,
+-			   !(*total_flags & FIF_PROMISC_IN_BSS));
++			   !(flags & FIF_PROMISC_IN_BSS));
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_VERSION_ERROR, 1);
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_MULTICAST,
+-			   !(*total_flags & FIF_ALLMULTI));
++			   !(flags & FIF_ALLMULTI));
+ 	rt2x00_set_field16(&reg, TXRX_CSR2_DROP_BROADCAST, 0);
+ 	rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg);
+ }
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
+@@ -1851,8 +1851,14 @@
+ {
+ 	struct rt2x00_dev *rt2x00dev = hw->priv;
+ 	struct interface *intf = &rt2x00dev->interface;
++	unsigned int flags;
+ 	u32 reg;
+ 
++	if (changed_flags & FIF_RT2X00_USE_CURRENT) {
++		flags = *(volatile unsigned int *)&intf->filter;
++		goto configure;
++	}
++
+ 	/*
+ 	 * Mask off any flags we are going to ignore from
+ 	 * the total_flags field.
+@@ -1884,7 +1890,8 @@
+ 	 */
+ 	if (intf->filter == *total_flags)
+ 		return;
+-	intf->filter = *total_flags;
++	flags = *total_flags;
++	*(volatile unsigned int *)&intf->filter = flags;
+ 
+ 	/*
+ 	 * When in atomic context, reschedule and let rt2x00lib
+@@ -1895,6 +1902,7 @@
+ 		return;
+ 	}
+ 
++configure:
+ 	/*
+ 	 * Start configuration steps.
+ 	 * Note that the version error will always be dropped
+@@ -1903,18 +1911,18 @@
+ 	 */
+ 	rt73usb_register_read(rt2x00dev, TXRX_CSR0, &reg);
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_CRC,
+-			   !(*total_flags & FIF_FCSFAIL));
++			   !(flags & FIF_FCSFAIL));
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_PHYSICAL,
+-			   !(*total_flags & FIF_PLCPFAIL));
++			   !(flags & FIF_PLCPFAIL));
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_CONTROL,
+-			   !(*total_flags & FIF_CONTROL));
++			   !(flags & FIF_CONTROL));
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_NOT_TO_ME,
+-			   !(*total_flags & FIF_PROMISC_IN_BSS));
++			   !(flags & FIF_PROMISC_IN_BSS));
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_TO_DS,
+-			   !(*total_flags & FIF_PROMISC_IN_BSS));
++			   !(flags & FIF_PROMISC_IN_BSS));
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_VERSION_ERROR, 1);
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_MULTICAST,
+-			   !(*total_flags & FIF_ALLMULTI));
++			   !(flags & FIF_ALLMULTI));
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_BROADCAST, 0);
+ 	rt2x00_set_field32(&reg, TXRX_CSR0_DROP_ACK_CTS, 1);
+ 	rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg);
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
+@@ -393,6 +393,11 @@
+ 	unsigned int filter;
+ };
+ 
++/* Magic filter for configure_filter to apply existing filter */
++enum {
++	FIF_RT2X00_USE_CURRENT	= 1<<30
++};
++
+ static inline int is_interface_present(struct interface *intf)
+ {
+ 	return !!intf->id;
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
+@@ -421,18 +421,10 @@
+ {
+ 	struct rt2x00_dev *rt2x00dev =
+ 	    container_of(work, struct rt2x00_dev, filter_work);
+-	unsigned int filter = rt2x00dev->interface.filter;
+-
+-	/*
+-	 * Since we had stored the filter inside interface.filter,
+-	 * we should now clear that field. Otherwise the driver will
+-	 * assume nothing has changed (*total_flags will be compared
+-	 * to interface.filter to determine if any action is required).
+-	 */
+-	rt2x00dev->interface.filter = 0;
+ 
+ 	rt2x00dev->ops->hw->configure_filter(rt2x00dev->hw,
+-					     filter, &filter, 0, NULL);
++					     FIF_RT2X00_USE_CURRENT, NULL,
++					     0, NULL);
+ }
+ 
+ static void rt2x00lib_configuration_scheduled(struct work_struct *work)

Deleted: tags/rt2x00-2.0.12+git20071103/debian/patches/005_fix_probe_148f_2573.diff
===================================================================
--- unstable/rt2x00/debian/patches/005_fix_probe_148f_2573.diff	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/005_fix_probe_148f_2573.diff	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,72 +0,0 @@
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -1278,6 +1278,7 @@
- static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
- {
- 	u16 reg;
-+	__le32 reg32;
- 	u16 value;
- 	u16 eeprom;
- 
-@@ -1291,12 +1292,13 @@
- 	 */
- 	value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RF_TYPE);
- 	rt2500usb_register_read(rt2x00dev, MAC_CSR0, &reg);
--	rt2x00_set_chip(rt2x00dev, RT2570, value, reg);
--
--	if (rt2x00_rev(&rt2x00dev->chip, 0xffff0)) {
-+	rt2500usb_register_multiread(rt2x00dev, MAC_RT73_CSR0,
-+				     &reg32, sizeof(reg32));
-+	if ((reg & 0xfff0) || (le32_to_cpu(reg32) & 0xffff0) == 0x25730) {
- 		ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
- 		return -ENODEV;
- 	}
-+	rt2x00_set_chip(rt2x00dev, RT2570, value, reg);
- 
- 	if (!rt2x00_rf(&rt2x00dev->chip, RF2522) &&
- 	    !rt2x00_rf(&rt2x00dev->chip, RF2523) &&
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.h
-@@ -73,6 +73,11 @@
- #define MAC_CSR0			0x0400
- 
- /*
-+ * MAC_RT73_CSR0: ASIC revision number in RT73, for use when probing.
-+ */
-+#define MAC_RT73_CSR0			0x3000
-+
-+/*
-  * MAC_CSR1: System control.
-  * SOFT_RESET: Software reset, 1: reset, 0: normal.
-  * BBP_RESET: Hardware reset, 1: reset, 0, release.
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -811,11 +811,6 @@
- 	return chipset->rev;
- }
- 
--static inline u16 rt2x00_rev(const struct rt2x00_chip *chipset, const u32 mask)
--{
--	return chipset->rev & mask;
--}
--
- /*
-  * Duration calculations
-  * The rate variable passed is: 100kbs.
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -1530,12 +1530,11 @@
- 	 */
- 	value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RF_TYPE);
- 	rt73usb_register_read(rt2x00dev, MAC_CSR0, &reg);
--	rt2x00_set_chip(rt2x00dev, RT2571, value, reg);
--
--	if (!rt2x00_rev(&rt2x00dev->chip, 0x25730)) {
-+	if ((reg & 0xffff0) != 0x25730) {
- 		ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
- 		return -ENODEV;
- 	}
-+	rt2x00_set_chip(rt2x00dev, RT2571, value, reg);
- 
- 	if (!rt2x00_rf(&rt2x00dev->chip, RF5226) &&
- 	    !rt2x00_rf(&rt2x00dev->chip, RF2528) &&

Deleted: tags/rt2x00-2.0.12+git20071103/debian/patches/series
===================================================================
--- unstable/rt2x00/debian/patches/series	2007-11-11 22:54:12 UTC (rev 79)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/series	2007-11-12 00:30:15 UTC (rev 86)
@@ -1,4 +0,0 @@
-002_out_of_tree.diff
-004_fix_filter_flags.diff
-003_workaround_mac80211_changes.diff
-005_fix_probe_148f_2573.diff

Copied: tags/rt2x00-2.0.12+git20071103/debian/patches/series (from rev 85, unstable/rt2x00/debian/patches/series)
===================================================================
--- tags/rt2x00-2.0.12+git20071103/debian/patches/series	                        (rev 0)
+++ tags/rt2x00-2.0.12+git20071103/debian/patches/series	2007-11-12 00:30:15 UTC (rev 86)
@@ -0,0 +1,3 @@
+002_out_of_tree.diff
+004_fix_filter_flags.diff
+003_workaround_mac80211_changes.diff




More information about the Pkg-ralink-commits mailing list