rpms/kernel/devel linux-2.6-wireless.patch, NONE, 1.1 git-iwlwifi.patch, 1.4, 1.5 git-wireless-dev.patch, 1.7, 1.8 kernel-2.6.spec, 1.3120, 1.3121
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue May 1 00:44:07 UTC 2007
Author: linville
Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4994
Modified Files:
git-iwlwifi.patch git-wireless-dev.patch kernel-2.6.spec
Added Files:
linux-2.6-wireless.patch
Log Message:
wireless-dev and iwlwifi updates
linux-2.6-wireless.patch:
CREDITS | 6
Documentation/feature-removal-schedule.txt | 11
MAINTAINERS | 21
drivers/net/Makefile | 2
drivers/net/wireless/Kconfig | 120 -
drivers/net/wireless/bcm43xx/Kconfig | 3
drivers/net/wireless/hostap/Kconfig | 3
drivers/net/wireless/zd1211rw/Kconfig | 3
include/linux/Kbuild | 1
include/linux/netdevice.h | 4
include/linux/nl80211.h | 38
include/net/cfg80211.h | 40
include/net/iw_handler.h | 21
include/net/wext.h | 24
include/net/wireless.h | 139 +
net/Kconfig | 11
net/Makefile | 2
net/core/Makefile | 1
net/core/dev.c | 34
net/core/rtnetlink.c | 31
net/core/wireless.c | 2371 -----------------------------
net/ieee80211/Kconfig | 3
net/wireless/Kconfig | 16
net/wireless/Makefile | 4
net/wireless/core.c | 224 ++
net/wireless/core.h | 49
net/wireless/sysfs.c | 80
net/wireless/sysfs.h | 9
net/wireless/wext.c | 1509 ++++++++++++++++++
29 files changed, 2234 insertions(+), 2546 deletions(-)
--- NEW FILE linux-2.6-wireless.patch ---
--- /dev/null 2007-04-17 21:17:54.747954992 -0400
+++ linux-2.6.21.noarch/include/net/wireless.h 2007-04-30 19:41:49.000000000 -0400
@@ -0,0 +1,139 @@
+#ifndef __NET_WIRELESS_H
+#define __NET_WIRELESS_H
+
+/*
+ * 802.11 device management
+ *
+ * Copyright 2007 Johannes Berg <johannes at sipsolutions.net>
+ */
+
+#include <linux/netdevice.h>
+#include <linux/debugfs.h>
+#include <linux/list.h>
+#include <net/cfg80211.h>
+
+/**
+ * struct wiphy - wireless hardware description
+ * @idx: the wiphy index assigned to this item
+ * @class_dev: the class device representing /sys/class/ieee80211/<wiphy-name>
+ */
+struct wiphy {
+ /* assign these fields before you register the wiphy */
+
+ /* permanent MAC address */
+ u8 perm_addr[ETH_ALEN];
+
+ /* If multiple wiphys are registered and you're handed e.g.
+ * a regular netdev with assigned ieee80211_ptr, you won't
+ * know whether it points to a wiphy your driver has registered
+ * or not. Assign this to something global to your driver to
+ * help determine whether you own this wiphy or not. */
+ void *privid;
+
+ /* fields below are read-only, assigned by cfg80211 */
+
+ /* the item in /sys/class/ieee80211/ points to this,
+ * you need use set_wiphy_dev() (see below) */
+ struct device dev;
+
+ /* dir in debugfs: ieee80211/<wiphyname> */
+ struct dentry *debugfsdir;
+
+ char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
+};
+
+/** struct wireless_dev - wireless per-netdev state
+ *
+ * This structure must be allocated by the driver/stack
+ * that uses the ieee80211_ptr field in struct net_device
+ * (this is intentional so it can be allocated along with
+ * the netdev.)
+ *
+ * @wiphy: pointer to hardware description
+ */
+struct wireless_dev {
+ struct wiphy *wiphy;
+
+ /* private to the generic wireless code */
+ struct list_head list;
+ struct net_device *netdev;
+};
+
+/**
+ * wiphy_priv - return priv from wiphy
+ */
+static inline void *wiphy_priv(struct wiphy *wiphy)
+{
+ BUG_ON(!wiphy);
+ return &wiphy->priv;
+}
+
+/**
+ * set_wiphy_dev - set device pointer for wiphy
+ */
+static inline void set_wiphy_dev(struct wiphy *wiphy, struct device *dev)
+{
+ wiphy->dev.parent = dev;
+}
+
+/**
+ * wiphy_dev - get wiphy dev pointer
+ */
+static inline struct device *wiphy_dev(struct wiphy *wiphy)
+{
+ return wiphy->dev.parent;
+}
+
+/**
+ * wiphy_name - get wiphy name
+ */
+static inline char *wiphy_name(struct wiphy *wiphy)
+{
+ return wiphy->dev.bus_id;
+}
+
+/**
+ * wdev_priv - return wiphy priv from wireless_dev
+ */
+static inline void *wdev_priv(struct wireless_dev *wdev)
+{
+ BUG_ON(!wdev);
+ return wiphy_priv(wdev->wiphy);
+}
+
+/**
+ * wiphy_new - create a new wiphy for use with cfg80211
+ *
+ * create a new wiphy and associate the given operations with it.
+ * @sizeof_priv bytes are allocated for private use.
+ *
+ * the returned pointer must be assigned to each netdev's
+ * ieee80211_ptr for proper operation.
+ */
+struct wiphy *wiphy_new(struct cfg80211_ops *ops, int sizeof_priv);
+
+/**
+ * wiphy_register - register a wiphy with cfg80211
+ *
+ * register the given wiphy
+ *
+ * Returns a non-negative wiphy index or a negative error code.
+ */
+extern int wiphy_register(struct wiphy *wiphy);
+
+/**
+ * wiphy_unregister - deregister a wiphy from cfg80211
+ *
+ * unregister a device with the given priv pointer.
+ * After this call, no more requests can be made with this priv
+ * pointer, but the call may sleep to wait for an outstanding
+ * request that is being handled.
+ */
+extern void wiphy_unregister(struct wiphy *wiphy);
+
+/**
+ * wiphy_free - free wiphy
+ */
+extern void wiphy_free(struct wiphy *wiphy);
+
+#endif /* __NET_WIRELESS_H */
--- /dev/null 2007-04-17 21:17:54.747954992 -0400
+++ linux-2.6.21.noarch/include/net/cfg80211.h 2007-04-30 19:44:47.000000000 -0400
@@ -0,0 +1,40 @@
+#ifndef __NET_CFG80211_H
+#define __NET_CFG80211_H
+
+#include <linux/netlink.h>
+#include <linux/skbuff.h>
+#include <net/genetlink.h>
+
+/*
+ * 802.11 configuration in-kernel interface
+ *
+ * Copyright 2006 Johannes Berg <johannes at sipsolutions.net>
+ */
+
+/* from net/wireless.h */
+struct wiphy;
+
+/**
+ * struct cfg80211_ops - backend description for wireless configuration
+ *
+ * This struct is registered by fullmac card drivers and/or wireless stacks
+ * in order to handle configuration requests on their interfaces.
+ *
+ * All callbacks except where otherwise noted should return 0
+ * on success or a negative error code.
+ *
+ * All operations are currently invoked under rtnl for consistency with the
+ * wireless extensions but this is subject to reevaluation as soon as this
+ * code is used more widely and we have a first user without wext.
+ *
+ * @add_virtual_intf: create a new virtual interface with the given name
+ *
+ * @del_virtual_intf: remove the virtual interface determined by ifindex.
+ */
+struct cfg80211_ops {
+ int (*add_virtual_intf)(struct wiphy *wiphy, char *name,
+ unsigned int type);
+ int (*del_virtual_intf)(struct wiphy *wiphy, int ifindex);
+};
+
+#endif /* __NET_CFG80211_H */
--- /dev/null 2007-04-17 21:17:54.747954992 -0400
+++ linux-2.6.21.noarch/include/net/wext.h 2007-04-30 19:45:37.000000000 -0400
@@ -0,0 +1,24 @@
+#ifndef __NET_WEXT_H
+#define __NET_WEXT_H
+
+/*
+ * wireless extensions interface to the core code
+ */
+
+#ifdef CONFIG_WIRELESS_EXT
+extern int wext_proc_init(void);
+extern int wext_handle_ioctl(struct ifreq *ifr, unsigned int cmd,
+ void __user *arg);
[...4833 lines suppressed...]
+
+/*------------------------------------------------------------------*/
+/*
+ * Standard Wireless Handler : get Spy List
+ */
+int iw_handler_get_spy(struct net_device * dev,
+ struct iw_request_info * info,
+ union iwreq_data * wrqu,
+ char * extra)
+{
+ struct iw_spy_data * spydata = get_spydata(dev);
+ struct sockaddr * address = (struct sockaddr *) extra;
+ int i;
+
+ /* Make sure driver is not buggy or using the old API */
+ if (!spydata)
+ return -EOPNOTSUPP;
+
+ wrqu->data.length = spydata->spy_number;
+
+ /* Copy addresses. */
+ for (i = 0; i < spydata->spy_number; i++) {
+ memcpy(address[i].sa_data, spydata->spy_address[i], ETH_ALEN);
+ address[i].sa_family = AF_UNIX;
+ }
+ /* Copy stats to the user buffer (just after). */
+ if (spydata->spy_number > 0)
+ memcpy(extra + (sizeof(struct sockaddr) *spydata->spy_number),
+ spydata->spy_stat,
+ sizeof(struct iw_quality) * spydata->spy_number);
+ /* Reset updated flags. */
+ for (i = 0; i < spydata->spy_number; i++)
+ spydata->spy_stat[i].updated &= ~IW_QUAL_ALL_UPDATED;
+ return 0;
+}
+EXPORT_SYMBOL(iw_handler_get_spy);
+
+/*------------------------------------------------------------------*/
+/*
+ * Standard Wireless Handler : set spy threshold
+ */
+int iw_handler_set_thrspy(struct net_device * dev,
+ struct iw_request_info *info,
+ union iwreq_data * wrqu,
+ char * extra)
+{
+ struct iw_spy_data * spydata = get_spydata(dev);
+ struct iw_thrspy * threshold = (struct iw_thrspy *) extra;
+
+ /* Make sure driver is not buggy or using the old API */
+ if (!spydata)
+ return -EOPNOTSUPP;
+
+ /* Just do it */
+ memcpy(&(spydata->spy_thr_low), &(threshold->low),
+ 2 * sizeof(struct iw_quality));
+
+ /* Clear flag */
+ memset(spydata->spy_thr_under, '\0', sizeof(spydata->spy_thr_under));
+
+ return 0;
+}
+EXPORT_SYMBOL(iw_handler_set_thrspy);
+
+/*------------------------------------------------------------------*/
+/*
+ * Standard Wireless Handler : get spy threshold
+ */
+int iw_handler_get_thrspy(struct net_device * dev,
+ struct iw_request_info *info,
+ union iwreq_data * wrqu,
+ char * extra)
+{
+ struct iw_spy_data * spydata = get_spydata(dev);
+ struct iw_thrspy * threshold = (struct iw_thrspy *) extra;
+
+ /* Make sure driver is not buggy or using the old API */
+ if (!spydata)
+ return -EOPNOTSUPP;
+
+ /* Just do it */
+ memcpy(&(threshold->low), &(spydata->spy_thr_low),
+ 2 * sizeof(struct iw_quality));
+
+ return 0;
+}
+EXPORT_SYMBOL(iw_handler_get_thrspy);
+
+/*------------------------------------------------------------------*/
+/*
+ * Prepare and send a Spy Threshold event
+ */
+static void iw_send_thrspy_event(struct net_device * dev,
+ struct iw_spy_data * spydata,
+ unsigned char * address,
+ struct iw_quality * wstats)
+{
+ union iwreq_data wrqu;
+ struct iw_thrspy threshold;
+
+ /* Init */
+ wrqu.data.length = 1;
+ wrqu.data.flags = 0;
+ /* Copy address */
+ memcpy(threshold.addr.sa_data, address, ETH_ALEN);
+ threshold.addr.sa_family = ARPHRD_ETHER;
+ /* Copy stats */
+ memcpy(&(threshold.qual), wstats, sizeof(struct iw_quality));
+ /* Copy also thresholds */
+ memcpy(&(threshold.low), &(spydata->spy_thr_low),
+ 2 * sizeof(struct iw_quality));
+
+ /* Send event to user space */
+ wireless_send_event(dev, SIOCGIWTHRSPY, &wrqu, (char *) &threshold);
+}
+
+/* ---------------------------------------------------------------- */
+/*
+ * Call for the driver to update the spy data.
+ * For now, the spy data is a simple array. As the size of the array is
+ * small, this is good enough. If we wanted to support larger number of
+ * spy addresses, we should use something more efficient...
+ */
+void wireless_spy_update(struct net_device * dev,
+ unsigned char * address,
+ struct iw_quality * wstats)
+{
+ struct iw_spy_data * spydata = get_spydata(dev);
+ int i;
+ int match = -1;
+
+ /* Make sure driver is not buggy or using the old API */
+ if (!spydata)
+ return;
+
+ /* Update all records that match */
+ for (i = 0; i < spydata->spy_number; i++)
+ if (!compare_ether_addr(address, spydata->spy_address[i])) {
+ memcpy(&(spydata->spy_stat[i]), wstats,
+ sizeof(struct iw_quality));
+ match = i;
+ }
+
+ /* Generate an event if we cross the spy threshold.
+ * To avoid event storms, we have a simple hysteresis : we generate
+ * event only when we go under the low threshold or above the
+ * high threshold. */
+ if (match >= 0) {
+ if (spydata->spy_thr_under[match]) {
+ if (wstats->level > spydata->spy_thr_high.level) {
+ spydata->spy_thr_under[match] = 0;
+ iw_send_thrspy_event(dev, spydata,
+ address, wstats);
+ }
+ } else {
+ if (wstats->level < spydata->spy_thr_low.level) {
+ spydata->spy_thr_under[match] = 1;
+ iw_send_thrspy_event(dev, spydata,
+ address, wstats);
+ }
+ }
+ }
+}
+EXPORT_SYMBOL(wireless_spy_update);
--- linux-2.6.21.noarch/net/Kconfig.orig 2007-04-30 19:29:14.000000000 -0400
+++ linux-2.6.21.noarch/net/Kconfig 2007-04-30 19:41:49.000000000 -0400
@@ -219,14 +219,17 @@ endmenu
source "net/ax25/Kconfig"
source "net/irda/Kconfig"
source "net/bluetooth/Kconfig"
-source "net/ieee80211/Kconfig"
-
-config WIRELESS_EXT
- bool
config FIB_RULES
bool
+menu "Wireless"
+
+source "net/wireless/Kconfig"
+source "net/ieee80211/Kconfig"
+
+endmenu
+
endif # if NET
endmenu # Networking
--- linux-2.6.21.noarch/net/ieee80211/Kconfig.orig 2007-04-30 19:29:14.000000000 -0400
+++ linux-2.6.21.noarch/net/ieee80211/Kconfig 2007-04-30 19:41:49.000000000 -0400
@@ -56,7 +56,8 @@ config IEEE80211_CRYPT_CCMP
config IEEE80211_CRYPT_TKIP
tristate "IEEE 802.11i TKIP encryption"
- depends on IEEE80211 && NET_RADIO
+ depends on IEEE80211
+ select WIRELESS_EXT
select CRYPTO
select CRYPTO_MICHAEL_MIC
select CRYPTO_ECB
git-iwlwifi.patch:
Kconfig | 1
Makefile | 1
iwlwifi/Kconfig | 52
iwlwifi/Makefile | 2
iwlwifi/base.c |12347 ++++++++++++++++++++++++++++++++++++++++++++++++++
iwlwifi/iwl-3945-rs.c | 962 +++
iwlwifi/iwl-3945-rs.h | 89
iwlwifi/iwlwifi.h | 1296 +++++
iwlwifi/iwlwifi_hw.h | 1973 +++++++
9 files changed, 16723 insertions(+)
Index: git-iwlwifi.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/git-iwlwifi.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- git-iwlwifi.patch 27 Apr 2007 19:16:57 -0000 1.4
+++ git-iwlwifi.patch 1 May 2007 00:44:04 -0000 1.5
@@ -1,10 +1,10 @@
rsync://www.intellinuxwireless.org/repos/iwlwifi.git
-commit 440a9ee592a409e926f77633ce41ccad7be6c429
+commit db63be081b46f80a784cb0a1ae67a074d92aabf8
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c 2007-04-27 14:33:42.000000000 -0400
-@@ -0,0 +1,12363 @@
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/base.c 2007-04-30 20:21:52.000000000 -0400
+@@ -0,0 +1,12347 @@
+/******************************************************************************
+
+ Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved.
@@ -113,7 +113,7 @@
+
+#include "iwlwifi.h"
+
-+#define IWLWIFI_VERSION "0.0.14k"
++#define IWLWIFI_VERSION "0.0.15k"
+
+#define DRV_DESCRIPTION "Intel(R) Wireless Link driver for Linux"
+#define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation"
@@ -1685,7 +1685,7 @@
+ if (ipw_is_associated(priv))
+ add_time = ipw_usecs_to_beacons(
+ params->start_time - priv->last_tsf,
-+ priv->rxon_timing.beaconInterval);
++ priv->rxon_timing.beacon_interval);
+
+ memset(&spectrum, 0, sizeof(spectrum));
+
@@ -1700,7 +1700,7 @@
+ spectrum.start_time =
+ ipw_add_beacon_time(priv->last_beacon_time,
+ add_time,
-+ priv->rxon_timing.beaconInterval);
++ priv->rxon_timing.beacon_interval);
+ else
+ spectrum.start_time = params->start_time;
+
@@ -3773,7 +3773,7 @@
+{
+ const struct ipw_eeprom_txpower_group *chnl_grp = NULL;
+ s32 index0, index1;
-+ s32 rPower = 2 * requested_power;
++ s32 power = 2 * requested_power;
+ s32 i;
+ const struct ipw_eeprom_txpower_sample *samples;
+ s32 gains0, gains1;
@@ -3783,19 +3783,19 @@
+ chnl_grp = &priv->eeprom.groups[setting_index];
+ samples = chnl_grp->samples;
+ for (i = 0; i < 5; i++) {
-+ if (rPower == samples[i].power) {
++ if (power == samples[i].power) {
+ *new_index = samples[i].gain_index;
+ return 0;
+ }
+ }
+
-+ if (rPower > samples[1].power) {
++ if (power > samples[1].power) {
+ index0 = 0;
+ index1 = 1;
-+ } else if (rPower > samples[2].power) {
++ } else if (power > samples[2].power) {
+ index0 = 1;
+ index1 = 2;
-+ } else if (rPower > samples[3].power) {
++ } else if (power > samples[3].power) {
+ index0 = 2;
+ index1 = 3;
+ } else {
@@ -3809,7 +3809,7 @@
+ gains0 = (s32) samples[index0].gain_index * (1 << 19);
+ gains1 = (s32) samples[index1].gain_index * (1 << 19);
+ res = gains0 + (gains1 - gains0) *
-+ ((s32) rPower - (s32) samples[index0].power) / denominator +
++ ((s32) power - (s32) samples[index0].power) / denominator +
+ (1 << 18);
+ *new_index = res >> 19;
+ return 0;
@@ -4034,10 +4034,10 @@
+{
+ struct ipw_bt_cmd bt_cmd = {
+ .flags = 3,
-+ .leadTime = 0xAA,
-+ .maxKill = 1,
-+ .killAckMask = 0,
-+ .killCTSMask = 0,
++ .lead_time = 0xAA,
++ .max_kill = 1,
++ .kill_ack_mask = 0,
++ .kill_cts_mask = 0,
+ };
+
+ return ipw_send_cmd_pdu(priv, REPLY_BT_CONFIG,
@@ -4221,7 +4221,7 @@
+ priv->rxon_timing.timestamp.dw[1] = priv->timestamp1;
+ priv->rxon_timing.timestamp.dw[0] = priv->timestamp0;
+
-+ priv->rxon_timing.listenInterval = INTEL_CONN_LISTEN_INTERVAL;
++ priv->rxon_timing.listen_interval = INTEL_CONN_LISTEN_INTERVAL;
+
+ tsf = priv->timestamp1;
+ tsf = ((tsf << 32) | priv->timestamp0);
@@ -4230,35 +4230,35 @@
+
+ if (priv->iw_mode == IEEE80211_IF_TYPE_STA) {
+ if (conf->beacon_int == 0) {
-+ priv->rxon_timing.beaconInterval = 100;
-+ priv->rxon_timing.beaconTimerInitVal = 102400;
++ priv->rxon_timing.beacon_interval = 100;
++ priv->rxon_timing.beacon_init_val = 102400;
+ } else {
-+ priv->rxon_timing.beaconInterval = conf->beacon_int;
-+ priv->rxon_timing.beaconInterval =
++ priv->rxon_timing.beacon_interval = conf->beacon_int;
++ priv->rxon_timing.beacon_interval =
+ ipw_adjust_beacon_interval(priv->
+ rxon_timing.
-+ beaconInterval);
++ beacon_interval);
+ }
+
-+ priv->rxon_timing.atimWindow = 0;
++ priv->rxon_timing.atim_window = 0;
+ } else {
-+ priv->rxon_timing.beaconInterval =
++ priv->rxon_timing.beacon_interval =
+ ipw_adjust_beacon_interval(conf->beacon_int);
+ /*MAC80211 we need to get atim_window from upper stack
+ for now we set to 0 TODO */
-+ priv->rxon_timing.atimWindow = 0;
++ priv->rxon_timing.atim_window = 0;
+ }
+
-+ interval_tm_unit = (priv->rxon_timing.beaconInterval * 1024);
++ interval_tm_unit = (priv->rxon_timing.beacon_interval * 1024);
+ result = do_div(tsf, interval_tm_unit);
-+ priv->rxon_timing.beaconTimerInitVal =
++ priv->rxon_timing.beacon_init_val =
+ (u32) ((u64) interval_tm_unit - result);
+
+ IPW_DEBUG_ASSOC
+ ("beacon interval %d beacon timer %d beacon tim %d\n",
-+ priv->rxon_timing.beaconInterval,
-+ priv->rxon_timing.beaconTimerInitVal,
-+ priv->rxon_timing.atimWindow);
++ priv->rxon_timing.beacon_interval,
++ priv->rxon_timing.beacon_init_val,
++ priv->rxon_timing.atim_window);
+ return rc;
+}
+#endif
@@ -4295,41 +4295,6 @@
+#define IEEE80211_ERP_USE_PROTECTION (0x02)
+#define IEEE80211_ERP_BARKER_PREAMBLE_MODE (0x04)
+
-+union ht_cap_info {
-+ struct {
-+ u16 advancedCodingCapability:1;
-+ u16 supportedChannelWidthSet:1;
-+ u16 mimoPowerSaveMode:2;
-+ u16 greenField:1;
-+ u16 shortGI20:1;
-+ u16 shortGI40:1;
-+ u16 TxStbc:1;
-+ u16 RxStbc:1;
-+ u16 beamForming:1;
-+ u16 delayedBA:1;
-+ u16 maximalAMsduSize:1;
-+ u16 cckModeAt40MHz:1;
-+ u16 psmpSupport:1;
-+ u16 stbcControlFrameSupport:1;
-+ u16 lSigTxOpProtectionSupport:1;
-+ };
-+ u16 val;
-+} __attribute__ ((packed));
-+
-+union ht_param_info {
-+ struct {
-+ u8 maxRxAMpduFactor:2;
-+ u8 mpduDensity:3;
-+ u8 reserved:3;
-+ };
-+ u8 val;
-+} __attribute__ ((packed));
-+
-+#define CFG_HT_RX_AMPDU_FACTOR_DEF (0x3)
-+#define HT_IE_MAX_AMSDU_SIZE_4K (0)
-+#define CFG_HT_MPDU_DENSITY_2USEC (0x5)
-+#define CFG_HT_MPDU_DENSITY_DEF CFG_HT_MPDU_DENSITY_2USEC
-+
+/*
+ fill in all required fields and ie for probe request frame
+*/
@@ -5264,7 +5229,7 @@
+ rxb = list_entry(element, struct ipw_rx_mem_buffer, list);
+ rxb->skb =
+ alloc_skb(priv->hw_setting.rx_buffer_size,
-+ GFP_DMA | __GFP_NOWARN | GFP_ATOMIC);
++ __GFP_NOWARN | GFP_ATOMIC);
+ if (!rxb->skb) {
+ printk(KERN_CRIT
+ "%s: Can not allocate SKB buffers.\n",
@@ -6515,8 +6480,8 @@
+ priv->stations[i].current_rate.s.rate = R_1M;
+ memset(&priv->stations[i].sta, 0, sizeof(struct ipw_addsta_cmd));
+ memcpy(priv->stations[i].sta.sta.MACAddr, bssid, ETH_ALEN);
-+ priv->stations[i].sta.ctrlAddModify = 0;
-+ priv->stations[i].sta.sta.staID = i;
++ priv->stations[i].sta.control = 0;
++ priv->stations[i].sta.sta.sta_id = i;
+ priv->stations[i].sta.station_flags = 0;
+
+ //todoG do we need this
@@ -6584,7 +6549,7 @@
+ STA_CONTROL_MODIFY_MSK;
+ priv->stations[sta_id].sta.tx_rate.rate_n_flags = tx_rate;
+ priv->stations[sta_id].current_rate.rate_n_flags = tx_rate;
-+ priv->stations[sta_id].sta.ctrlAddModify =
++ priv->stations[sta_id].sta.control =
+ STA_CONTROL_MODIFY_MSK;
+
+ spin_unlock_irqrestore(&priv->sta_lock, flags_spin);
@@ -8700,9 +8665,9 @@
+ }
+
+ case REPLY_ERROR:{
-+ u32 err_type = pkt->u.err_resp.enumErrorType;
-+ u8 cmd_id = pkt->u.err_resp.currentCmdID;
-+ u16 seq = pkt->u.err_resp.erroneousCmdSeqNum;
++ u32 err_type = pkt->u.err_resp.error_type;
++ u8 cmd_id = pkt->u.err_resp.cmd_id;
++ u16 seq = pkt->u.err_resp.bad_cmd_seq_num;
+ u32 info = pkt->u.err_resp.error_info;
+ IPW_ERROR("Error Reply type 0x%08X "
+ "cmd %s (0x%02X) "
@@ -8783,17 +8748,17 @@
+ break;
+
+ case BEACON_NOTIFICATION:{
-+ struct BeaconNtfSpecifics *beacon =
++ struct beacon_notif_specifics *beacon =
+ &(pkt->u.beacon_status);
+ IPW_DEBUG_INFO
+ ("beacon status %x retries %d iss %d "
+ "tsf %d %d rate %d\n",
-+ beacon->bconNotifHdr.status,
-+ beacon->bconNotifHdr.
++ beacon->beacon_notif_hdr.status,
++ beacon->beacon_notif_hdr.
+ failure_frame,
-+ beacon->ibssMgrStatus,
-+ beacon->highTSF, beacon->lowTSF,
-+ beacon->bconNotifHdr.rate);
++ beacon->ibss_mgr_status,
++ beacon->high_tsf, beacon->low_tsf,
++ beacon->beacon_notif_hdr.rate);
+
+ }
+ break;
@@ -9245,6 +9210,14 @@
+ return 0;
+}
+
++static inline u16* ieee80211_get_qos_ctrl(struct ieee80211_hdr *hdr)
++{
++ int hdr_len=ieee80211_get_hdrlen(hdr->frame_control);
++ if (hdr_len == 26)
++ return (u16 *)((u8 *) hdr + (hdr_len) - QOS_CONTROL_LEN);
++ return NULL;
++}
++
+/*
+ handle build REPLY_TX command notification.
+*/
@@ -9256,6 +9229,7 @@
+{
+ u32 tx_flags;
+ u16 fc = le16_to_cpu(hdr->frame_control);
++ u16 *qc;
+
+ tx_flags = cmd->cmd.tx.tx_flags;
+
@@ -9282,14 +9256,12 @@
+ cmd->cmd.tx.sta_id = std_id;
+ if (ieee80211_get_morefrag(hdr))
+ tx_flags |= TX_CMD_FLG_MORE_FRAG_MSK;
-+ if (ieee80211_get_hdrlen(fc) == 26) {
-+ u16 *qc = (u16 *)((u8 *)hdr +
-+ (ieee80211_get_hdrlen(fc) -
-+ QOS_CONTROL_LEN));
-+ cmd->cmd.tx.tid_tspec = (u8)(*qc & 0xF);
-+ } else
++ qc = ieee80211_get_qos_ctrl(hdr);
++ if (qc)
++ cmd->cmd.tx.tid_tspec = (u8)(*qc & 0xf);
++ else
+ tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK;
-+
++
+ if (ctrl->flags & IEEE80211_TXCTL_USE_RTS_CTS) {
+ tx_flags |= TX_CMD_FLG_RTS_MSK;
+ tx_flags &= ~TX_CMD_FLG_CTS_MSK;
@@ -9429,7 +9401,6 @@
+ return IPW3945_BROADCAST_ID;
+}
+
-+
+/*
+ start REPLY_TX command process
+*/
@@ -9448,9 +9419,10 @@
+ u8 id, hdr_len, unicast;
+ u8 sta_id;
+ u16 seq_number = 0;
-+ int rc;
+ u16 fc;
+ int len_org = 0, wait_write_ptr = 0;
++ u16 *qc;
++ int rc;
+
+ if (priv->status & STATUS_RF_KILL_MASK)
+ goto drop;
@@ -9473,12 +9445,15 @@
+
+ IPW_DEBUG_RATE("station Id %d\n", sta_id);
+
-+ if (ieee80211_get_hdrlen(fc) == 26) {
-+ seq_number = priv->stations[sta_id].tid[tx_id].seq_number;
++ qc = ieee80211_get_qos_ctrl(hdr);
++ if (qc) {
++ u8 tid = (u8)(*qc * 0xf);
++ seq_number = priv->stations[sta_id].tid[tid].seq_number;
+ if (!(ieee80211_get_morefrag(hdr)))
-+ priv->stations[sta_id].tid[tx_id].seq_number += 0x10;
-+ if (WLAN_FC_GET_TYPE(fc) == IEEE80211_FTYPE_DATA)
-+ hdr->seq_ctrl |= cpu_to_le16(seq_number);
++ priv->stations[sta_id].tid[tid].seq_number += 0x10;
++
++ hdr->seq_ctrl = cpu_to_le16(seq_number) |
++ (hdr->seq_ctrl & 0xf);
+ }
+
+ tfd = (u8 *) (&txq->bd[q->first_empty * q->element_size]);
@@ -9517,10 +9492,15 @@
+ if (ctl->key_idx != -1)
+ ipw_build_tx_cmd_hwcrypto(priv, ctl, out_cmd, skb, 0);
+
-+ phys_addr = pci_map_single(priv->pci_dev, skb->data + hdr_len,
-+ skb->len - hdr_len, PCI_DMA_TODEVICE);
+ len = skb->len - hdr_len;
-+ attach_buffer_to_tfd_frame(priv, tfd, phys_addr, len);
++
++ /* 802.11 null functions have no payload... */
++ if (len) {
++ phys_addr = pci_map_single(priv->pci_dev, skb->data + hdr_len,
++ skb->len - hdr_len,
++ PCI_DMA_TODEVICE);
++ attach_buffer_to_tfd_frame(priv, tfd, phys_addr, len);
++ }
+
+ out_cmd->cmd.tx.len = skb->len;
+ if (priv->is_3945)
@@ -9991,24 +9971,24 @@
+ } else {
+ max_sleep =
+ (cmd->
-+ SleepInterval[PMC_TCMD_SLEEP_INTRVL_TABLE_SIZE -
++ sleep_interval[PMC_TCMD_SLEEP_INTRVL_TABLE_SIZE -
+ 1] / period) * period;
+ cmd->flags |= PMC_TCMD_FLAG_SLEEP_OVER_DTIM_MSK;
+ }
+
+ for (i = 0; i < PMC_TCMD_SLEEP_INTRVL_TABLE_SIZE; i++) {
-+ if (cmd->SleepInterval[i] > max_sleep)
-+ cmd->SleepInterval[i] = max_sleep;
++ if (cmd->sleep_interval[i] > max_sleep)
++ cmd->sleep_interval[i] = max_sleep;
+ }
+
+ IPW_DEBUG_POWER("Flags value = 0x%08X\n", cmd->flags);
-+ IPW_DEBUG_POWER("Tx timeout = %u\n", cmd->TxDataTimeout);
-+ IPW_DEBUG_POWER("Rx timeout = %u\n", cmd->RxDataTimeout);
++ IPW_DEBUG_POWER("Tx timeout = %u\n", cmd->tx_data_timeout);
++ IPW_DEBUG_POWER("Rx timeout = %u\n", cmd->rx_data_timeout);
+ IPW_DEBUG_POWER
+ ("Sleep interval vector = { %d , %d , %d , %d , %d }\n",
-+ cmd->SleepInterval[0], cmd->SleepInterval[1],
-+ cmd->SleepInterval[2], cmd->SleepInterval[3],
-+ cmd->SleepInterval[4]);
++ cmd->sleep_interval[0], cmd->sleep_interval[1],
++ cmd->sleep_interval[2], cmd->sleep_interval[3],
++ cmd->sleep_interval[4]);
+
+ return rc;
+}
@@ -10895,7 +10875,7 @@
+ keyconf->keylen);
+ priv->stations[sta_id].sta.key.key_flags = key_flags;
+ priv->stations[sta_id].sta.sta.modify_mask |= STA_MODIFY_KEY_MASK;
-+ priv->stations[sta_id].sta.ctrlAddModify |= STA_CONTROL_MODIFY_MSK;
++ priv->stations[sta_id].sta.control |= STA_CONTROL_MODIFY_MSK;
+
+ spin_unlock_irqrestore(&priv->sta_lock, flags);
+
@@ -11683,6 +11663,10 @@
+
+ priv->status |= STATUS_EXIT_PENDING;
+
++ /* prevent ipw_down from queuing priv->up
++ * when we are in fw error */
++ priv->status &= ~STATUS_FW_ERROR;
++
+ ipw_down(priv);
+
+ mutex_unlock(&priv->mutex);
@@ -11901,7 +11885,7 @@
+
+static int ipw3945_stop_tx_queue(struct ipw_priv *priv)
+{
-+ int queueId;
++ int id;
+ int rc;
+ unsigned long flags;
+
@@ -11916,11 +11900,11 @@
+ ipw_write_restricted_reg(priv, SCD_MODE_REG, 0);
+
+ /* reset TFD queues */
-+ for (queueId = TFD_QUEUE_MIN; queueId < TFD_QUEUE_MAX; queueId++) {
-+ ipw_write_restricted(priv, FH_TCSR_CONFIG(queueId), 0x0);
++ for (id = TFD_QUEUE_MIN; id < TFD_QUEUE_MAX; id++) {
++ ipw_write_restricted(priv, FH_TCSR_CONFIG(id), 0x0);
+ ipw_poll_restricted_bit(priv, FH_TSSR_TX_STATUS,
+ ALM_FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE
-+ (queueId), 1000);
++ (id), 1000);
+ }
+
+ ipw_release_restricted_access(priv);
@@ -12368,13 +12352,13 @@
+
+ return 0;
+}
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/Makefile.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/Makefile 2007-04-27 14:33:25.000000000 -0400
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/Makefile 2007-04-30 20:19:23.000000000 -0400
@@ -0,0 +1,2 @@
+iwlwifi-objs := base.o
+obj-$(CONFIG_IWLWIFI) += iwlwifi.o
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwlwifi.h.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwlwifi.h 2007-04-27 14:33:42.000000000 -0400
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/iwlwifi.h 2007-04-30 20:21:52.000000000 -0400
@@ -0,0 +1,1296 @@
+/******************************************************************************
+
@@ -13672,8 +13656,8 @@
+#define IPW3945_RX_BUF_SIZE 3000
+
+#endif /* __iwlwifi_h__ */
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/Kconfig.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/Kconfig 2007-04-27 14:33:25.000000000 -0400
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/Kconfig 2007-04-30 20:19:23.000000000 -0400
@@ -0,0 +1,52 @@
+config IWLWIFI
+ tristate "Intel PRO/Wireless 3945ABG Network Connection adapter"
@@ -13727,8 +13711,8 @@
+ If this is your first time using this driver, you should say Y here
+ as the debug information can assist others in helping you resolve
+ any problems you may encounter.
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.h.orig 2007-04-27 14:33:50.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.h 2007-04-27 14:33:42.000000000 -0400
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.h 2007-04-30 20:21:52.000000000 -0400
@@ -0,0 +1,89 @@
+#ifndef __iwl_3945_rs_h__
+#define __iwl_3945_rs_h__
@@ -13819,8 +13803,8 @@
+static int ipw_rate_scale_rxon_handle(struct ipw_priv *priv, s32 sta_id);
+
+#endif
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwlwifi_hw.h.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwlwifi_hw.h 2007-04-27 14:33:42.000000000 -0400
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/iwlwifi_hw.h 2007-04-30 20:21:52.000000000 -0400
@@ -0,0 +1,1973 @@
+/******************************************************************************
+
@@ -13963,10 +13947,10 @@
+ */
+
+struct ipw_error_resp {
-+ u32 enumErrorType; //7:4
-+ u8 currentCmdID; //8
++ u32 error_type; //7:4
++ u8 cmd_id; //8
+ u8 reserved1; //9
-+ u16 erroneousCmdSeqNum; //11:10
++ u16 bad_cmd_seq_num; //11:10
+ u16 reserved2; //13:12
+ u32 error_info; //17:14
+ union tsf timestamp; //all TSF //25:18
@@ -14101,10 +14085,10 @@
+ */
+struct ipw_rxon_time_cmd {
+ union tsf timestamp; // all TSF //11:4
-+ u16 beaconInterval; //13:12
-+ u16 atimWindow; //15:14
-+ u32 beaconTimerInitVal; //19:16
-+ u16 listenInterval; //21:20
++ u16 beacon_interval; //13:12
++ u16 atim_window; //15:14
++ u32 beacon_init_val; //19:16
++ u16 listen_interval; //21:20
+ u16 reserved; //23:22
+} __attribute__ ((packed));
+
@@ -14190,13 +14174,13 @@
+struct sta_id_modify {
+ u8 MACAddr[ETH_ALEN];
+ u16 reserved1;
-+ u8 staID;
++ u8 sta_id;
+ u8 modify_mask;
+ u16 reserved2;
+} __attribute__ ((packed));
+
+struct ipw_addsta_cmd {
-+ u8 ctrlAddModify;
++ u8 control;
+ u8 reserved[3];
+ struct sta_id_modify sta;
+ struct ipw_keyinfo key;
@@ -14707,11 +14691,11 @@
+// Command Notification and Response Headers are Covered by the
+
+// Beacon Notification
-+struct BeaconNtfSpecifics {
-+ struct ipw_tx_resp bconNotifHdr; //15:4
-+ u32 lowTSF; //19:16
-+ u32 highTSF; //23:20
-+ u32 ibssMgrStatus; //27:24
++struct beacon_notif_specifics {
++ struct ipw_tx_resp beacon_notif_hdr; //15:4
++ u32 low_tsf; //19:16
++ u32 high_tsf; //23:20
++ u32 ibss_mgr_status; //27:24
+} __attribute__ ((packed));
+
+// TxBeacon Command
@@ -14852,7 +14836,7 @@
+ * '01' force Mac sleep
+ * '10' force xtal sleep
+ * '11' Illegal set
-+ * NOTE: if SleepInterval[SLEEP_INTRVL_TABLE_SIZE-1] > DTIM period then
++ * NOTE: if sleep_interval[SLEEP_INTRVL_TABLE_SIZE-1] > DTIM period then
+ * ucode assume sleep over DTIM is allowed and we don't need to wakeup
+ * for every DTIM.
+ */
@@ -14863,9 +14847,9 @@
+
+struct ipw_powertable_cmd {
+ u32 flags;
-+ u32 RxDataTimeout;
-+ u32 TxDataTimeout;
-+ u32 SleepInterval[PMC_TCMD_SLEEP_INTRVL_TABLE_SIZE];
++ u32 rx_data_timeout;
++ u32 tx_data_timeout;
++ u32 sleep_interval[PMC_TCMD_SLEEP_INTRVL_TABLE_SIZE];
+} __attribute__ ((packed));
+
+struct ipw_sleep_notification {
@@ -14893,11 +14877,11 @@
+
+struct ipw_bt_cmd {
+ u8 flags;
-+ u8 leadTime;
-+ u8 maxKill;
++ u8 lead_time;
++ u8 max_kill;
+ u8 reserved;
-+ u32 killAckMask;
-+ u32 killCTSMask;
++ u32 kill_ack_mask;
++ u32 kill_cts_mask;
+} __attribute__ ((packed));
+
+struct rx_phy_statistics {
@@ -15724,7 +15708,7 @@
+ struct ipw_error_resp err_resp;
+ struct ipw_card_state_notif card_state_notif;
+ struct ipw_notif_statistics stats;
-+ struct BeaconNtfSpecifics beacon_status;
++ struct beacon_notif_specifics beacon_status;
+ struct ipw_add_sta_resp add_sta;
+ struct ipw_sleep_notification sleep_notif;
+ struct ipw_spectrum_resp spectrum;
@@ -15795,8 +15779,8 @@
+#define IPW_RX_BUF_SIZE 3000
+
+#endif /* __iwlwifi_hw_h__ */
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.c.orig 2007-04-27 14:33:48.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.c 2007-04-27 14:33:42.000000000 -0400
+--- /dev/null 2007-04-17 21:17:54.747954992 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/iwlwifi/iwl-3945-rs.c 2007-04-30 20:21:52.000000000 -0400
@@ -0,0 +1,962 @@
+/*************** RATE-SCALING functions ***********************/
+
@@ -16760,15 +16744,15 @@
+ priv->rate_control.alloc_sta = rs_alloc_sta;
+ priv->rate_control.free_sta = rs_free_sta;
+}
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/Makefile.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/Makefile 2007-04-27 14:33:25.000000000 -0400
+--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/Makefile.orig 2007-04-30 20:16:33.000000000 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/Makefile 2007-04-30 20:19:23.000000000 -0400
@@ -4,3 +4,4 @@ obj-$(CONFIG_ADM8211) += adm8211/
obj-$(CONFIG_P54_COMMON) += p54/
obj-$(CONFIG_ZD1211RW_MAC80211) += zd1211rw/
obj-$(CONFIG_RTL818X) += rtl818x/
+obj-$(CONFIG_IWLWIFI) += iwlwifi/
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/Kconfig.orig 2007-04-27 14:33:00.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/Kconfig 2007-04-27 14:33:25.000000000 -0400
+--- linux-2.6.21.noarch/drivers/net/wireless/mac80211/Kconfig.orig 2007-04-30 20:16:33.000000000 -0400
++++ linux-2.6.21.noarch/drivers/net/wireless/mac80211/Kconfig 2007-04-30 20:19:23.000000000 -0400
@@ -4,3 +4,4 @@ source "drivers/net/wireless/mac80211/ad
source "drivers/net/wireless/mac80211/p54/Kconfig"
source "drivers/net/wireless/mac80211/zd1211rw/Kconfig"
git-wireless-dev.patch:
.mailmap | 1
CREDITS | 31
MAINTAINERS | 49
drivers/Kconfig | 2
drivers/Makefile | 1
drivers/misc/Kconfig | 6
drivers/misc/Makefile | 1
drivers/misc/eeprom_93cx6.c | 347 +
drivers/net/wireless/Kconfig | 2
drivers/net/wireless/Makefile | 3
drivers/net/wireless/bcm43xx/Kconfig | 1
drivers/net/wireless/mac80211/Kconfig | 6
drivers/net/wireless/mac80211/Makefile | 6
drivers/net/wireless/mac80211/README | 2
drivers/net/wireless/mac80211/adm8211/Kconfig | 25
drivers/net/wireless/mac80211/adm8211/Makefile | 1
drivers/net/wireless/mac80211/adm8211/adm8211.c | 2172 ++++++
drivers/net/wireless/mac80211/adm8211/adm8211.h | 622 +
drivers/net/wireless/mac80211/bcm43xx/Kconfig | 101
drivers/net/wireless/mac80211/bcm43xx/Makefile | 18
drivers/net/wireless/mac80211/bcm43xx/bcm43xx.h | 885 ++
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_debugfs.c | 433 +
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_debugfs.h | 110
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_dma.c | 1383 ++++
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_dma.h | 361 +
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_leds.c | 300
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_leds.h | 56
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.c | 1110 +++
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_lo.h | 92
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c | 4029 ++++++++++++
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.h | 156
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pcmcia.c | 163
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pcmcia.h | 22
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c | 4286 +++++++++++++
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.h | 309
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pio.c | 671 ++
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_pio.h | 170
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_power.c | 82
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_power.h | 41
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_sysfs.c | 232
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_sysfs.h | 9
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_tables.c | 376 +
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_tables.h | 28
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_xmit.c | 603 +
drivers/net/wireless/mac80211/bcm43xx/bcm43xx_xmit.h | 250
drivers/net/wireless/mac80211/p54/Kconfig | 10
drivers/net/wireless/mac80211/p54/Makefile | 4
drivers/net/wireless/mac80211/p54/net2280.h | 452 +
drivers/net/wireless/mac80211/p54/prism54.h | 77
drivers/net/wireless/mac80211/p54/prism54common.c | 821 ++
drivers/net/wireless/mac80211/p54/prism54common.h | 328 +
drivers/net/wireless/mac80211/p54/prism54magic.h | 77
drivers/net/wireless/mac80211/p54/prism54pci.c | 700 ++
drivers/net/wireless/mac80211/p54/prism54pci.h | 106
drivers/net/wireless/mac80211/p54/prism54usb.c | 946 ++
drivers/net/wireless/mac80211/p54/prism54usb.h | 133
drivers/net/wireless/mac80211/rt2x00/Kconfig | 99
drivers/net/wireless/mac80211/rt2x00/Makefile | 14
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 1769 +++++
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 918 ++
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 1951 ++++++
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 1185 +++
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 1729 +++++
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 738 ++
drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 1057 +++
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c | 353 +
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 72
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 831 ++
drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 128
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 426 +
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.c | 587 +
drivers/net/wireless/mac80211/rt2x00/rt2x00pci.h | 83
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.c | 637 ++
drivers/net/wireless/mac80211/rt2x00/rt2x00usb.h | 120
drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 2332 +++++++
drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 1348 ++++
drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 1966 ++++++
drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 937 ++
drivers/net/wireless/mac80211/rtl818x/Kconfig | 9
drivers/net/wireless/mac80211/rtl818x/Makefile | 2
drivers/net/wireless/mac80211/rtl818x/rtl8187.h | 126
drivers/net/wireless/mac80211/rtl818x/rtl8187_dev.c | 726 ++
drivers/net/wireless/mac80211/rtl818x/rtl8187_rtl8225.c | 747 ++
drivers/net/wireless/mac80211/rtl818x/rtl8187_rtl8225.h | 30
drivers/net/wireless/mac80211/rtl818x/rtl818x.h | 180
drivers/net/wireless/mac80211/zd1211rw/Kconfig | 19
drivers/net/wireless/mac80211/zd1211rw/Makefile | 11
drivers/net/wireless/mac80211/zd1211rw/zd_chip.c | 1679 +++++
drivers/net/wireless/mac80211/zd1211rw/zd_chip.h | 910 ++
drivers/net/wireless/mac80211/zd1211rw/zd_def.h | 57
drivers/net/wireless/mac80211/zd1211rw/zd_ieee80211.h | 67
drivers/net/wireless/mac80211/zd1211rw/zd_mac.c | 700 ++
drivers/net/wireless/mac80211/zd1211rw/zd_mac.h | 250
drivers/net/wireless/mac80211/zd1211rw/zd_rf.c | 170
drivers/net/wireless/mac80211/zd1211rw/zd_rf.h | 80
drivers/net/wireless/mac80211/zd1211rw/zd_rf_al2230.c | 436 +
drivers/net/wireless/mac80211/zd1211rw/zd_rf_al7230b.c | 491 +
drivers/net/wireless/mac80211/zd1211rw/zd_rf_rf2959.c | 279
drivers/net/wireless/mac80211/zd1211rw/zd_usb.c | 1337 ++++
drivers/net/wireless/mac80211/zd1211rw/zd_usb.h | 241
drivers/net/wireless/mac80211/zd1211rw/zd_util.c | 82
drivers/net/wireless/mac80211/zd1211rw/zd_util.h | 29
drivers/net/wireless/zd1211rw/Kconfig | 1
drivers/ssb/Kconfig | 93
drivers/ssb/Makefile | 11
drivers/ssb/driver_chipcommon.c | 402 +
drivers/ssb/driver_mipscore.c | 258
drivers/ssb/driver_pcicore.c | 556 +
drivers/ssb/main.c | 1047 +++
drivers/ssb/pci.c | 672 ++
drivers/ssb/pcihost_wrapper.c | 104
drivers/ssb/pcmcia.c | 256
drivers/ssb/scan.c | 407 +
drivers/ssb/ssb_private.h | 151
drivers/usb/host/Kconfig | 13
drivers/usb/host/ohci-hcd.c | 21
drivers/usb/host/ohci-ssb.c | 254
include/linux/crc-itu-t.h | 27
include/linux/eeprom_93cx6.h | 77
include/linux/ieee80211.h | 403 +
include/linux/nl80211.h | 263
include/linux/ssb/ssb.h | 403 +
include/linux/ssb/ssb_driver_chipcommon.h | 387 +
include/linux/ssb/ssb_driver_extif.h | 163
include/linux/ssb/ssb_driver_mips.h | 47
include/linux/ssb/ssb_driver_pci.h | 108
include/linux/ssb/ssb_regs.h | 294
include/net/cfg80211.h | 114
include/net/iw_handler.h | 8
include/net/mac80211.h | 1060 +++
lib/Kconfig | 8
lib/Makefile | 1
lib/crc-itu-t.c | 64
net/Kconfig | 1
net/Makefile | 2
net/mac80211/Kconfig | 81
net/mac80211/Makefile | 20
net/mac80211/aes_ccm.c | 155
net/mac80211/aes_ccm.h | 26
net/mac80211/debugfs.c | 433 +
net/mac80211/debugfs.h | 16
net/mac80211/debugfs_key.c | 253
net/mac80211/debugfs_key.h | 34
net/mac80211/debugfs_netdev.c | 440 +
net/mac80211/debugfs_netdev.h | 30
net/mac80211/debugfs_sta.c | 247
net/mac80211/debugfs_sta.h | 12
net/mac80211/hostapd_ioctl.h | 344 +
net/mac80211/ieee80211.c | 5095 ++++++++++++++++
net/mac80211/ieee80211_cfg.c | 72
net/mac80211/ieee80211_cfg.h | 9
net/mac80211/ieee80211_common.h | 98
net/mac80211/ieee80211_i.h | 812 ++
net/mac80211/ieee80211_iface.c | 353 +
net/mac80211/ieee80211_ioctl.c | 3180 +++++++++
net/mac80211/ieee80211_key.h | 106
net/mac80211/ieee80211_led.c | 91
net/mac80211/ieee80211_led.h | 32
net/mac80211/ieee80211_rate.c | 140
net/mac80211/ieee80211_rate.h | 144
net/mac80211/ieee80211_sta.c | 3217 ++++++++++
net/mac80211/michael.c | 104
net/mac80211/michael.h | 20
net/mac80211/rc80211_simple.c | 432 +
net/mac80211/sta_info.c | 464 +
net/mac80211/sta_info.h | 167
net/mac80211/tkip.c | 341 +
net/mac80211/tkip.h | 36
net/mac80211/wep.c | 328 +
net/mac80211/wep.h | 40
net/mac80211/wme.c | 688 ++
net/mac80211/wme.h | 39
net/mac80211/wpa.c | 846 ++
net/mac80211/wpa.h | 31
net/wireless/Kconfig | 17
net/wireless/Makefile | 1
net/wireless/core.c | 143
net/wireless/core.h | 32
net/wireless/nl80211.c | 993 +++
net/wireless/nl80211.h | 24
net/wireless/sysfs.c | 50
181 files changed, 79055 insertions(+), 3 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.7 -r 1.8 git-wireless-dev.patch
Index: git-wireless-dev.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/git-wireless-dev.patch,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- git-wireless-dev.patch 25 Apr 2007 18:07:00 -0000 1.7
+++ git-wireless-dev.patch 1 May 2007 00:44:04 -0000 1.8
@@ -1,175 +1,14 @@
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-dev.git
-commit 6295da8ac8ad909dbe49d4c02ee9902fbdb04704
+commit 1fd8ffe72853ed41a0d3b489a2d94959aef6af80
--- /dev/null 2007-04-17 21:17:54.747954992 -0400
-+++ linux-2.6.20.noarch/include/net/wireless.h 2007-04-25 11:20:17.000000000 -0400
-@@ -0,0 +1,159 @@
-+#ifndef __NET_WIRELESS_H
-+#define __NET_WIRELESS_H
-+
-+/*
-+ * 802.11 device management
-+ *
-+ * Copyright 2007 Johannes Berg <johannes at sipsolutions.net>
-+ */
-+
-+#include <linux/netdevice.h>
-+#include <linux/debugfs.h>
-+#include <linux/list.h>
-+#include <net/cfg80211.h>
-+
-+/**
-+ * struct wiphy - wireless hardware description
-+ * @idx: the wiphy index assigned to this item
-+ * @class_dev: the class device representing /sys/class/ieee80211/<wiphy-name>
-+ */
-+struct wiphy {
-+ /* assign these fields before you register the wiphy */
-+
-+ /* permanent MAC address */
-+ u8 perm_addr[ETH_ALEN];
-+
-+ /* If multiple wiphys are registered and you're handed e.g.
-+ * a regular netdev with assigned ieee80211_ptr, you won't
-+ * know whether it points to a wiphy your driver has registered
-+ * or not. Assign this to something global to your driver to
-+ * help determine whether you own this wiphy or not. */
-+ void *privid;
-+
-+ /* fields below are read-only, assigned by cfg80211 */
-+
-+ /* the item in /sys/class/ieee80211/ points to this,
-+ * you need use set_wiphy_dev() (see below) */
-+ struct device dev;
-+
-+ /* dir in debugfs: ieee80211/<wiphyname> */
-+ struct dentry *debugfsdir;
-+
-+ char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
-+};
-+
-+/** struct wireless_dev - wireless per-netdev state
-+ *
-+ * This structure must be allocated by the driver/stack
-+ * that uses the ieee80211_ptr field in struct net_device
-+ * (this is intentional so it can be allocated along with
-+ * the netdev.)
-+ *
-+ * @wiphy: pointer to hardware description
-+ */
-+struct wireless_dev {
-+ struct wiphy *wiphy;
-+
-+ /* private to the generic wireless code */
-+ struct list_head list;
-+ struct net_device *netdev;
-+};
-+
-+/**
-+ * wiphy_priv - return priv from wiphy
-+ */
-+static inline void *wiphy_priv(struct wiphy *wiphy)
-+{
-+ BUG_ON(!wiphy);
-+ return &wiphy->priv;
-+}
-+
-+/**
-+ * set_wiphy_dev - set device pointer for wiphy
-+ */
-+static inline void set_wiphy_dev(struct wiphy *wiphy, struct device *dev)
-+{
-+ wiphy->dev.parent = dev;
-+}
-+
-+/**
-+ * wiphy_dev - get wiphy dev pointer
-+ */
-+static inline struct device *wiphy_dev(struct wiphy *wiphy)
-+{
-+ return wiphy->dev.parent;
-+}
-+
-+/**
-+ * wiphy_name - get wiphy name
-+ */
-+static inline char *wiphy_name(struct wiphy *wiphy)
-+{
-+ return wiphy->dev.bus_id;
-+}
-+
-+/**
-+ * wdev_priv - return wiphy priv from wireless_dev
-+ */
-+static inline void *wdev_priv(struct wireless_dev *wdev)
-+{
-+ BUG_ON(!wdev);
-+ return wiphy_priv(wdev->wiphy);
-+}
-+
-+/**
-+ * wiphy_new - create a new wiphy for use with cfg80211
-+ *
-+ * create a new wiphy and associate the given operations with it.
-+ * @sizeof_priv bytes are allocated for private use.
-+ *
-+ * the returned pointer must be assigned to each netdev's
-+ * ieee80211_ptr for proper operation.
-+ */
-+struct wiphy *wiphy_new(struct cfg80211_ops *ops, int sizeof_priv);
-+
-+/**
-+ * wiphy_register - register a wiphy with cfg80211
-+ *
-+ * register the given wiphy
-+ *
-+ * Returns a non-negative wiphy index or a negative error code.
-+ */
-+extern int wiphy_register(struct wiphy *wiphy);
-+
-+/**
-+ * wiphy_unregister - deregister a wiphy from cfg80211
-+ *
-+ * unregister a device with the given priv pointer.
-+ * After this call, no more requests can be made with this priv
-+ * pointer, but the call may sleep to wait for an outstanding
-+ * request that is being handled.
-+ */
-+extern void wiphy_unregister(struct wiphy *wiphy);
-+
-+/**
-+ * wiphy_free - free wiphy
-+ */
-+extern void wiphy_free(struct wiphy *wiphy);
-+
-+
-+/*
-+ * internal definitions for wireless
-+ */
-+
-+#if defined(CONFIG_CFG80211_WEXT_COMPAT) || defined(CONFIG_WIRELESS_EXT)
-+int wext_ioctl(unsigned int cmd, struct ifreq *ifreq, void __user *arg);
-+int wireless_proc_init(void);
-+#else
-+static inline
-+int wext_ioctl(unsigned int cmd, struct ifreq *ifreq, void __user *arg)
-+{
-+ return -EINVAL;
-+}
-+static inline int wireless_proc_init(void)
-+{
-+ return 0;
-+}
-+#endif
-+
-+#endif /* __NET_WIRELESS_H */
---- /dev/null 2007-04-17 21:17:54.747954992 -0400
-+++ linux-2.6.20.noarch/include/net/mac80211.h 2007-04-25 11:20:17.000000000 -0400
-@@ -0,0 +1,1103 @@
++++ linux-2.6.21.noarch/include/net/mac80211.h 2007-04-30 20:04:50.000000000 -0400
+@@ -0,0 +1,1060 @@
+/*
+ * Low-level hardware driver -- IEEE 802.11 driver (80211.o) interface
+ * Copyright 2002-2005, Devicescape Software, Inc.
++ * Copyright 2006-2007 Jiri Benc <jbenc at suse.cz>
+ *
+ * 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
@@ -221,7 +60,9 @@
+ * freq, and val fields. Other fields will be filled in by 80211.o based on
+ * hostapd information and low-level driver does not need to use them. The
+ * limits for each channel will be provided in 'struct ieee80211_conf' when
-+ * configuring the low-level driver with hw->config callback. */
++ * configuring the low-level driver with hw->config callback. If a device has
++ * a default regulatory domain, IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED
++ * can be set to let the driver configure all fields */
+struct ieee80211_channel {
+ short chan; /* channel number (IEEE 802.11) */
+ short freq; /* frequency in MHz */
@@ -385,9 +226,6 @@
[...37310 lines suppressed...]
+ return 0;
+ }
@@ -88288,7 +78878,7 @@
+ !ieee80211_sta_match_ssid(ifsta, bss->ssid, bss->ssid_len))
+ continue;
+
-+ if (top_rssi < bss->rssi) {
++ if (!selected || top_rssi < bss->rssi) {
+ selected = bss;
+ top_rssi = bss->rssi;
+ }
@@ -88305,16 +78895,18 @@
+ ieee80211_sta_set_bssid(dev, selected->bssid);
+ ieee80211_rx_bss_put(dev, selected);
+ ifsta->state = IEEE80211_AUTHENTICATE;
++ rtnl_unlock();
+ ieee80211_sta_reset_auth(dev, ifsta);
+ return 0;
+ } else {
+ if (ifsta->state != IEEE80211_AUTHENTICATE) {
-+ ieee80211_sta_start_scan(dev, NULL, 0);;
++ ieee80211_sta_start_scan(dev, NULL, 0);
+ ifsta->state = IEEE80211_AUTHENTICATE;
+ set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
+ } else
+ ifsta->state = IEEE80211_DISABLED;
+ }
++ rtnl_unlock();
+ return -1;
+}
+
@@ -88764,19 +79356,24 @@
+ printk(KERN_DEBUG "%s: failed to restore operational"
+ "channel after scan\n", dev->name);
+
++ if (!(local->hw.flags & IEEE80211_HW_NO_PROBE_FILTERING) &&
++ ieee80211_if_config(dev))
++ printk(KERN_DEBUG "%s: failed to restore operational"
++ "BSSID after scan\n", dev->name);
++
+ memset(&wrqu, 0, sizeof(wrqu));
+ wireless_send_event(dev, SIOCGIWSCAN, &wrqu, NULL);
+
-+ spin_lock_bh(&local->sub_if_lock);
++ read_lock(&local->sub_if_lock);
+ list_for_each_entry(sdata, &local->sub_if_list, list) {
+ if (sdata->type == IEEE80211_IF_TYPE_STA) {
+ if (sdata->u.sta.associated)
+ ieee80211_send_nullfunc(local, sdata, 0);
-+ ieee80211_sta_timer((unsigned long)&sdata->u.sta);
++ ieee80211_sta_timer((unsigned long)sdata);
+ }
+ netif_wake_queue(sdata->dev);
+ }
-+ spin_unlock_bh(&local->sub_if_lock);
++ read_unlock(&local->sub_if_lock);
+
+ sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+ if (sdata->type == IEEE80211_IF_TYPE_IBSS) {
@@ -88864,7 +79461,8 @@
+ }
+
+ if (local->sta_scanning)
-+ schedule_delayed_work(&local->scan_work, next_delay);
++ queue_delayed_work(local->hw.workqueue, &local->scan_work,
++ next_delay);
+}
+
+
@@ -88912,14 +79510,14 @@
+
+ local->sta_scanning = 1;
+
-+ spin_lock_bh(&local->sub_if_lock);
++ read_lock(&local->sub_if_lock);
+ list_for_each_entry(sdata, &local->sub_if_list, list) {
+ netif_stop_queue(sdata->dev);
+ if (sdata->type == IEEE80211_IF_TYPE_STA &&
+ sdata->u.sta.associated)
+ ieee80211_send_nullfunc(local, sdata, 1);
+ }
-+ spin_unlock_bh(&local->sub_if_lock);
++ read_unlock(&local->sub_if_lock);
+
+ if (ssid) {
+ local->scan_ssid_len = ssid_len;
@@ -88932,8 +79530,15 @@
+ list);
+ local->scan_channel_idx = 0;
+ local->scan_dev = dev;
++
++ if (!(local->hw.flags & IEEE80211_HW_NO_PROBE_FILTERING) &&
++ ieee80211_if_config(dev))
++ printk(KERN_DEBUG "%s: failed to set BSSID for scan\n",
++ dev->name);
++
+ /* TODO: start scan as soon as all nullfunc frames are ACKed */
-+ schedule_delayed_work(&local->scan_work, IEEE80211_CHANNEL_TIME);
++ queue_delayed_work(local->hw.workqueue, &local->scan_work,
++ IEEE80211_CHANNEL_TIME);
+
+ return 0;
+}
@@ -88955,7 +79560,7 @@
+ }
+
+ set_bit(IEEE80211_STA_REQ_SCAN, &ifsta->request);
-+ schedule_work(&ifsta->work);
++ queue_work(local->hw.workqueue, &ifsta->work);
+ return 0;
+}
+
@@ -89010,6 +79615,10 @@
+
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWFREQ;
++ iwe.u.freq.m = bss->channel;
++ iwe.u.freq.e = 0;
++ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
++ IW_EV_FREQ_LEN);
+ iwe.u.freq.m = bss->freq * 100000;
+ iwe.u.freq.e = 1;
+ current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
@@ -89163,7 +79772,6 @@
+ struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+ struct sta_info *sta;
+ struct ieee80211_sub_if_data *sdata = NULL;
-+ struct net_device *sta_dev = NULL;
+
+ /* TODO: Could consider removing the least recently used entry and
+ * allow new one to be added. */
@@ -89175,26 +79783,13 @@
+ return NULL;
+ }
+
-+ spin_lock_bh(&local->sub_if_lock);
-+ list_for_each_entry(sdata, &local->sub_if_list, list)
-+ if (sdata->type == IEEE80211_IF_TYPE_IBSS &&
-+ memcmp(bssid, sdata->u.sta.bssid, ETH_ALEN) == 0) {
-+ sta_dev = sdata->dev;
-+ break;
-+ }
-+ spin_unlock_bh(&local->sub_if_lock);
-+
-+ if (!sta_dev)
-+ return NULL;
-+
+ printk(KERN_DEBUG "%s: Adding new IBSS station " MAC_FMT " (dev=%s)\n",
-+ dev->name, MAC_ARG(addr), sta_dev->name);
++ local->mdev->name, MAC_ARG(addr), dev->name);
+
+ sta = sta_info_add(local, dev, addr, GFP_ATOMIC);
+ if (!sta)
+ return NULL;
+
-+ sta->dev = sta_dev;
+ sta->supp_rates = sdata->u.sta.supp_rates_bits;
+
+ rate_control_rate_init(sta, local);
@@ -89240,7 +79835,7 @@
+ return 0;
+}
--- /dev/null 2007-04-17 21:17:54.747954992 -0400
-+++ linux-2.6.20.noarch/net/mac80211/ieee80211_cfg.h 2007-04-25 11:20:17.000000000 -0400
++++ linux-2.6.21.noarch/net/mac80211/ieee80211_cfg.h 2007-04-30 20:04:51.000000000 -0400
@@ -0,0 +1,9 @@
+/*
+ * mac80211 configuration hooks for cfg80211
@@ -89252,7 +79847,7 @@
+
+#endif /* __IEEE80211_CFG_H */
--- /dev/null 2007-04-17 21:17:54.747954992 -0400
-+++ linux-2.6.20.noarch/net/mac80211/debugfs.h 2007-04-25 11:20:17.000000000 -0400
++++ linux-2.6.21.noarch/net/mac80211/debugfs.h 2007-04-30 20:04:51.000000000 -0400
@@ -0,0 +1,16 @@
+#ifndef __MAC80211_DEBUGFS_H
+#define __MAC80211_DEBUGFS_H
@@ -89270,20 +79865,8 @@
+#endif
+
+#endif /* __MAC80211_DEBUGFS_H */
---- linux-2.6.20.noarch/net/ieee80211/Kconfig.orig 2007-04-25 11:19:13.000000000 -0400
-+++ linux-2.6.20.noarch/net/ieee80211/Kconfig 2007-04-25 11:20:17.000000000 -0400
-@@ -56,7 +56,8 @@ config IEEE80211_CRYPT_CCMP
-
- config IEEE80211_CRYPT_TKIP
- tristate "IEEE 802.11i TKIP encryption"
-- depends on IEEE80211 && NET_RADIO
-+ depends on IEEE80211
-+ select WIRELESS_EXT
- select CRYPTO
- select CRYPTO_MICHAEL_MIC
- select CRYPTO_ECB
---- linux-2.6.20.noarch/.mailmap.orig 2007-04-25 11:19:13.000000000 -0400
-+++ linux-2.6.20.noarch/.mailmap 2007-04-25 11:20:17.000000000 -0400
+--- linux-2.6.21.noarch/.mailmap.orig 2007-04-30 20:04:37.000000000 -0400
++++ linux-2.6.21.noarch/.mailmap 2007-04-30 20:04:51.000000000 -0400
@@ -57,6 +57,7 @@ Jean Tourrilhes <jt at hpl.hp.com>
Jeff Garzik <jgarzik at pretzel.yyz.us>
Jens Axboe <axboe at suse.de>
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3120
retrieving revision 1.3121
diff -u -r1.3120 -r1.3121
--- kernel-2.6.spec 30 Apr 2007 21:32:36 -0000 1.3120
+++ kernel-2.6.spec 1 May 2007 00:44:05 -0000 1.3121
@@ -597,10 +597,11 @@
Patch2205: linux-2.6-libata-debug.patch
# Wireless bits
-Patch2300: git-wireless-dev.patch
-Patch2301: git-iwlwifi.patch
-Patch2302: git-iwlwifi-fixes.patch
-Patch2303: linux-2.6-zd1211rw-mac80211-queue-limit.patch
+Patch2300: linux-2.6-wireless.patch
+Patch2301: git-wireless-dev.patch
+Patch2302: git-iwlwifi.patch
+Patch2303: git-iwlwifi-fixes.patch
+Patch2304: linux-2.6-zd1211rw-mac80211-queue-limit.patch
# ACPI bits
@@ -1340,14 +1341,16 @@
# Make libata debugging info runtime selectable.
#%patch2205 -p1
-# Add the new wireless stack and drivers from wireless-dev
+# Add critical wireless updates from 2.6.22
%patch2300 -p1
-# ...and the iwlwifi driver from Intel
+# Add the new wireless stack and drivers from wireless-dev
%patch2301 -p1
-# ...plus some fixes not yet in Intel's tree
+# ...and the iwlwifi driver from Intel
%patch2302 -p1
-# limite queueing of URBs to zd1211rw-mac80211 driver
+# ...plus some fixes not yet in Intel's tree
%patch2303 -p1
+# limite queueing of URBs to zd1211rw-mac80211 driver
+%patch2304 -p1
# ACPI patches
@@ -2337,6 +2340,12 @@
# - tux.
%changelog
+* Mon Apr 30 2007 John W. Linville <linville at redhat.com>
+- Add critical post-2.6.21 wireless updates
+- Update git-wireless-dev.patch
+- Update git-iwlwifi.patch (iwlwifi version 0.0.15)
+- Remove unused wireless config options
+
* Mon Apr 30 2007 Dave Jones <davej at redhat.com>
- Fix oops in sis900 driver.
More information about the fedora-cvs-commits
mailing list