rpms/kernel/F-8 kernel.spec, 1.307, 1.308 linux-2.6-ath5k.patch, 1.8, 1.9 linux-2.6-rtl8180.patch, 1.2, 1.3 linux-2.6-wireless-pending.patch, 1.18, 1.19 linux-2.6-wireless.patch, 1.14, 1.15 linux-2.6-libertas-backport.patch, 1.1, NONE linux-2.6-print-mac.patch, 1.2, NONE
John W. Linville (linville)
fedora-extras-commits at redhat.com
Wed Dec 19 20:35:42 UTC 2007
Author: linville
Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10255
Modified Files:
kernel.spec linux-2.6-ath5k.patch linux-2.6-rtl8180.patch
linux-2.6-wireless-pending.patch linux-2.6-wireless.patch
Removed Files:
linux-2.6-libertas-backport.patch linux-2.6-print-mac.patch
Log Message:
Some wireless fixes headed for 2.6.24 ; Some wireless updates headed for 2.6.25
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.307
retrieving revision 1.308
diff -u -r1.307 -r1.308
--- kernel.spec 19 Dec 2007 00:44:05 -0000 1.307
+++ kernel.spec 19 Dec 2007 20:34:19 -0000 1.308
@@ -2046,6 +2046,10 @@
%changelog
+* Wed Dec 19 2007 John W. Linville <linville at redhat.com> 2.6.23.10-99
+- Some wireless fixes headed for 2.6.24
+- Some wireless updates headed for 2.6.25
+
* Tue Dec 18 2007 Chuck Ebbert <cebbert at redhat.com> 2.6.23.10-98
- Linux 2.6.23.12
- Add fixed version of APM emulation patch removed in 2.6.23.10
linux-2.6-ath5k.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.8 -r 1.9 linux-2.6-ath5k.patch
Index: linux-2.6-ath5k.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-ath5k.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- linux-2.6-ath5k.patch 5 Dec 2007 16:23:14 -0000 1.8
+++ linux-2.6-ath5k.patch 19 Dec 2007 20:34:19 -0000 1.9
@@ -1,13 +1,70 @@
-diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c
---- /dev/null 2007-12-05 09:05:26.573020786 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c 2007-12-05 11:07:42.000000000 -0500
-@@ -0,0 +1,4279 @@
-+ /*
-+ * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
-+ * Copyright (c) 2006-2007 Nick Kossifidis <mickflemm at gmail.com>
-+ * Copyright (c) 2007 Matthew W. S. Bell <mentor at madwifi.org>
-+ * Copyright (c) 2007 Luis Rodriguez <mcgrof at winlab.rutgers.edu>
-+ * Copyright (c) 2007 Pavel Roskin <proski at gnu.org>
+diff -up linux-2.6.23.noarch/MAINTAINERS.orig linux-2.6.23.noarch/MAINTAINERS
+--- linux-2.6.23.noarch/MAINTAINERS.orig 2007-12-19 14:38:13.000000000 -0500
++++ linux-2.6.23.noarch/MAINTAINERS 2007-12-19 14:46:14.000000000 -0500
+@@ -642,6 +642,17 @@ M: ecashin at coraid.com
+ W: http://www.coraid.com/support/linux
+ S: Supported
+
++ATHEROS ATH5K WIRELESS DRIVER
++P: Jiri Slaby
++M: jirislaby at gmail.com
++P: Nick Kossifidis
++M: mickflemm at gmail.com
++P: Luis R. Rodriguez
++M: mcgrof at gmail.com
++L: linux-wireless at vger.kernel.org
++L: ath5k-devel at lists.ath5k.org
++S: Maintained
++
+ ATL1 ETHERNET DRIVER
+ P: Jay Cliburn
+ M: jcliburn at gmail.com
+diff -up linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig linux-2.6.23.noarch/drivers/net/wireless/Makefile
+--- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2007-12-19 14:38:13.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2007-12-19 14:46:14.000000000 -0500
+@@ -62,3 +62,5 @@ obj-$(CONFIG_RT2X00) += rt2x00/
+ obj-$(CONFIG_P54_COMMON) += p54common.o
+ obj-$(CONFIG_P54_USB) += p54usb.o
+ obj-$(CONFIG_P54_PCI) += p54pci.o
++
++obj-$(CONFIG_ATH5K) += ath5k/
+diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
+--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2007-12-19 14:38:13.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2007-12-19 14:46:55.000000000 -0500
+@@ -599,6 +599,24 @@ config P54_PCI
+ tristate "Prism54 PCI support"
+ depends on P54_COMMON && PCI
+
++config ATH5K
++ tristate "Atheros 5xxx wireless cards support"
++ depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
++ default m
++ ---help---
++ This module adds support for wireless adapters based on
++ Atheros 5xxx chipset.
++
++ Currently the following chip versions are supported:
++
++ MAC: AR5211 AR5212
++ PHY: RF5111/2111 RF5112/2112 RF5413/2413
++
++ This driver uses the kernel's mac80211 subsystem.
++
++ If you choose to build a module, it'll be called ath5k. Say M if
++ unsure.
++
+ source "drivers/net/wireless/hostap/Kconfig"
+ source "drivers/net/wireless/bcm43xx/Kconfig"
+ source "drivers/net/wireless/b43/Kconfig"
+diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c
+--- /dev/null 2007-12-19 09:04:26.531266789 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c 2007-12-19 14:46:14.000000000 -0500
+@@ -0,0 +1,2071 @@
++/*
++ * PHY functions
++ *
++ * Copyright (c) 2004, 2005, 2006, 2007 Reyk Floeter <reyk at openbsd.org>
++ * Copyright (c) 2006, 2007 Nick Kossifidis <mickflemm at gmail.com>
+ * Copyright (c) 2007 Jiri Slaby <jirislaby at gmail.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
@@ -24,11228 +81,10889 @@
+ *
+ */
+
-+/*
-+ * HW related functions for Atheros Wireless LAN devices.
-+ */
-+
-+#include <linux/pci.h>
+#include <linux/delay.h>
+
++#include "ath5k.h"
+#include "reg.h"
+#include "base.h"
-+#include "debug.h"
-+
-+/*Rate tables*/
-+static const struct ath5k_rate_table ath5k_rt_11a = AR5K_RATES_11A;
-+static const struct ath5k_rate_table ath5k_rt_11b = AR5K_RATES_11B;
-+static const struct ath5k_rate_table ath5k_rt_11g = AR5K_RATES_11G;
-+static const struct ath5k_rate_table ath5k_rt_turbo = AR5K_RATES_TURBO;
-+static const struct ath5k_rate_table ath5k_rt_xr = AR5K_RATES_XR;
-+
-+/*Prototypes*/
-+static int ath5k_hw_nic_reset(struct ath5k_hw *, u32);
-+static int ath5k_hw_nic_wakeup(struct ath5k_hw *, int, bool);
-+static int ath5k_hw_setup_4word_tx_desc(struct ath5k_hw *, struct ath5k_desc *,
-+ unsigned int, unsigned int, enum ath5k_pkt_type, unsigned int,
-+ unsigned int, unsigned int, unsigned int, unsigned int, unsigned int,
-+ unsigned int, unsigned int);
-+static bool ath5k_hw_setup_xr_tx_desc(struct ath5k_hw *, struct ath5k_desc *,
-+ unsigned int, unsigned int, unsigned int, unsigned int, unsigned int,
-+ unsigned int);
-+static int ath5k_hw_proc_4word_tx_status(struct ath5k_hw *, struct ath5k_desc *);
-+static int ath5k_hw_setup_2word_tx_desc(struct ath5k_hw *, struct ath5k_desc *,
-+ unsigned int, unsigned int, enum ath5k_pkt_type, unsigned int,
-+ unsigned int, unsigned int, unsigned int, unsigned int, unsigned int,
-+ unsigned int, unsigned int);
-+static int ath5k_hw_proc_2word_tx_status(struct ath5k_hw *, struct ath5k_desc *);
-+static int ath5k_hw_proc_new_rx_status(struct ath5k_hw *, struct ath5k_desc *);
-+static int ath5k_hw_proc_old_rx_status(struct ath5k_hw *, struct ath5k_desc *);
-+static int ath5k_hw_get_capabilities(struct ath5k_hw *);
-+
-+static int ath5k_eeprom_init(struct ath5k_hw *);
-+static int ath5k_eeprom_read_mac(struct ath5k_hw *, u8 *);
-+
-+static int ath5k_hw_enable_pspoll(struct ath5k_hw *, u8 *, u16);
-+static int ath5k_hw_disable_pspoll(struct ath5k_hw *);
-+
-+/*
-+ * Enable to overwrite the country code (use "00" for debug)
-+ */
-+#if 0
-+#define COUNTRYCODE "00"
-+#endif
-+
-+/*******************\
-+ General Functions
-+\*******************/
-+
-+/*
-+ * Functions used internaly
-+ */
-+
-+static inline unsigned int ath5k_hw_htoclock(unsigned int usec, bool turbo)
-+{
-+ return turbo == true ? (usec * 80) : (usec * 40);
-+}
+
-+static inline unsigned int ath5k_hw_clocktoh(unsigned int clock, bool turbo)
-+{
-+ return turbo == true ? (clock / 80) : (clock / 40);
-+}
++/* Struct to hold initial RF register values (RF Banks) */
++struct ath5k_ini_rf {
++ u8 rf_bank; /* check out ath5k_reg.h */
++ u16 rf_register; /* register address */
++ u32 rf_value[5]; /* register value for different modes (above) */
++};
+
+/*
-+ * Check if a register write has been completed
++ * Mode-specific RF Gain table (64bytes) for RF5111/5112
++ * (RF5110 only comes with AR5210 and only supports a/turbo a mode so initial
++ * RF Gain values are included in AR5K_AR5210_INI)
+ */
-+int ath5k_hw_register_timeout(struct ath5k_hw *ah, u32 reg, u32 flag, u32 val,
-+ bool is_set)
-+{
-+ int i;
-+ u32 data;
++struct ath5k_ini_rfgain {
++ u16 rfg_register; /* RF Gain register address */
++ u32 rfg_value[2]; /* [freq (see below)] */
++};
+
-+ for (i = AR5K_TUNE_REGISTER_TIMEOUT; i > 0; i--) {
-+ data = ath5k_hw_reg_read(ah, reg);
-+ if ((is_set == true) && (data & flag))
-+ break;
-+ else if ((data & flag) == val)
-+ break;
-+ udelay(15);
-+ }
++struct ath5k_gain_opt {
++ u32 go_default;
++ u32 go_steps_count;
++ const struct ath5k_gain_opt_step go_step[AR5K_GAIN_STEP_COUNT];
++};
+
-+ return (i <= 0) ? -EAGAIN : 0;
[...28614 lines suppressed...]
+
-+static inline void
-+ath5k_debug_finish(void) {}
++#define ath5k_hw_hasbssidmask(_ah) \
++ (ath5k_hw_get_capability(_ah, AR5K_CAP_BSSIDMASK, 0, NULL) == 0)
++#define ath5k_hw_hasveol(_ah) \
++ (ath5k_hw_get_capability(_ah, AR5K_CAP_VEOL, 0, NULL) == 0)
+
-+static inline void
-+ath5k_debug_finish_device(struct ath5k_softc *sc) {}
++#endif
+diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c
+--- /dev/null 2007-12-19 09:04:26.531266789 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c 2007-12-19 14:46:14.000000000 -0500
+@@ -0,0 +1,121 @@
++/*
++ * Copyright (c) 2004, 2005 Reyk Floeter <reyk at vantronix.net>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
+
-+static inline void
-+ath5k_debug_printrxbuffs(struct ath5k_softc *sc, struct ath5k_hw *ah) {}
++/*
++ * Basic regulation domain extensions for the IEEE 802.11 stack
++ */
+
-+static inline void
-+ath5k_debug_dump_modes(struct ath5k_softc *sc,
-+ struct ieee80211_hw_mode *modes) {}
++#include <linux/kernel.h>
++#include <linux/string.h>
+
-+static inline void
-+ath5k_debug_dump_skb(struct ath5k_softc *sc,
-+ struct sk_buff *skb, const char *prefix, int tx) {}
++#include "regdom.h"
+
-+static inline void
-+ath5k_debug_printtxbuf(struct ath5k_softc *sc,
-+ struct ath5k_buf *bf, int done) {}
++static const struct ath5k_regdommap {
++ enum ath5k_regdom dmn;
++ enum ath5k_regdom dmn5;
++ enum ath5k_regdom dmn2;
++} r_map[] = {
++ { DMN_DEFAULT, DMN_DEBUG, DMN_DEBUG },
++ { DMN_NULL_WORLD, DMN_NULL, DMN_WORLD },
++ { DMN_NULL_ETSIB, DMN_NULL, DMN_ETSIB },
++ { DMN_NULL_ETSIC, DMN_NULL, DMN_ETSIC },
++ { DMN_FCC1_FCCA, DMN_FCC1, DMN_FCCA },
++ { DMN_FCC1_WORLD, DMN_FCC1, DMN_WORLD },
++ { DMN_FCC2_FCCA, DMN_FCC2, DMN_FCCA },
++ { DMN_FCC2_WORLD, DMN_FCC2, DMN_WORLD },
++ { DMN_FCC2_ETSIC, DMN_FCC2, DMN_ETSIC },
++ { DMN_FRANCE_NULL, DMN_ETSI3, DMN_ETSI3 },
++ { DMN_FCC3_FCCA, DMN_FCC3, DMN_WORLD },
++ { DMN_ETSI1_WORLD, DMN_ETSI1, DMN_WORLD },
++ { DMN_ETSI3_ETSIA, DMN_ETSI3, DMN_WORLD },
++ { DMN_ETSI2_WORLD, DMN_ETSI2, DMN_WORLD },
++ { DMN_ETSI3_WORLD, DMN_ETSI3, DMN_WORLD },
++ { DMN_ETSI4_WORLD, DMN_ETSI4, DMN_WORLD },
++ { DMN_ETSI4_ETSIC, DMN_ETSI4, DMN_ETSIC },
++ { DMN_ETSI5_WORLD, DMN_ETSI5, DMN_WORLD },
++ { DMN_ETSI6_WORLD, DMN_ETSI6, DMN_WORLD },
++ { DMN_ETSI_NULL, DMN_ETSI1, DMN_ETSI1 },
++ { DMN_MKK1_MKKA, DMN_MKK1, DMN_MKKA },
++ { DMN_MKK1_MKKB, DMN_MKK1, DMN_MKKA },
++ { DMN_APL4_WORLD, DMN_APL4, DMN_WORLD },
++ { DMN_MKK2_MKKA, DMN_MKK2, DMN_MKKA },
++ { DMN_APL_NULL, DMN_APL1, DMN_NULL },
++ { DMN_APL2_WORLD, DMN_APL2, DMN_WORLD },
++ { DMN_APL2_APLC, DMN_APL2, DMN_WORLD },
++ { DMN_APL3_WORLD, DMN_APL3, DMN_WORLD },
++ { DMN_MKK1_FCCA, DMN_MKK1, DMN_FCCA },
++ { DMN_APL2_APLD, DMN_APL2, DMN_APLD },
++ { DMN_MKK1_MKKA1, DMN_MKK1, DMN_MKKA },
++ { DMN_MKK1_MKKA2, DMN_MKK1, DMN_MKKA },
++ { DMN_APL1_WORLD, DMN_APL1, DMN_WORLD },
++ { DMN_APL1_FCCA, DMN_APL1, DMN_FCCA },
++ { DMN_APL1_APLA, DMN_APL1, DMN_WORLD },
++ { DMN_APL1_ETSIC, DMN_APL1, DMN_ETSIC },
++ { DMN_APL2_ETSIC, DMN_APL2, DMN_ETSIC },
++ { DMN_APL5_WORLD, DMN_APL5, DMN_WORLD },
++ { DMN_WOR0_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR1_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR2_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR3_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR4_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR5_ETSIC, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR01_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WOR02_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_EU1_WORLD, DMN_ETSI1, DMN_WORLD },
++ { DMN_WOR9_WORLD, DMN_WORLD, DMN_WORLD },
++ { DMN_WORA_WORLD, DMN_WORLD, DMN_WORLD },
++};
+
-+#endif /* if ATH5K_DEBUG */
++enum ath5k_regdom ath5k_regdom2flag(enum ath5k_regdom dmn, u16 mhz)
++{
++ unsigned int i;
+
-+#endif /* ifndef _ATH5K_DEBUG_H */
-diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2007-12-05 11:07:10.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2007-12-05 11:08:23.000000000 -0500
-@@ -598,6 +598,24 @@ config P54_PCI
- tristate "Prism54 PCI support"
- depends on P54_COMMON && PCI
-
-+config ATH5K
-+ tristate "Atheros 5xxx wireless cards support"
-+ depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
-+ default m
-+ ---help---
-+ This module adds support for wireless adapters based on
-+ Atheros 5xxx chipset.
++ for (i = 0; i < ARRAY_SIZE(r_map); i++) {
++ if (r_map[i].dmn == dmn) {
++ if (mhz >= 2000 && mhz <= 3000)
++ return r_map[i].dmn2;
++ if (mhz >= IEEE80211_CHANNELS_5GHZ_MIN &&
++ mhz <= IEEE80211_CHANNELS_5GHZ_MAX)
++ return r_map[i].dmn5;
++ }
++ }
+
-+ Currently the following chip versions are supported:
++ return DMN_DEBUG;
++}
+
-+ MAC: AR5211 AR5212
-+ PHY: RF5111/2111 RF5112/2112 RF5413/2413
++u16 ath5k_regdom_from_ieee(enum ath5k_regdom ieee)
++{
++ u32 regdomain = (u32)ieee;
+
-+ This driver uses the kernel's mac80211 subsystem.
++ /*
++ * Use the default regulation domain if the value is empty
++ * or not supported by the net80211 regulation code.
++ */
++ if (ath5k_regdom2flag(regdomain, IEEE80211_CHANNELS_5GHZ_MIN) ==
++ DMN_DEBUG)
++ return (u16)AR5K_TUNE_REGDOMAIN;
+
-+ If you choose to build a module, it'll be called ath5k. Say M if
-+ unsure.
++ /* It is supported, just return the value */
++ return regdomain;
++}
+
- source "drivers/net/wireless/hostap/Kconfig"
- source "drivers/net/wireless/bcm43xx/Kconfig"
- source "drivers/net/wireless/b43/Kconfig"
-diff -up linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig linux-2.6.23.noarch/drivers/net/wireless/Makefile
---- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2007-12-05 11:07:10.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2007-12-05 11:07:42.000000000 -0500
-@@ -62,3 +62,5 @@ obj-$(CONFIG_RT2X00) += rt2x00/
- obj-$(CONFIG_P54_COMMON) += p54common.o
- obj-$(CONFIG_P54_USB) += p54usb.o
- obj-$(CONFIG_P54_PCI) += p54pci.o
++enum ath5k_regdom ath5k_regdom_to_ieee(u16 regdomain)
++{
++ enum ath5k_regdom ieee = (enum ath5k_regdom)regdomain;
+
-+obj-$(CONFIG_ATH5K) += ath5k/
-diff -up linux-2.6.23.noarch/MAINTAINERS.orig linux-2.6.23.noarch/MAINTAINERS
---- linux-2.6.23.noarch/MAINTAINERS.orig 2007-12-05 11:07:10.000000000 -0500
-+++ linux-2.6.23.noarch/MAINTAINERS 2007-12-05 11:07:42.000000000 -0500
-@@ -642,6 +642,17 @@ M: ecashin at coraid.com
- W: http://www.coraid.com/support/linux
- S: Supported
-
-+ATHEROS ATH5K WIRELESS DRIVER
-+P: Jiri Slaby
-+M: jirislaby at gmail.com
-+P: Nick Kossifidis
-+M: mickflemm at gmail.com
-+P: Luis R. Rodriguez
-+M: mcgrof at gmail.com
-+L: linux-wireless at vger.kernel.org
-+L: ath5k-devel at lists.ath5k.org
-+S: Maintained
++ return ieee;
++}
+
- ATL1 ETHERNET DRIVER
- P: Jay Cliburn
- M: jcliburn at gmail.com
linux-2.6-rtl8180.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.2 -r 1.3 linux-2.6-rtl8180.patch
Index: linux-2.6-rtl8180.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-rtl8180.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-rtl8180.patch 5 Dec 2007 16:23:14 -0000 1.2
+++ linux-2.6-rtl8180.patch 19 Dec 2007 20:34:19 -0000 1.3
@@ -1,18 +1,35 @@
-diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c
---- /dev/null 2007-12-05 09:05:26.573020786 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c 2007-12-05 11:16:39.000000000 -0500
-@@ -0,0 +1,1053 @@
+diff -up linux-2.6.23.noarch/include/linux/pci_ids.h.orig linux-2.6.23.noarch/include/linux/pci_ids.h
+--- linux-2.6.23.noarch/include/linux/pci_ids.h.orig 2007-12-19 14:48:35.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/pci_ids.h 2007-12-19 14:49:12.000000000 -0500
+@@ -2059,6 +2059,9 @@
+ #define PCI_DEVICE_ID_ALTIMA_AC9100 0x03ea
+ #define PCI_DEVICE_ID_ALTIMA_AC1003 0x03eb
+
++#define PCI_VENDOR_ID_BELKIN 0x1799
++#define PCI_DEVICE_ID_BELKIN_F5D7010V7 0x701f
++
+ #define PCI_VENDOR_ID_LENOVO 0x17aa
+
+ #define PCI_VENDOR_ID_ARECA 0x17d3
+diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c
+--- /dev/null 2007-12-19 09:04:26.531266789 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c 2007-12-19 14:49:12.000000000 -0500
+@@ -0,0 +1,193 @@
+
+/*
-+ * Linux device driver for RTL8180 / RTL8185
++ * Radio tuning for Philips SA2400 on RTL8180
+ *
-+ * Copyright 2007 Michael Wu <flamingice at sourmilk.net>
+ * Copyright 2007 Andrea Merello <andreamrl at tiscali.it>
+ *
-+ * Based on the r8180 driver, which is:
-+ * Copyright 2004-2005 Andrea Merello <andreamrl at tiscali.it>, et al.
++ * Code from the BSD driver and the rtl8181 project have been
++ * very useful to understand certain things
+ *
-+ * Thanks to Realtek for their support!
++ * I want to thanks the Authors of such projects and the Ndiswrapper
++ * project Authors.
++ *
++ * A special Big Thanks also is for all people who donated me cards,
++ * making possible the creation of the original rtl8180 driver
++ * from which this code is derived!
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
@@ -22,1843 +39,2205 @@
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <linux/delay.h>
-+#include <linux/etherdevice.h>
-+#include <linux/eeprom_93cx6.h>
+#include <net/mac80211.h>
+
+#include "rtl8180.h"
-+#include "rtl8180_rtl8225.h"
+#include "rtl8180_sa2400.h"
-+#include "rtl8180_max2820.h"
-+
-+MODULE_AUTHOR("Michael Wu <flamingice at sourmilk.net>");
-+MODULE_AUTHOR("Andrea Merello <andreamrl at tiscali.it>");
-+MODULE_DESCRIPTION("RTL8180 / RTL8185 PCI wireless driver");
-+MODULE_LICENSE("GPL");
-+
-+static struct pci_device_id rtl8180_table[] __devinitdata = {
-+ /* rtl8185 */
-+ { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8185) },
+
-+ /* rtl8180 */
-+ { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8180) },
-+ { PCI_DEVICE(0x1799, 0x6001) },
-+ { PCI_DEVICE(0x1799, 0x6020) },
-+ { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x3300) },
-+ { }
++static const u32 sa2400_chan[] = {
++ 0x00096c, /* ch1 */
++ 0x080970,
++ 0x100974,
++ 0x180978,
++ 0x000980,
++ 0x080984,
++ 0x100988,
++ 0x18098c,
++ 0x000994,
++ 0x080998,
++ 0x10099c,
++ 0x1809a0,
++ 0x0009a8,
++ 0x0009b4, /* ch 14 */
+};
+
-+MODULE_DEVICE_TABLE(pci, rtl8180_table);
-+
-+void rtl8180_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data)
++static void write_sa2400(struct ieee80211_hw *dev, u8 addr, u32 data)
+{
+ struct rtl8180_priv *priv = dev->priv;
-+ int i = 10;
-+ u32 buf;
++ u32 phy_config;
+
-+ buf = (data << 8) | addr;
++ /* MAC will bang bits to the sa2400. sw 3-wire is NOT used */
++ phy_config = 0xb0000000;
+
-+ rtl818x_iowrite32(priv, (__le32 __iomem *)&priv->map->PHY[0], buf | 0x80);
-+ while (i--) {
-+ rtl818x_iowrite32(priv, (__le32 __iomem *)&priv->map->PHY[0], buf);
-+ if (rtl818x_ioread8(priv, &priv->map->PHY[2]) == (data & 0xFF))
-+ return;
-+ }
++ phy_config |= ((u32)(addr & 0xf)) << 24;
++ phy_config |= data & 0xffffff;
++
++ rtl818x_iowrite32(priv,
++ (__le32 __iomem *) &priv->map->RFPinsOutput, phy_config);
++
++ msleep(3);
+}
+
-+static void rtl8180_handle_rx(struct ieee80211_hw *dev)
++static void sa2400_write_phy_antenna(struct ieee80211_hw *dev, short chan)
+{
+ struct rtl8180_priv *priv = dev->priv;
-+ unsigned int count = 32;
++ u8 ant = SA2400_ANTENNA;
+
-+ while (count--) {
-+ struct rtl8180_rx_desc *entry = &priv->rx_ring[priv->rx_idx];
-+ struct sk_buff *skb = priv->rx_buf[priv->rx_idx];
-+ u32 flags = le32_to_cpu(entry->flags);
++ if (priv->rfparam & RF_PARAM_ANTBDEFAULT)
++ ant |= BB_ANTENNA_B;
+
-+ if (flags & RTL8180_RX_DESC_FLAG_OWN)
-+ return;
++ if (chan == 14)
++ ant |= BB_ANTATTEN_CHAN14;
+
-+ if (unlikely(flags & (RTL8180_RX_DESC_FLAG_DMA_FAIL |
-+ RTL8180_RX_DESC_FLAG_FOF |
-+ RTL8180_RX_DESC_FLAG_RX_ERR)))
-+ goto done;
-+ else {
-+ u32 flags2 = le32_to_cpu(entry->flags2);
-+ struct ieee80211_rx_status rx_status = {0};
-+ struct sk_buff *new_skb = dev_alloc_skb(MAX_RX_SIZE);
-+ int rate;
++ rtl8180_write_phy(dev, 0x10, ant);
+
-+ if (unlikely(!new_skb))
-+ goto done;
++}
+
-+ pci_unmap_single(priv->pdev,
-+ *((dma_addr_t *)skb->cb),
-+ MAX_RX_SIZE, PCI_DMA_FROMDEVICE);
-+ skb_put(skb, flags & 0xFFF);
++void sa2400_rf_set_channel(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
++{
++ struct rtl8180_priv *priv = dev->priv;
++ u32 txpw = priv->channels[conf->channel - 1].val & 0xFF;
++ u32 chan = sa2400_chan[conf->channel - 1];
+
-+ rate = (flags >> 20) & 0xF;
-+ rx_status.antenna = (flags2 >> 15) & 1;
-+ /* TODO: improve signal/rssi reporting */
-+ rx_status.signal = flags2 & 0xFF;
-+ rx_status.ssi = (flags2 >> 8) & 0x7F;
-+ rx_status.rate = priv->rates[rate].rate;
-+ rx_status.freq = dev->conf.freq;
-+ rx_status.channel = dev->conf.channel;
-+ rx_status.phymode = dev->conf.phymode;
-+ rx_status.mactime = le64_to_cpu(entry->tsft);
-+ ieee80211_rx_irqsafe(dev, skb, &rx_status);
++ write_sa2400(dev, 7, txpw);
+
-+ skb = new_skb;
-+ priv->rx_buf[priv->rx_idx] = skb;
-+ *((dma_addr_t *) skb->cb) =
-+ pci_map_single(priv->pdev, skb_tail_pointer(skb),
-+ MAX_RX_SIZE, PCI_DMA_FROMDEVICE);
-+ }
++ sa2400_write_phy_antenna(dev, chan);
+
-+ done:
-+ entry->rx_buf = cpu_to_le32(*((dma_addr_t *)skb->cb));
-+ entry->flags = cpu_to_le32(RTL8180_RX_DESC_FLAG_OWN |
-+ MAX_RX_SIZE);
-+ if (priv->rx_idx == 31)
-+ entry->flags |= cpu_to_le32(RTL8180_RX_DESC_FLAG_EOR);
-+ priv->rx_idx = (priv->rx_idx + 1) % 32;
-+ }
[...4165 lines suppressed...]
-+ write_sa2400(dev, 1, 0xbb50);
-+ write_sa2400(dev, 2, 0x80);
-+ write_sa2400(dev, 3, 0);
-+ write_sa2400(dev, 4, 0x19340 | firdac);
-+ write_sa2400(dev, 5, 0x1dfb | (SA2400_MAX_SENS - 54) << 15);
-+ write_sa2400(dev, 4, 0x19348 | firdac); /* calibrate VCO */
-+
-+ if (!analogphy)
-+ write_sa2400(dev, 4, 0x1938c); /*???*/
-+
-+ write_sa2400(dev, 4, 0x19340 | firdac);
-+
-+ write_sa2400(dev, 0, sa2400_chan[0]);
-+ write_sa2400(dev, 1, 0xbb50);
-+ write_sa2400(dev, 2, 0x80);
-+ write_sa2400(dev, 3, 0);
-+ write_sa2400(dev, 4, 0x19344 | firdac); /* calibrate filter */
-+
-+ /* new from rtl8180 embedded driver (rtl8181 project) */
-+ write_sa2400(dev, 6, 0x13ff | (1 << 23)); /* MANRX */
-+ write_sa2400(dev, 8, 0); /* VCO */
-+
-+ if (analogphy) {
-+ rtl8180_set_anaparam(priv, anaparam |
-+ (1 << ANAPARAM_TXDACOFF_SHIFT));
-+
-+ txconf = rtl818x_ioread32(priv, &priv->map->TX_CONF);
-+ rtl818x_iowrite32(priv, &priv->map->TX_CONF,
-+ txconf | RTL818X_TX_CONF_LOOPBACK_CONT);
-+
-+ write_sa2400(dev, 4, 0x19341); /* calibrates DC */
-+
-+ /* a 5us sleep is required here,
-+ * we rely on the 3ms delay introduced in write_sa2400 */
-+ write_sa2400(dev, 4, 0x19345);
+
-+ /* a 20us sleep is required here,
-+ * we rely on the 3ms delay introduced in write_sa2400 */
++ /* MAXIM from netbsd driver */
++ write_max2820(dev, 0, 0x007); /* test mode as indicated in datasheet */
++ write_max2820(dev, 1, 0x01e); /* enable register */
++ write_max2820(dev, 2, 0x001); /* synt register */
+
-+ rtl818x_iowrite32(priv, &priv->map->TX_CONF, txconf);
++ max2820_rf_set_channel(dev, NULL);
+
-+ rtl8180_set_anaparam(priv, anaparam);
-+ }
-+ /* end new code */
++ write_max2820(dev, 4, 0x313); /* rx register */
+
-+ write_sa2400(dev, 4, 0x19341 | firdac); /* RTX MODE */
++ /* PA is driven directly by the BB, we keep the MAXIM bias
++ * at the highest value in case that setting it to lower
++ * values may introduce some further attenuation somewhere..
++ */
++ write_max2820(dev, 5, 0x00f);
+
+ /* baseband configuration */
-+ rtl8180_write_phy(dev, 0, 0x98);
-+ rtl8180_write_phy(dev, 3, 0x38);
-+ rtl8180_write_phy(dev, 4, 0xe0);
-+ rtl8180_write_phy(dev, 5, 0x90);
-+ rtl8180_write_phy(dev, 6, 0x1a);
-+ rtl8180_write_phy(dev, 7, 0x64);
++ rtl8180_write_phy(dev, 0, 0x88); /* sys1 */
++ rtl8180_write_phy(dev, 3, 0x08); /* txagc */
++ rtl8180_write_phy(dev, 4, 0xf8); /* lnadet */
++ rtl8180_write_phy(dev, 5, 0x90); /* ifagcinit */
++ rtl8180_write_phy(dev, 6, 0x1a); /* ifagclimit */
++ rtl8180_write_phy(dev, 7, 0x64); /* ifagcdet */
+
-+ sa2400_write_phy_antenna(dev, 1);
++ max2820_write_phy_antenna(dev, 1);
+
-+ rtl8180_write_phy(dev, 0x11, 0x80);
++ rtl8180_write_phy(dev, 0x11, 0x88); /* trl */
+
+ if (rtl818x_ioread8(priv, &priv->map->CONFIG2) &
+ RTL818X_CONFIG2_ANTENNA_DIV)
-+ rtl8180_write_phy(dev, 0x12, 0xc7); /* enable ant diversity */
++ rtl8180_write_phy(dev, 0x12, 0xc7);
+ else
-+ rtl8180_write_phy(dev, 0x12, 0x47); /* disable ant diversity */
-+
-+ rtl8180_write_phy(dev, 0x13, 0x90 | priv->csthreshold);
++ rtl8180_write_phy(dev, 0x12, 0x47);
+
-+ rtl8180_write_phy(dev, 0x19, 0x0);
-+ rtl8180_write_phy(dev, 0x1a, 0xa0);
-+}
-diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig 2007-12-05 11:15:01.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig 2007-12-05 11:15:07.000000000 -0500
-@@ -546,6 +546,11 @@ config USB_ZD1201
- To compile this driver as a module, choose M here: the
- module will be called zd1201.
-
-+config RTL8180
-+ tristate "Realtek 8185 PCI support"
-+ depends on MAC80211 && PCI && WLAN_80211 && EXPERIMENTAL
-+ select EEPROM_93CX6
++ rtl8180_write_phy(dev, 0x13, 0x9b);
+
- config RTL8187
- tristate "Realtek 8187 USB support"
- depends on MAC80211 && USB && WLAN_80211 && EXPERIMENTAL
-diff -up linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig linux-2.6.23.noarch/drivers/net/wireless/Makefile
---- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig 2007-12-05 11:15:01.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile 2007-12-05 11:15:07.000000000 -0500
-@@ -49,7 +49,10 @@ obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs
- obj-$(CONFIG_USB_ZD1201) += zd1201.o
- obj-$(CONFIG_LIBERTAS) += libertas/
-
-+rtl8180-objs := rtl8180_dev.o rtl8180_rtl8225.o rtl8180_sa2400.o rtl8180_max2820.o
- rtl8187-objs := rtl8187_dev.o rtl8187_rtl8225.o
++ rtl8180_write_phy(dev, 0x19, 0x0); /* CHESTLIM */
++ rtl8180_write_phy(dev, 0x1a, 0x9f); /* CHSQLIM */
+
-+obj-$(CONFIG_RTL8180) += rtl8180.o
- obj-$(CONFIG_RTL8187) += rtl8187.o
-
- obj-$(CONFIG_ADM8211) += adm8211.o
-diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h
---- linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig 2007-12-05 11:15:01.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h 2007-12-05 11:15:07.000000000 -0500
-@@ -58,13 +58,17 @@ struct rtl818x_csr {
- #define RTL818X_INT_TX_FO (1 << 15)
- __le32 TX_CONF;
- #define RTL818X_TX_CONF_LOOPBACK_MAC (1 << 17)
-+#define RTL818X_TX_CONF_LOOPBACK_CONT (3 << 17)
- #define RTL818X_TX_CONF_NO_ICV (1 << 19)
- #define RTL818X_TX_CONF_DISCW (1 << 20)
-+#define RTL818X_TX_CONF_SAT_HWPLCP (1 << 24)
- #define RTL818X_TX_CONF_R8180_ABCD (2 << 25)
- #define RTL818X_TX_CONF_R8180_F (3 << 25)
- #define RTL818X_TX_CONF_R8185_ABC (4 << 25)
- #define RTL818X_TX_CONF_R8185_D (5 << 25)
- #define RTL818X_TX_CONF_HWVER_MASK (7 << 25)
-+#define RTL818X_TX_CONF_PROBE_DTS (1 << 29)
-+#define RTL818X_TX_CONF_HW_SEQNUM (1 << 30)
- #define RTL818X_TX_CONF_CW_MIN (1 << 31)
- __le32 RX_CONF;
- #define RTL818X_RX_CONF_MONITOR (1 << 0)
-@@ -75,8 +79,12 @@ struct rtl818x_csr {
- #define RTL818X_RX_CONF_DATA (1 << 18)
- #define RTL818X_RX_CONF_CTRL (1 << 19)
- #define RTL818X_RX_CONF_MGMT (1 << 20)
-+#define RTL818X_RX_CONF_ADDR3 (1 << 21)
-+#define RTL818X_RX_CONF_PM (1 << 22)
- #define RTL818X_RX_CONF_BSSID (1 << 23)
- #define RTL818X_RX_CONF_RX_AUTORESETPHY (1 << 28)
-+#define RTL818X_RX_CONF_CSDM1 (1 << 29)
-+#define RTL818X_RX_CONF_CSDM2 (1 << 30)
- #define RTL818X_RX_CONF_ONLYERLPKT (1 << 31)
- __le32 INT_TIMEOUT;
- __le32 TBDA;
-@@ -92,6 +100,7 @@ struct rtl818x_csr {
- u8 CONFIG0;
- u8 CONFIG1;
- u8 CONFIG2;
-+#define RTL818X_CONFIG2_ANTENNA_DIV (1 << 6)
- __le32 ANAPARAM;
- u8 MSR;
- #define RTL818X_MSR_NO_LINK (0 << 2)
-@@ -104,14 +113,17 @@ struct rtl818x_csr {
- #define RTL818X_CONFIG4_VCOOFF (1 << 7)
- u8 TESTR;
- u8 reserved_9[2];
-- __le16 PGSELECT;
-+ u8 PGSELECT;
-+ u8 SECURITY;
- __le32 ANAPARAM2;
- u8 reserved_10[12];
- __le16 BEACON_INTERVAL;
- __le16 ATIM_WND;
- __le16 BEACON_INTERVAL_TIME;
- __le16 ATIMTR_INTERVAL;
-- u8 reserved_11[4];
-+ u8 PHY_DELAY;
-+ u8 CARRIER_SENSE_COUNTER;
-+ u8 reserved_11[2];
- u8 PHY[4];
- __le16 RFPinsOutput;
- __le16 RFPinsEnable;
-@@ -149,8 +161,10 @@ struct rtl818x_csr {
- u8 RETRY_CTR;
- u8 reserved_18[5];
- __le32 RDSAR;
-- u8 reserved_19[18];
-- u16 TALLY_CNT;
-+ u8 reserved_19[12];
-+ __le16 FEMR;
-+ u8 reserved_20[4];
-+ __le16 TALLY_CNT;
- u8 TALLY_SEL;
- } __attribute__((packed));
-
++ max2820_rf_set_channel(dev, NULL);
++}
linux-2.6-wireless-pending.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.18 -r 1.19 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-wireless-pending.patch,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- linux-2.6-wireless-pending.patch 5 Dec 2007 16:23:14 -0000 1.18
+++ linux-2.6-wireless-pending.patch 19 Dec 2007 20:34:19 -0000 1.19
@@ -1,7296 +1,6467 @@
-diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c
---- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c.orig 2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c 2007-12-05 10:54:06.000000000 -0500
-@@ -283,8 +283,8 @@ static void rtl8225_rf_set_tx_power(stru
- u32 reg;
- int i;
+diff -up linux-2.6.23.noarch/include/linux/wireless.h.orig linux-2.6.23.noarch/include/linux/wireless.h
+--- linux-2.6.23.noarch/include/linux/wireless.h.orig 2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/linux/wireless.h 2007-12-19 14:14:57.000000000 -0500
+@@ -541,6 +541,16 @@
+ /* Maximum size of returned data */
+ #define IW_SCAN_MAX_DATA 4096 /* In bytes */
+
++/* Scan capability flags - in (struct iw_range *)->scan_capa */
++#define IW_SCAN_CAPA_NONE 0x00
++#define IW_SCAN_CAPA_ESSID 0x01
++#define IW_SCAN_CAPA_BSSID 0x02
++#define IW_SCAN_CAPA_CHANNEL 0x04
++#define IW_SCAN_CAPA_MODE 0x08
++#define IW_SCAN_CAPA_RATE 0x10
++#define IW_SCAN_CAPA_TYPE 0x20
++#define IW_SCAN_CAPA_TIME 0x40
++
+ /* Max number of char in custom event - use multiple of them if needed */
+ #define IW_CUSTOM_MAX 256 /* In bytes */
+
+@@ -963,6 +973,9 @@ struct iw_range
+ __u16 old_num_channels;
+ __u8 old_num_frequency;
-- cck_power = priv->channels[channel - 1].val & 0xF;
-- ofdm_power = priv->channels[channel - 1].val >> 4;
-+ cck_power = priv->channels[channel - 1].val & 0xFF;
-+ ofdm_power = priv->channels[channel - 1].val >> 8;
++ /* Scan capabilities */
++ __u8 scan_capa; /* IW_SCAN_CAPA_* bit field */
++
+ /* Wireless event capability bitmasks */
+ __u32 event_capa[6];
- cck_power = min(cck_power, (u8)11);
- ofdm_power = min(ofdm_power, (u8)35);
-@@ -500,8 +500,8 @@ static void rtl8225z2_rf_set_tx_power(st
- u32 reg;
- int i;
+diff -up linux-2.6.23.noarch/include/linux/ieee80211.h.orig linux-2.6.23.noarch/include/linux/ieee80211.h
+--- linux-2.6.23.noarch/include/linux/ieee80211.h.orig 2007-12-19 13:32:44.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/ieee80211.h 2007-12-19 13:33:39.000000000 -0500
+@@ -54,6 +54,8 @@
+ #define IEEE80211_STYPE_ACTION 0x00D0
-- cck_power = priv->channels[channel - 1].val & 0xF;
-- ofdm_power = priv->channels[channel - 1].val >> 4;
-+ cck_power = priv->channels[channel - 1].val & 0xFF;
-+ ofdm_power = priv->channels[channel - 1].val >> 8;
+ /* control */
++#define IEEE80211_STYPE_BACK_REQ 0x0080
++#define IEEE80211_STYPE_BACK 0x0090
+ #define IEEE80211_STYPE_PSPOLL 0x00A0
+ #define IEEE80211_STYPE_RTS 0x00B0
+ #define IEEE80211_STYPE_CTS 0x00C0
+@@ -81,18 +83,18 @@
- cck_power = min(cck_power, (u8)15);
- cck_power += priv->txpwr_base & 0xF;
-diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/b43legacy/rfkill.h
---- /dev/null 2007-12-05 09:05:26.573020786 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/b43legacy/rfkill.h 2007-12-05 10:52:43.000000000 -0500
-@@ -0,0 +1,59 @@
-+#ifndef B43legacy_RFKILL_H_
-+#define B43legacy_RFKILL_H_
-+
-+struct b43legacy_wldev;
-+
-+#ifdef CONFIG_B43LEGACY_RFKILL
-+
-+#include <linux/rfkill.h>
-+#include <linux/workqueue.h>
-+#include <linux/input-polldev.h>
+
+ /* miscellaneous IEEE 802.11 constants */
+-#define IEEE80211_MAX_FRAG_THRESHOLD 2346
+-#define IEEE80211_MAX_RTS_THRESHOLD 2347
++#define IEEE80211_MAX_FRAG_THRESHOLD 2352
++#define IEEE80211_MAX_RTS_THRESHOLD 2353
+ #define IEEE80211_MAX_AID 2007
+ #define IEEE80211_MAX_TIM_LEN 251
+-#define IEEE80211_MAX_DATA_LEN 2304
+ /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section
+ 6.2.1.1.2.
+
+- The figure in section 7.1.2 suggests a body size of up to 2312
+- bytes is allowed, which is a bit confusing, I suspect this
+- represents the 2304 bytes of real data, plus a possible 8 bytes of
+- WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */
++ 802.11e clarifies the figure in section 7.1.2. The frame body is
++ up to 2304 octets long (maximum MSDU size) plus any crypt overhead. */
++#define IEEE80211_MAX_DATA_LEN 2304
++/* 30 byte 4 addr hdr, 2 byte QoS, 2304 byte MSDU, 12 byte crypt, 4 byte FCS */
++#define IEEE80211_MAX_FRAME_LEN 2352
+
+ #define IEEE80211_MAX_SSID_LEN 32
+
+@@ -185,6 +187,25 @@ struct ieee80211_mgmt {
+ u8 new_chan;
+ u8 switch_count;
+ } __attribute__((packed)) chan_switch;
++ struct{
++ u8 action_code;
++ u8 dialog_token;
++ __le16 capab;
++ __le16 timeout;
++ __le16 start_seq_num;
++ } __attribute__((packed)) addba_req;
++ struct{
++ u8 action_code;
++ u8 dialog_token;
++ __le16 status;
++ __le16 capab;
++ __le16 timeout;
++ } __attribute__((packed)) addba_resp;
++ struct{
++ u8 action_code;
++ __le16 params;
++ __le16 reason_code;
++ } __attribute__((packed)) delba;
+ } u;
+ } __attribute__ ((packed)) action;
+ } u;
+@@ -205,6 +226,66 @@ struct ieee80211_cts {
+ u8 ra[6];
+ } __attribute__ ((packed));
+
++/**
++ * struct ieee80211_bar - HT Block Ack Request
++ *
++ * This structure refers to "HT BlockAckReq" as
++ * described in 802.11n draft section 7.2.1.7.1
++ */
++struct ieee80211_bar {
++ __le16 frame_control;
++ __le16 duration;
++ __u8 ra[6];
++ __u8 ta[6];
++ __u16 control;
++ __u16 start_seq_num;
++} __attribute__((packed));
+
++/**
++ * struct ieee80211_ht_cap - HT capabilities
++ *
++ * This structure refers to "HT capabilities element" as
++ * described in 802.11n draft section 7.3.2.52
++ */
++struct ieee80211_ht_cap {
++ __le16 cap_info;
++ u8 ampdu_params_info;
++ u8 supp_mcs_set[16];
++ __le16 extended_ht_cap_info;
++ __le32 tx_BF_cap_info;
++ u8 antenna_selection_info;
++} __attribute__ ((packed));
+
++/**
++ * struct ieee80211_ht_cap - HT additional information
++ *
++ * This structure refers to "HT information element" as
++ * described in 802.11n draft section 7.3.2.53
++ */
++struct ieee80211_ht_addt_info {
++ u8 control_chan;
++ u8 ht_param;
++ __le16 operation_mode;
++ __le16 stbc_param;
++ u8 basic_set[16];
++} __attribute__ ((packed));
+
-+struct b43legacy_rfkill {
-+ /* The RFKILL subsystem data structure */
-+ struct rfkill *rfkill;
-+ /* The poll device for the RFKILL input button */
-+ struct input_polled_dev *poll_dev;
-+ /* Did initialization succeed? Used for freeing. */
-+ bool registered;
-+ /* The unique name of this rfkill switch */
-+ char name[sizeof("b43legacy-phy4294967295")];
++/* 802.11n HT capabilities masks */
++#define IEEE80211_HT_CAP_SUP_WIDTH 0x0002
++#define IEEE80211_HT_CAP_MIMO_PS 0x000C
++#define IEEE80211_HT_CAP_GRN_FLD 0x0010
++#define IEEE80211_HT_CAP_SGI_20 0x0020
[...117242 lines suppressed...]
+ goto out_kfree;
+diff -up linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt
+--- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig 2007-12-19 13:32:41.000000000 -0500
++++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt 2007-12-19 13:33:39.000000000 -0500
+@@ -316,3 +316,20 @@ Why: powermac supports proper generic pm
+ Who: Johannes Berg <johannes at sipsolutions.net>
+
+ ---------------------------
+
- /* SPROM Revision 1 */
- #define SSB_SPROM1_SPID 0x1004 /* Subsystem Product ID for PCI */
- #define SSB_SPROM1_SVID 0x1006 /* Subsystem Vendor ID for PCI */
-@@ -215,7 +224,7 @@
- #define SSB_SPROM1_AGAIN_A 0x00FF /* A-PHY */
- #define SSB_SPROM1_AGAIN_BG 0xFF00 /* B-PHY and G-PHY */
- #define SSB_SPROM1_AGAIN_BG_SHIFT 8
--#define SSB_SPROM1_OEM 0x1076 /* 8 bytes OEM string (rev 1 only) */
++What: bcm43xx wireless network driver
++When: 2.6.26
++Files: drivers/net/wireless/bcm43xx
++Why: This driver's functionality has been replaced by the
++ mac80211-based b43 and b43legacy drivers.
++Who: John W. Linville <linville at tuxdriver.com>
+
- /* SPROM Revision 2 (inherits from rev 1) */
- #define SSB_SPROM2_BFLHI 0x1038 /* Boardflags (high 16 bits) */
- #define SSB_SPROM2_MAXP_A 0x103A /* A-PHY Max Power */
-@@ -232,7 +241,11 @@
- #define SSB_SPROM2_OPO_VALUE 0x00FF
- #define SSB_SPROM2_OPO_UNUSED 0xFF00
- #define SSB_SPROM2_CCODE 0x107C /* Two char Country Code */
--/* SPROM Revision 3 (inherits from rev 2) */
++---------------------------
+
-+/* SPROM Revision 3 (inherits most data from rev 2) */
-+#define SSB_SPROM3_IL0MAC 0x104A /* 6 bytes MAC address for 802.11b/g */
-+#define SSB_SPROM3_ET0MAC 0x1050 /* 6 bytes MAC address for Ethernet ?? */
-+#define SSB_SPROM3_ET1MAC 0x1050 /* 6 bytes MAC address for 802.11a ?? */
- #define SSB_SPROM3_OFDMAPO 0x102C /* A-PHY OFDM Mid Power Offset (4 bytes, BigEndian) */
- #define SSB_SPROM3_OFDMALPO 0x1030 /* A-PHY OFDM Low Power Offset (4 bytes, BigEndian) */
- #define SSB_SPROM3_OFDMAHPO 0x1034 /* A-PHY OFDM High Power Offset (4 bytes, BigEndian) */
-@@ -251,6 +264,48 @@
- #define SSB_SPROM3_CCKPO_11M_SHIFT 12
- #define SSB_SPROM3_OFDMGPO 0x107A /* G-PHY OFDM Power Offset (4 bytes, BigEndian) */
-
-+/* SPROM Revision 4 entries with ?? in comment are unknown */
-+#define SSB_SPROM4_IL0MAC 0x104C /* 6 byte MAC address for a/b/g/n */
-+#define SSB_SPROM4_ET0MAC 0x1018 /* 6 bytes MAC address for Ethernet ?? */
-+#define SSB_SPROM4_ET1MAC 0x1018 /* 6 bytes MAC address for 802.11a ?? */
-+#define SSB_SPROM4_ETHPHY 0x105A /* Ethernet PHY settings ?? */
-+#define SSB_SPROM4_ETHPHY_ET0A 0x001F /* MII Address for enet0 */
-+#define SSB_SPROM4_ETHPHY_ET1A 0x03E0 /* MII Address for enet1 */
-+#define SSB_SPROM4_ETHPHY_ET1A_SHIFT 5
-+#define SSB_SPROM4_ETHPHY_ET0M (1<<14) /* MDIO for enet0 */
-+#define SSB_SPROM4_ETHPHY_ET1M (1<<15) /* MDIO for enet1 */
-+#define SSB_SPROM4_CCODE 0x1052 /* Country Code (2 bytes) */
-+#define SSB_SPROM4_ANT_A 0x105D /* A Antennas */
-+#define SSB_SPROM4_ANT_BG 0x105C /* B/G Antennas */
-+#define SSB_SPROM4_BFLLO 0x1044 /* Boardflags (low 16 bits) */
-+#define SSB_SPROM4_AGAIN 0x105E /* Antenna Gain (in dBm Q5.2) */
-+#define SSB_SPROM4_AGAIN_0 0x00FF /* Antenna 0 */
-+#define SSB_SPROM4_AGAIN_1 0xFF00 /* Antenna 1 */
-+#define SSB_SPROM4_AGAIN_1_SHIFT 8
-+#define SSB_SPROM4_BFLHI 0x1046 /* Board Flags Hi */
-+#define SSB_SPROM4_MAXP_BG 0x1080 /* Max Power BG in path 1 */
-+#define SSB_SPROM4_MAXP_BG_MASK 0x00FF /* Mask for Max Power BG */
-+#define SSB_SPROM4_ITSSI_BG 0xFF00 /* Mask for path 1 itssi_bg */
-+#define SSB_SPROM4_ITSSI_BG_SHIFT 8
-+#define SSB_SPROM4_MAXP_A 0x108A /* Max Power A in path 1 */
-+#define SSB_SPROM4_MAXP_A_MASK 0x00FF /* Mask for Max Power A */
-+#define SSB_SPROM4_ITSSI_A 0xFF00 /* Mask for path 1 itssi_a */
-+#define SSB_SPROM4_ITSSI_A_SHIFT 8
-+#define SSB_SPROM4_GPIOA 0x1056 /* Gen. Purpose IO # 0 and 1 */
-+#define SSB_SPROM4_GPIOA_P0 0x00FF /* Pin 0 */
-+#define SSB_SPROM4_GPIOA_P1 0xFF00 /* Pin 1 */
-+#define SSB_SPROM4_GPIOA_P1_SHIFT 8
-+#define SSB_SPROM4_GPIOB 0x1058 /* Gen. Purpose IO # 2 and 3 */
-+#define SSB_SPROM4_GPIOB_P2 0x00FF /* Pin 2 */
-+#define SSB_SPROM4_GPIOB_P3 0xFF00 /* Pin 3 */
-+#define SSB_SPROM4_GPIOB_P3_SHIFT 8
-+#define SSB_SPROM4_PA0B0 0x1082 /* The paXbY locations are */
-+#define SSB_SPROM4_PA0B1 0x1084 /* only guesses */
-+#define SSB_SPROM4_PA0B2 0x1086
-+#define SSB_SPROM4_PA1B0 0x108E
-+#define SSB_SPROM4_PA1B1 0x1090
-+#define SSB_SPROM4_PA1B2 0x1092
++What: iee80211 softmac wireless networking component
++When: 2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
++Files: net/ieee80211/softmac
++Why: No in-kernel drivers will depend on it any longer.
++Who: John W. Linville <linville at tuxdriver.com>
+
- /* Values for SSB_SPROM1_BINF_CCODE */
- enum {
- SSB_SPROM1CCODE_WORLD = 0,
-diff -up linux-2.6.23.noarch/include/linux/ssb/ssb.h.orig linux-2.6.23.noarch/include/linux/ssb/ssb.h
---- linux-2.6.23.noarch/include/linux/ssb/ssb.h.orig 2007-12-05 10:52:38.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb.h 2007-12-05 10:52:44.000000000 -0500
-@@ -15,22 +15,14 @@ struct pcmcia_device;
- struct ssb_bus;
- struct ssb_driver;
-
--
--struct ssb_sprom_r1 {
-- u16 pci_spid; /* Subsystem Product ID for PCI */
-- u16 pci_svid; /* Subsystem Vendor ID for PCI */
-- u16 pci_pid; /* Product ID for PCI */
-+struct ssb_sprom {
-+ u8 revision;
- u8 il0mac[6]; /* MAC address for 802.11b/g */
- u8 et0mac[6]; /* MAC address for Ethernet */
- u8 et1mac[6]; /* MAC address for 802.11a */
-- u8 et0phyaddr:5; /* MII address for enet0 */
-- u8 et1phyaddr:5; /* MII address for enet1 */
-- u8 et0mdcport:1; /* MDIO for enet0 */
-- u8 et1mdcport:1; /* MDIO for enet1 */
-- u8 board_rev; /* Board revision */
-- u8 country_code:4; /* Country Code */
-- u8 antenna_a:2; /* Antenna 0/1 available for A-PHY */
-- u8 antenna_bg:2; /* Antenna 0/1 available for B-PHY and G-PHY */
-+ u8 et0phyaddr; /* MII address for enet0 */
-+ u8 et1phyaddr; /* MII address for enet1 */
-+ u8 country_code; /* Country Code */
- u16 pa0b0;
- u16 pa0b1;
- u16 pa0b2;
-@@ -41,61 +33,15 @@ struct ssb_sprom_r1 {
- u8 gpio1; /* GPIO pin 1 */
- u8 gpio2; /* GPIO pin 2 */
- u8 gpio3; /* GPIO pin 3 */
-- u16 maxpwr_a; /* A-PHY Power Amplifier Max Power (in dBm Q5.2) */
-- u16 maxpwr_bg; /* B/G-PHY Power Amplifier Max Power (in dBm Q5.2) */
-+ u16 maxpwr_a; /* A-PHY Amplifier Max Power (in dBm Q5.2) */
-+ u16 maxpwr_bg; /* B/G-PHY Amplifier Max Power (in dBm Q5.2) */
- u8 itssi_a; /* Idle TSSI Target for A-PHY */
- u8 itssi_bg; /* Idle TSSI Target for B/G-PHY */
- u16 boardflags_lo; /* Boardflags (low 16 bits) */
- u8 antenna_gain_a; /* A-PHY Antenna gain (in dBm Q5.2) */
- u8 antenna_gain_bg; /* B/G-PHY Antenna gain (in dBm Q5.2) */
-- u8 oem[8]; /* OEM string (rev 1 only) */
--};
--
--struct ssb_sprom_r2 {
-- u16 boardflags_hi; /* Boardflags (high 16 bits) */
-- u8 maxpwr_a_lo; /* A-PHY Max Power Low */
-- u8 maxpwr_a_hi; /* A-PHY Max Power High */
-- u16 pa1lob0; /* A-PHY PA Low Settings */
-- u16 pa1lob1; /* A-PHY PA Low Settings */
-- u16 pa1lob2; /* A-PHY PA Low Settings */
-- u16 pa1hib0; /* A-PHY PA High Settings */
-- u16 pa1hib1; /* A-PHY PA High Settings */
-- u16 pa1hib2; /* A-PHY PA High Settings */
-- u8 ofdm_pwr_off; /* OFDM Power Offset from CCK Level */
-- u8 country_str[2]; /* Two char Country Code */
--};
-
--struct ssb_sprom_r3 {
-- u32 ofdmapo; /* A-PHY OFDM Mid Power Offset */
-- u32 ofdmalpo; /* A-PHY OFDM Low Power Offset */
-- u32 ofdmahpo; /* A-PHY OFDM High Power Offset */
-- u8 gpioldc_on_cnt; /* GPIO LED Powersave Duty Cycle ON count */
-- u8 gpioldc_off_cnt; /* GPIO LED Powersave Duty Cycle OFF count */
-- u8 cckpo_1M:4; /* CCK Power Offset for Rate 1M */
-- u8 cckpo_2M:4; /* CCK Power Offset for Rate 2M */
-- u8 cckpo_55M:4; /* CCK Power Offset for Rate 5.5M */
-- u8 cckpo_11M:4; /* CCK Power Offset for Rate 11M */
-- u32 ofdmgpo; /* G-PHY OFDM Power Offset */
--};
--
--struct ssb_sprom_r4 {
-- /* TODO */
--};
--
--struct ssb_sprom {
-- u8 revision;
-- u8 crc;
-- /* The valid r# fields are selected by the "revision".
-- * Revision 3 and lower inherit from lower revisions.
-- */
-- union {
-- struct {
-- struct ssb_sprom_r1 r1;
-- struct ssb_sprom_r2 r2;
-- struct ssb_sprom_r3 r3;
-- };
-- struct ssb_sprom_r4 r4;
-- };
-+ /* TODO - add any parameters needed from rev 2, 3, or 4 SPROMs */
- };
-
- /* Information about the PCB the circuitry is soldered on. */
-@@ -288,6 +234,7 @@ struct ssb_bus {
- /* ID information about the Chip. */
- u16 chip_id;
- u16 chip_rev;
-+ u16 sprom_size; /* number of words in sprom */
- u8 chip_package;
-
- /* List of devices (cores) on the backplane. */
++---------------------------
linux-2.6-wireless.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.14 -r 1.15 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-wireless.patch,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- linux-2.6-wireless.patch 30 Nov 2007 15:53:21 -0000 1.14
+++ linux-2.6-wireless.patch 19 Dec 2007 20:34:21 -0000 1.15
@@ -1,101142 +1,37923 @@
-diff -up linux-2.6.23.noarch/drivers/Kconfig.orig linux-2.6.23.noarch/drivers/Kconfig
---- linux-2.6.23.noarch/drivers/Kconfig.orig 2007-11-30 10:00:14.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/Kconfig 2007-11-30 10:00:37.000000000 -0500
-@@ -58,6 +58,8 @@ source "drivers/power/Kconfig"
+diff -up linux-2.6.23.noarch/CREDITS.orig linux-2.6.23.noarch/CREDITS
+--- linux-2.6.23.noarch/CREDITS.orig 2007-12-17 21:50:24.000000000 -0500
++++ linux-2.6.23.noarch/CREDITS 2007-12-17 21:53:57.000000000 -0500
+@@ -665,6 +665,11 @@ D: Minor updates to SCSI types, added /p
+ S: (ask for current address)
+ S: USA
- source "drivers/hwmon/Kconfig"
++N: Robin Cornelius
++E: robincornelius at users.sourceforge.net
++D: Ralink rt2x00 WLAN driver
++S: Cornwall, U.K.
++
+ N: Mark Corner
+ E: mcorner at umich.edu
+ W: http://www.eecs.umich.edu/~mcorner/
+@@ -679,6 +684,11 @@ D: Kernel module SMART utilities
+ S: Santa Cruz, California
+ S: USA
-+source "drivers/ssb/Kconfig"
++N: Luis Correia
++E: lfcorreia at users.sf.net
++D: Ralink rt2x00 WLAN driver
++S: Belas, Portugal
+
- source "drivers/mfd/Kconfig"
+ N: Alan Cox
+ W: http://www.linux.org.uk/diary/
+ D: Linux Networking (0.99.10->2.0.29)
+@@ -833,6 +843,12 @@ S: Lancs
+ S: PR4 6AX
+ S: United Kingdom
- source "drivers/media/Kconfig"
-diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/ssb_private.h
---- /dev/null 2007-11-21 18:00:15.874485932 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/ssb_private.h 2007-11-30 10:00:37.000000000 -0500
-@@ -0,0 +1,136 @@
-+#ifndef LINUX_SSB_PRIVATE_H_
-+#define LINUX_SSB_PRIVATE_H_
++N: Ivo van Doorn
++E: IvDoorn at gmail.com
++W: http://www.mendiosus.nl
++D: Ralink rt2x00 WLAN driver
++S: Haarlem, The Netherlands
+
-+#include <linux/ssb/ssb.h>
-+#include <linux/types.h>
+ N: John G Dorsey
+ E: john+ at cs.cmu.edu
+ D: ARM Linux ports to Assabet/Neponset, Spot
+@@ -3517,6 +3533,12 @@ S: Maastrichterweg 63
+ S: 5554 GG Valkenswaard
+ S: The Netherlands
+
++N: Mark Wallis
++E: mwallis at serialmonkey.com
++W: http://mark.serialmonkey.com
++D: Ralink rt2x00 WLAN driver
++S: Newcastle, Australia
+
+ N: Peter Shaobo Wang
+ E: pwang at mmdcorp.com
+ W: http://www.mmdcorp.com/pw/linux
+@@ -3651,6 +3673,15 @@ S: Alte Regensburger Str. 11a
+ S: 93149 Nittenau
+ S: Germany
+
++N: Gertjan van Wingerde
++E: gwingerde at home.nl
++D: Ralink rt2x00 WLAN driver
++D: Minix V2 file-system
++D: Misc fixes
++S: Geessinkweg 177
++S: 7544 TX Enschede
++S: The Netherlands
+
-+#define PFX "ssb: "
+ N: Lars Wirzenius
+ E: liw at iki.fi
+ D: Linux System Administrator's Guide, author, former maintainer
+diff -up linux-2.6.23.noarch/include/linux/nl80211.h.orig linux-2.6.23.noarch/include/linux/nl80211.h
+--- linux-2.6.23.noarch/include/linux/nl80211.h.orig 2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/linux/nl80211.h 2007-12-17 21:53:57.000000000 -0500
+@@ -7,7 +7,97 @@
+ */
+
+ /**
++ * enum nl80211_commands - supported nl80211 commands
++ *
++ * @NL80211_CMD_UNSPEC: unspecified command to catch errors
++ *
++ * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request
++ * to get a list of all present wiphys.
++ * @NL80211_CMD_SET_WIPHY: set wiphy name, needs %NL80211_ATTR_WIPHY and
++ * %NL80211_ATTR_WIPHY_NAME.
++ * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
++ * or rename notification. Has attributes %NL80211_ATTR_WIPHY and
++ * %NL80211_ATTR_WIPHY_NAME.
++ * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes
++ * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
++ *
++ * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration;
++ * either a dump request on a %NL80211_ATTR_WIPHY or a specific get
++ * on an %NL80211_ATTR_IFINDEX is supported.
++ * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires
++ %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
++ * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response
++ * to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX,
++ * %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also
++ * be sent from userspace to request creation of a new virtual interface,
++ * then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and
++ * %NL80211_ATTR_IFNAME.
++ * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
++ * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
++ * userspace to request deletion of a virtual interface, then requires
++ * attribute %NL80211_ATTR_IFINDEX.
++ *
++ * @NL80211_CMD_MAX: highest used command number
++ * @__NL80211_CMD_AFTER_LAST: internal use
++ */
++enum nl80211_commands {
++/* don't change the order or add anything inbetween, this is ABI! */
++ NL80211_CMD_UNSPEC,
+
-+#ifdef CONFIG_SSB_SILENT
-+# define ssb_printk(fmt, x...) do { /* nothing */ } while (0)
-+#else
-+# define ssb_printk printk
-+#endif /* CONFIG_SSB_SILENT */
++ NL80211_CMD_GET_WIPHY, /* can dump */
++ NL80211_CMD_SET_WIPHY,
++ NL80211_CMD_NEW_WIPHY,
++ NL80211_CMD_DEL_WIPHY,
+
-+/* dprintk: Debugging printk; vanishes for non-debug compilation */
-+#ifdef CONFIG_SSB_DEBUG
-+# define ssb_dprintk(fmt, x...) ssb_printk(fmt , ##x)
-+#else
-+# define ssb_dprintk(fmt, x...) do { /* nothing */ } while (0)
-+#endif
++ NL80211_CMD_GET_INTERFACE, /* can dump */
++ NL80211_CMD_SET_INTERFACE,
++ NL80211_CMD_NEW_INTERFACE,
++ NL80211_CMD_DEL_INTERFACE,
+
-+#ifdef CONFIG_SSB_DEBUG
-+# define SSB_WARN_ON(x) WARN_ON(x)
-+# define SSB_BUG_ON(x) BUG_ON(x)
-+#else
-+static inline int __ssb_do_nothing(int x) { return x; }
-+# define SSB_WARN_ON(x) __ssb_do_nothing(unlikely(!!(x)))
-+# define SSB_BUG_ON(x) __ssb_do_nothing(unlikely(!!(x)))
-+#endif
++ /* add commands here */
+
++ /* used to define NL80211_CMD_MAX below */
++ __NL80211_CMD_AFTER_LAST,
++ NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
++};
+
-+/* pci.c */
-+#ifdef CONFIG_SSB_PCIHOST
-+extern int ssb_pci_switch_core(struct ssb_bus *bus,
-+ struct ssb_device *dev);
-+extern int ssb_pci_switch_coreidx(struct ssb_bus *bus,
-+ u8 coreidx);
-+extern int ssb_pci_xtal(struct ssb_bus *bus, u32 what,
-+ int turn_on);
-+extern int ssb_pci_get_invariants(struct ssb_bus *bus,
-+ struct ssb_init_invariants *iv);
-+extern void ssb_pci_exit(struct ssb_bus *bus);
-+extern int ssb_pci_init(struct ssb_bus *bus);
-+extern const struct ssb_bus_ops ssb_pci_ops;
+
-+#else /* CONFIG_SSB_PCIHOST */
++/**
++ * enum nl80211_attrs - nl80211 netlink attributes
++ *
++ * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors
++ *
++ * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf.
++ * /sys/class/ieee80211/<phyname>/index
++ * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
++ *
++ * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
[...263072 lines suppressed...]
-+S: Maintained
-+
- ADT746X FAN DRIVER
- P: Colin Leroy
- M: colin at colino.net
-@@ -787,11 +795,29 @@ L: linux-hams at vger.kernel.org
- W: http://www.baycom.org/~tom/ham/ham.html
- S: Maintained
-
-+B43 WIRELESS DRIVER
-+P: Michael Buesch
-+M: mb at bu3sch.de
-+P: Stefano Brivio
-+M: stefano.brivio at polimi.it
-+L: linux-wireless at vger.kernel.org
-+W: http://linuxwireless.org/en/users/Drivers/b43
-+S: Maintained
-+
-+B43LEGACY WIRELESS DRIVER
-+P: Larry Finger
-+M: Larry.Finger at lwfinger.net
-+P: Stefano Brivio
-+M: stefano.brivio at polimi.it
-+L: linux-wireless at vger.kernel.org
-+W: http://linuxwireless.org/en/users/Drivers/b43
-+S: Maintained
-+
- BCM43XX WIRELESS DRIVER (SOFTMAC BASED VERSION)
- P: Larry Finger
- M: Larry.Finger at lwfinger.net
- P: Stefano Brivio
--M: st3 at riseup.net
-+M: stefano.brivio at polimi.it
- L: linux-wireless at vger.kernel.org
- W: http://bcm43xx.berlios.de/
- S: Maintained
-@@ -2058,6 +2084,15 @@ L: http://lists.sourceforge.net/mailman/
- W: http://ipw2200.sourceforge.net
- S: Supported
-
-+INTEL WIRELESS WIFI LINK (iwlwifi)
-+P: Zhu Yi
-+M: yi.zhu at intel.com
-+L: linux-wireless at vger.kernel.org
-+L: ipw3945-devel at lists.sourceforge.net
-+W: http://intellinuxwireless.org
-+T: git git://intellinuxwireless.org/repos/iwlwifi
-+S: Supported
-+
- IOC3 ETHERNET DRIVER
- P: Ralf Baechle
- M: ralf at linux-mips.org
-@@ -2419,13 +2454,15 @@ W: http://www.tazenda.demon.co.uk/phil/l
- S: Maintained
-
- MAC80211
--P: Jiri Benc
--M: jbenc at suse.cz
- P: Michael Wu
- M: flamingice at sourmilk.net
-+P: Johannes Berg
-+M: johannes at sipsolutions.net
-+P: Jiri Benc
-+M: jbenc at suse.cz
- L: linux-wireless at vger.kernel.org
- W: http://linuxwireless.org/
--T: git kernel.org:/pub/scm/linux/kernel/git/jbenc/mac80211.git
-+T: git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git
- S: Maintained
-
- MACVLAN DRIVER
-@@ -3019,6 +3056,14 @@ L: kpreempt-tech at lists.sourceforge.net
- W: ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
- S: Supported
-
-+P54 WIRELESS DRIVER
-+P: Michael Wu
-+M: flamingice at sourmilk.net
-+L: linux-wireless at vger.kernel.org
-+W: http://prism54.org
-+T: git kernel.org:/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
-+S: Maintained
-+
- PRISM54 WIRELESS DRIVER
- P: Luis R. Rodriguez
- M: mcgrof at gmail.com
-@@ -3106,6 +3151,14 @@ M: corey at world.std.com
- L: linux-wireless at vger.kernel.org
- S: Maintained
-
-+RALINK RT2X00 WLAN DRIVER
-+P: rt2x00 project
-+L: linux-wireless at vger.kernel.org
-+L: rt2400-devel at lists.sourceforge.net
-+W: http://rt2x00.serialmonkey.com/
-+S: Maintained
-+F: drivers/net/wireless/rt2x00/
-+
- RANDOM NUMBER DRIVER
- P: Matt Mackall
- M: mpm at selenic.com
-@@ -3390,15 +3443,10 @@ L: lm-sensors at lm-sensors.org
- S: Maintained
-
- SOFTMAC LAYER (IEEE 802.11)
--P: Johannes Berg
--M: johannes at sipsolutions.net
--P: Joe Jezak
--M: josejx at gentoo.org
- P: Daniel Drake
- M: dsd at gentoo.org
--W: http://softmac.sipsolutions.net/
- L: linux-wireless at vger.kernel.org
--S: Maintained
-+S: Obsolete
-
- SOFTWARE RAID (Multiple Disks) SUPPORT
- P: Ingo Molnar
-@@ -3430,6 +3478,12 @@ M: tsbogend at alpha.franken.de
- L: netdev at vger.kernel.org
- S: Maintained
-
-+SONICS SILICON BACKPLANE DRIVER (SSB)
-+P: Michael Buesch
-+M: mb at bu3sch.de
-+L: netdev at vger.kernel.org
-+S: Maintained
-+
- SONY VAIO CONTROL DEVICE DRIVER
- P: Mattia Dongili
- M: malattia at linux.it
-diff -up linux-2.6.23.noarch/CREDITS.orig linux-2.6.23.noarch/CREDITS
---- linux-2.6.23.noarch/CREDITS.orig 2007-11-30 10:00:31.000000000 -0500
-+++ linux-2.6.23.noarch/CREDITS 2007-11-30 10:00:38.000000000 -0500
-@@ -665,6 +665,11 @@ D: Minor updates to SCSI types, added /p
- S: (ask for current address)
- S: USA
-
-+N: Robin Cornelius
-+E: robincornelius at users.sourceforge.net
-+D: Ralink rt2x00 WLAN driver
-+S: Cornwall, U.K.
-+
- N: Mark Corner
- E: mcorner at umich.edu
- W: http://www.eecs.umich.edu/~mcorner/
-@@ -679,6 +684,11 @@ D: Kernel module SMART utilities
- S: Santa Cruz, California
- S: USA
-
-+N: Luis Correia
-+E: lfcorreia at users.sf.net
-+D: Ralink rt2x00 WLAN driver
-+S: Belas, Portugal
-+
- N: Alan Cox
- W: http://www.linux.org.uk/diary/
- D: Linux Networking (0.99.10->2.0.29)
-@@ -833,6 +843,12 @@ S: Lancs
- S: PR4 6AX
- S: United Kingdom
-
-+N: Ivo van Doorn
-+E: IvDoorn at gmail.com
-+W: http://www.mendiosus.nl
-+D: Ralink rt2x00 WLAN driver
-+S: Haarlem, The Netherlands
-+
- N: John G Dorsey
- E: john+ at cs.cmu.edu
- D: ARM Linux ports to Assabet/Neponset, Spot
-@@ -3517,6 +3533,12 @@ S: Maastrichterweg 63
- S: 5554 GG Valkenswaard
- S: The Netherlands
-
-+N: Mark Wallis
-+E: mwallis at serialmonkey.com
-+W: http://mark.serialmonkey.com
-+D: Ralink rt2x00 WLAN driver
-+S: Newcastle, Australia
-+
- N: Peter Shaobo Wang
- E: pwang at mmdcorp.com
- W: http://www.mmdcorp.com/pw/linux
-@@ -3651,6 +3673,15 @@ S: Alte Regensburger Str. 11a
- S: 93149 Nittenau
- S: Germany
-
-+N: Gertjan van Wingerde
-+E: gwingerde at home.nl
-+D: Ralink rt2x00 WLAN driver
-+D: Minix V2 file-system
-+D: Misc fixes
-+S: Geessinkweg 177
-+S: 7544 TX Enschede
-+S: The Netherlands
-+
- N: Lars Wirzenius
- E: liw at iki.fi
- D: Linux System Administrator's Guide, author, former maintainer
--- linux-2.6-libertas-backport.patch DELETED ---
--- linux-2.6-print-mac.patch DELETED ---
More information about the fedora-extras-commits
mailing list