rpms/kernel/devel linux-2.6-mv643xx-compile-fix.patch, NONE, 1.1 linux-2.6-softmac-git.patch, NONE, 1.1 .cvsignore, 1.314, 1.315 kernel-2.6.spec, 1.1828, 1.1829 linux-2.6-bcm43xx-resume.patch, 1.1, 1.2 linux-2.6-bcm43xx.patch, 1.1, 1.2 sources, 1.256, 1.257 linux-2.6-bcm43xx-device-table.patch, 1.1, NONE linux-2.6-bcm43xx-promisc.patch, 1.1, NONE linux-2.6-bcm43xx-quiet.patch, 1.1, NONE linux-2.6.14-ieee80211-hw-wep.patch, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Fri Jan 6 15:02:00 UTC 2006
Author: dwmw2
Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv28557
Modified Files:
.cvsignore kernel-2.6.spec linux-2.6-bcm43xx-resume.patch
linux-2.6-bcm43xx.patch sources
Added Files:
linux-2.6-mv643xx-compile-fix.patch
linux-2.6-softmac-git.patch
Removed Files:
linux-2.6-bcm43xx-device-table.patch
linux-2.6-bcm43xx-promisc.patch linux-2.6-bcm43xx-quiet.patch
linux-2.6.14-ieee80211-hw-wep.patch
Log Message:
update bcm43xx, fix mv643xx_eth
linux-2.6-mv643xx-compile-fix.patch:
mv643xx_eth.c | 1 +
1 files changed, 1 insertion(+)
--- NEW FILE linux-2.6-mv643xx-compile-fix.patch ---
--- linux-2.6.15/drivers/net/mv643xx_eth.c~ 2006-01-06 13:13:34.000000000 +0000
+++ linux-2.6.15/drivers/net/mv643xx_eth.c 2006-01-06 13:41:03.000000000 +0000
@@ -40,6 +40,7 @@
#include <linux/delay.h>
#include <linux/ethtool.h>
#include <linux/platform_device.h>
+#include <net/ip.h>
#include <asm/io.h>
#include <asm/types.h>
linux-2.6-softmac-git.patch:
include/net/ieee80211.h | 6
include/net/ieee80211softmac.h | 266 +++++++++++++
include/net/ieee80211softmac_wx.h | 66 +++
net/ieee80211/Kconfig | 1
net/ieee80211/Makefile | 1
net/ieee80211/ieee80211_crypt_wep.c | 61 ++-
net/ieee80211/ieee80211_module.c | 2
net/ieee80211/ieee80211_rx.c | 4
net/ieee80211/ieee80211_tx.c | 2
net/ieee80211/ieee80211_wx.c | 2
net/ieee80211/softmac/Kconfig | 10
net/ieee80211/softmac/Makefile | 9
net/ieee80211/softmac/ieee80211softmac_assoc.c | 356 ++++++++++++++++++
net/ieee80211/softmac/ieee80211softmac_auth.c | 348 +++++++++++++++++
net/ieee80211/softmac/ieee80211softmac_event.c | 135 ++++++
net/ieee80211/softmac/ieee80211softmac_io.c | 474 ++++++++++++++++++++++++
net/ieee80211/softmac/ieee80211softmac_module.c | 436 ++++++++++++++++++++++
net/ieee80211/softmac/ieee80211softmac_priv.h | 211 ++++++++++
net/ieee80211/softmac/ieee80211softmac_scan.c | 216 ++++++++++
net/ieee80211/softmac/ieee80211softmac_wx.c | 390 +++++++++++++++++++
20 files changed, 2971 insertions(+), 25 deletions(-)
--- NEW FILE linux-2.6-softmac-git.patch ---
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h
index cde2f4f..df05f46 100644
--- a/include/net/ieee80211.h
+++ b/include/net/ieee80211.h
@@ -363,8 +363,9 @@ enum ieee80211_reasoncode {
#define IEEE80211_OFDM_SHIFT_MASK_A 4
/* NOTE: This data is for statistical purposes; not all hardware provides this
- * information for frames received. Not setting these will not cause
- * any adverse affects. */
+ * information for frames received.
+ * For ieee80211_rx_mgt, you need to set at least the 'len' parameter.
+ */
struct ieee80211_rx_stats {
u32 mac_time;
s8 rssi;
@@ -1088,6 +1089,7 @@ extern int ieee80211_tx_frame(struct iee
/* ieee80211_rx.c */
extern int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
struct ieee80211_rx_stats *rx_stats);
+/* make sure to set stats->len */
extern void ieee80211_rx_mgt(struct ieee80211_device *ieee,
struct ieee80211_hdr_4addr *header,
struct ieee80211_rx_stats *stats);
diff --git a/include/net/ieee80211softmac.h b/include/net/ieee80211softmac.h
new file mode 100644
index 0000000..7264bd8
--- /dev/null
+++ b/include/net/ieee80211softmac.h
@@ -0,0 +1,266 @@
+#ifndef IEEE80211SOFTMAC_H_
+#define IEEE80211SOFTMAC_H_
+
+#include <linux/kernel.h>
+#include <linux/spinlock.h>
+#include <linux/workqueue.h>
+#include <linux/list.h>
+#include <net/ieee80211.h>
+
+/* Once the API is considered more or less stable,
+ * this should be incremented on API incompatible changes.
+ */
+#define IEEE80211SOFTMAC_API 0
+
+#define IEEE80211SOFTMAC_MAX_RATES_LEN 8
+#define IEEE80211SOFTMAC_MAX_EX_RATES_LEN 255
+
+struct ieee80211softmac_ratesinfo {
+ u8 count;
+ u8 rates[IEEE80211SOFTMAC_MAX_RATES_LEN + IEEE80211SOFTMAC_MAX_EX_RATES_LEN];
+};
+
+/* internal structures */
+struct ieee80211softmac_network;
+struct ieee80211softmac_scaninfo;
+
+struct ieee80211softmac_essid {
+ u8 len;
+ char data[IW_ESSID_MAX_SIZE+1];
+};
+
+struct ieee80211softmac_wpa {
+ char *IE;
+ int IElen;
+ int IEbuflen;
+};
+
+/*
+ * Information about association
+ *
+ * Do we need a lock for this?
+ * We only ever use this structure inlined
+ * into our global struct. I've used its lock,
+ * but maybe we need a local one here?
+ */
+struct ieee80211softmac_assoc_info {
+ /*
+ * This is the requested ESSID. It is written
+ * only by the WX handlers.
+ *
+ */
+ struct ieee80211softmac_essid req_essid;
+ /*
+ * the ESSID of the network we're currently
+ * associated (or trying) to. This is
+ * updated to the network's actual ESSID
+ * even if the requested ESSID was 'ANY'
+ */
+ struct ieee80211softmac_essid associate_essid;
+
+ /* BSSID we're trying to associate to */
+ char bssid[ETH_ALEN];
+
+ /* some flags.
+ * static_essid is valid if the essid is constant,
+ * this is for use by the wx handlers only.
+ *
+ * associating is true, if the network has been
+ * auth'ed on and we are in the process of associating.
+ *
+ * bssvalid is true if we found a matching network
+ * and saved it's BSSID into the bssid above.
+ */
+ u8 static_essid:1,
+ associating:1,
+ bssvalid:1;
+
+ /* Scan retries remaining */
+ int scan_retry;
+
+ struct work_struct work;
+ struct work_struct timeout;
+};
+
+enum {
+ IEEE80211SOFTMAC_AUTH_OPEN_REQUEST = 1,
+ IEEE80211SOFTMAC_AUTH_OPEN_RESPONSE = 2,
+};
+
+enum {
+ IEEE80211SOFTMAC_AUTH_SHARED_REQUEST = 1,
+ IEEE80211SOFTMAC_AUTH_SHARED_CHALLENGE = 2,
+ IEEE80211SOFTMAC_AUTH_SHARED_RESPONSE = 3,
+ IEEE80211SOFTMAC_AUTH_SHARED_PASS = 4,
+};
+
+/* We should make these tunable
+ * AUTH_TIMEOUT seems really long, but that's what it is in BSD */
+#define IEEE80211SOFTMAC_AUTH_TIMEOUT (12 * HZ)
+#define IEEE80211SOFTMAC_AUTH_RETRY_LIMIT 5
+#define IEEE80211SOFTMAC_ASSOC_SCAN_RETRY_LIMIT 3
+
+struct ieee80211softmac_txrates {
+ /* The Bit-Rate to be used for multicast frames. */
+ u8 mcast_rate;
+ /* The Bit-Rate to be used for multicast fallback
+ * (If the device supports fallback and hardware-retry)
+ */
+ u8 mcast_fallback;
+ /* The Bit-Rate to be used for any other (normal) data packet. */
+ u8 default_rate;
+ /* The Bit-Rate to be used for default fallback
+ * (If the device supports fallback and hardware-retry)
+ */
+ u8 default_fallback;
+};
+
+/* Bits for txrates_change callback. */
+#define IEEE80211SOFTMAC_TXRATECHG_DEFAULT (1 << 0) /* default_rate */
+#define IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK (1 << 1) /* default_fallback */
+#define IEEE80211SOFTMAC_TXRATECHG_MCAST (1 << 2) /* mcast_rate */
+#define IEEE80211SOFTMAC_TXRATECHG_MCAST_FBACK (1 << 3) /* mcast_fallback */
+
+struct ieee80211softmac_device {
+ /* 802.11 structure for data stuff */
+ struct ieee80211_device *ieee;
+ struct net_device *dev;
+
+ /* only valid if associated, then holds the Association ID */
+ u16 association_id;
+
+ /* the following methods are callbacks that the driver
+ * using this framework has to assign
+ */
+
+ /* always assign these */
+ void (*set_bssid_filter)(struct net_device *dev, const u8 *bssid);
+ void (*set_channel)(struct net_device *dev, u8 channel);
+
+ /* assign if you need it, informational only */
+ void (*link_change)(struct net_device *dev);
+
+ /* If the hardware can do scanning, assign _all_ three of these callbacks.
+ * When the scan finishes, call ieee80211softmac_scan_finished().
+ */
+
+ /* when called, start_scan is guaranteed to not be called again
+ * until you call ieee80211softmac_scan_finished.
+ * Return 0 if scanning could start, error otherwise.
+ * SOFTMAC AUTHORS: don't call this, use ieee80211softmac_start_scan */
+ int (*start_scan)(struct net_device *dev);
+ /* this should block until after ieee80211softmac_scan_finished was called
+ * SOFTMAC AUTHORS: don't call this, use ieee80211softmac_wait_for_scan */
+ void (*wait_for_scan)(struct net_device *dev);
+ /* stop_scan aborts a scan, but is asynchronous.
+ * if you want to wait for it too, use wait_for_scan
+ * SOFTMAC AUTHORS: don't call this, use ieee80211softmac_stop_scan */
+ void (*stop_scan)(struct net_device *dev);
+
+ /* we'll need something about beacons here too, for AP or ad-hoc modes */
+
+ /* Transmission rates to be used by the driver.
+ * The SoftMAC figures out the best possible rates.
+ * The driver just needs to read them.
+ */
+ struct ieee80211softmac_txrates txrates;
+ /* If the driver needs to do stuff on TX rate changes, assign this callback. */
+ void (*txrates_change)(struct net_device *dev,
+ u32 changes, /* see IEEE80211SOFTMAC_TXRATECHG flags */
[...2780 lines suppressed...]
+ struct iw_request_info *info,
+ union iwreq_data *data,
+ char *extra)
+{
+ struct ieee80211softmac_device *mac = ieee80211_priv(net_dev);
+ unsigned long flags;
+ int err = -EINVAL;
+
+ spin_lock_irqsave(&mac->lock, flags);
+ switch (mac->txrates.default_rate) {
+ case IEEE80211_CCK_RATE_1MB:
+ data->bitrate.value = 1000000;
+ break;
+ case IEEE80211_CCK_RATE_2MB:
+ data->bitrate.value = 2000000;
+ break;
+ case IEEE80211_CCK_RATE_5MB:
+ data->bitrate.value = 5500000;
+ break;
+ case IEEE80211_CCK_RATE_11MB:
+ data->bitrate.value = 11000000;
+ break;
+ case IEEE80211_OFDM_RATE_6MB:
+ data->bitrate.value = 6000000;
+ break;
+ case IEEE80211_OFDM_RATE_9MB:
+ data->bitrate.value = 9000000;
+ break;
+ case IEEE80211_OFDM_RATE_12MB:
+ data->bitrate.value = 12000000;
+ break;
+ case IEEE80211_OFDM_RATE_18MB:
+ data->bitrate.value = 18000000;
+ break;
+ case IEEE80211_OFDM_RATE_24MB:
+ data->bitrate.value = 24000000;
+ break;
+ case IEEE80211_OFDM_RATE_36MB:
+ data->bitrate.value = 36000000;
+ break;
+ case IEEE80211_OFDM_RATE_48MB:
+ data->bitrate.value = 48000000;
+ break;
+ case IEEE80211_OFDM_RATE_54MB:
+ data->bitrate.value = 54000000;
+ break;
+ default:
+ assert(0);
+ goto out_unlock;
+ }
+ err = 0;
+out_unlock:
+ spin_unlock_irqrestore(&mac->lock, flags);
+
+ return err;
+}
+EXPORT_SYMBOL_GPL(ieee80211softmac_wx_get_rate);
+
+int
+ieee80211softmac_wx_get_wap(struct net_device *net_dev,
+ struct iw_request_info *info,
+ union iwreq_data *data,
+ char *extra)
+{
+ struct ieee80211softmac_device *mac = ieee80211_priv(net_dev);
+ int err = 0;
+ unsigned long flags;
+
+ spin_lock_irqsave(&mac->lock, flags);
+ if (mac->associnfo.bssvalid)
+ memcpy(data->ap_addr.sa_data, mac->associnfo.bssid, ETH_ALEN);
+ else
+ memset(data->ap_addr.sa_data, 0xff, ETH_ALEN);
+ data->ap_addr.sa_family = ARPHRD_ETHER;
+ spin_unlock_irqrestore(&mac->lock, flags);
+ return err;
+}
+EXPORT_SYMBOL_GPL(ieee80211softmac_wx_get_wap);
+
+int
+ieee80211softmac_wx_set_wap(struct net_device *net_dev,
+ struct iw_request_info *info,
+ union iwreq_data *data,
+ char *extra)
+{
+ struct ieee80211softmac_device *mac = ieee80211_priv(net_dev);
+ static const unsigned char any[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+ static const unsigned char off[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+ unsigned long flags;
+
+ /* sanity check */
+ if (data->ap_addr.sa_family != ARPHRD_ETHER) {
+ return -EINVAL;
+ }
+
+ spin_lock_irqsave(&mac->lock, flags);
+ if (!memcmp(any, data->ap_addr.sa_data, ETH_ALEN) ||
+ !memcmp(off, data->ap_addr.sa_data, ETH_ALEN)) {
+ schedule_work(&mac->associnfo.work);
+ goto out;
+ } else {
+ if (!memcmp(mac->associnfo.bssid, data->ap_addr.sa_data, ETH_ALEN)) {
+ if (mac->associnfo.associating || mac->associated) {
+ /* bssid unchanged and associated or associating - just return */
+ goto out;
+ }
+ } else {
+ /* copy new value in data->ap_addr.sa_data to bssid */
+ memcpy(mac->associnfo.bssid, data->ap_addr.sa_data, ETH_ALEN);
+ }
+ /* queue associate if new bssid or (old one again and not associated) */
+ schedule_work(&mac->associnfo.work);
+ }
+
+out:
+ spin_unlock_irqrestore(&mac->lock, flags);
+ return 0;
+}
+EXPORT_SYMBOL_GPL(ieee80211softmac_wx_set_wap);
+
+int
+ieee80211softmac_wx_set_genie(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu,
+ char *extra)
+{
+ struct ieee80211softmac_device *mac = ieee80211_priv(dev);
+ unsigned long flags;
+ int err = 0;
+ char *buf;
+ int i;
+
+ spin_lock_irqsave(&mac->lock, flags);
+ /* bleh. shouldn't be locked for that kmalloc... */
+
+ if (wrqu->data.length) {
+ if ((wrqu->data.length < 2) || (extra[1]+2 != wrqu->data.length)) {
+ /* this is an IE, so the length must be
+ * correct. Is it possible though that
+ * more than one IE is passed in?
+ */
+ err = -EINVAL;
+ goto out;
+ }
+ if (mac->wpa.IEbuflen <= wrqu->data.length) {
+ buf = kmalloc(wrqu->data.length, GFP_ATOMIC);
+ if (!buf) {
+ err = -ENOMEM;
+ goto out;
+ }
+ kfree(mac->wpa.IE);
+ mac->wpa.IE = buf;
+ mac->wpa.IEbuflen = wrqu->data.length;
+ }
+ memcpy(mac->wpa.IE, extra, wrqu->data.length);
+ dprintk(KERN_INFO PFX "generic IE set to ");
+ for (i=0;i<wrqu->data.length;i++)
+ dprintk("%.2x", mac->wpa.IE[i]);
+ dprintk("\n");
+ mac->wpa.IElen = wrqu->data.length;
+ } else {
+ kfree(mac->wpa.IE);
+ mac->wpa.IE = NULL;
+ mac->wpa.IElen = 0;
+ mac->wpa.IEbuflen = 0;
+ }
+
+ out:
+ spin_unlock_irqrestore(&mac->lock, flags);
+ return err;
+}
+EXPORT_SYMBOL_GPL(ieee80211softmac_wx_set_genie);
+
+int
+ieee80211softmac_wx_get_genie(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu,
+ char *extra)
+{
+ struct ieee80211softmac_device *mac = ieee80211_priv(dev);
+ unsigned long flags;
+ int err = 0;
+ int space = wrqu->data.length;
+
+ spin_lock_irqsave(&mac->lock, flags);
+
+ wrqu->data.length = 0;
+
+ if (mac->wpa.IE && mac->wpa.IElen) {
+ wrqu->data.length = mac->wpa.IElen;
+ if (mac->wpa.IElen <= space)
+ memcpy(extra, mac->wpa.IE, mac->wpa.IElen);
+ else
+ err = -E2BIG;
+ }
+ spin_unlock_irqrestore(&mac->lock, flags);
+ return err;
+}
+EXPORT_SYMBOL_GPL(ieee80211softmac_wx_get_genie);
+
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.314
retrieving revision 1.315
diff -u -r1.314 -r1.315
--- .cvsignore 6 Jan 2006 09:08:13 -0000 1.314
+++ .cvsignore 6 Jan 2006 15:01:25 -0000 1.315
@@ -2,6 +2,5 @@
temp-*
kernel-2.6.15
linux-2.6.15.tar.bz2
-bcm43xx-20060103.tar.bz2
-ieee80211softmac-20060103.tar.bz2
patch-2.6.15-git2.bz2
+bcm43xx-20060106.tar.bz2
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1828
retrieving revision 1.1829
diff -u -r1.1828 -r1.1829
--- kernel-2.6.spec 6 Jan 2006 09:12:34 -0000 1.1828
+++ kernel-2.6.spec 6 Jan 2006 15:01:40 -0000 1.1829
@@ -182,8 +182,7 @@
Source10: COPYING.modules
Source11: genkey
-%define BCMVER 20060103
-Source12: ftp://ftp.berlios.de/pub/bcm43xx/snapshots/softmac/ieee80211softmac-%{BCMVER}.tar.bz2
+%define BCMVER 20060106
Source13: ftp://ftp.berlios.de/pub/bcm43xx/snapshots/bcm43xx/bcm43xx-%{BCMVER}.tar.bz2
Source20: kernel-%{kversion}-i586.config
@@ -364,6 +363,7 @@
Patch1810: linux-2.6-smsc-ircc2-pnp.patch
Patch1830: linux-2.6-w1-hush-debug.patch
Patch1840: linux-2.6-x86-hp-reboot.patch
+Patch1850: linux-2.6-mv643xx-compile-fix.patch
# Warn about usage of various obsolete functionality that may go away.
Patch1900: linux-2.6-obsolete-idescsi-warning.patch
@@ -382,12 +382,9 @@
Patch2100: linux-2.6-acpi-thinkpad-c2c3.patch
# Broadcom wireless driver
-Patch5000: linux-2.6-bcm43xx.patch
-Patch5001: linux-2.6-bcm43xx-quiet.patch
-Patch5002: linux-2.6-bcm43xx-promisc.patch
-Patch5003: linux-2.6.14-ieee80211-hw-wep.patch
-Patch5004: linux-2.6-bcm43xx-device-table.patch
-Patch5005: linux-2.6-bcm43xx-resume.patch
+Patch5000: linux-2.6-softmac-git.patch
+Patch5001: linux-2.6-bcm43xx.patch
+Patch5002: linux-2.6-bcm43xx-resume.patch
#
# 10000 to 20000 is for stuff that has to come last due to the
@@ -872,6 +869,8 @@
%patch1830 -p1
# Reboot through BIOS on HP laptops.
%patch1840 -p1
+# Fix compilation for MV643xx Ethernet
+%patch1850 -p1
# Warn about obsolete functionality usage.
%patch1900 -p1
@@ -903,24 +902,15 @@
# Broadcom BCM43xx wireless driver.
# Extract snapshot tarballs and move them into place.
-tar xvfj %{SOURCE12}
-mv ieee80211softmac-%{BCMVER}/net/*.h include/net
-mv ieee80211softmac-%{BCMVER} net/ieee80211/softmac
tar xvfj %{SOURCE13}
mv bcm43xx-%{BCMVER} drivers/net/wireless/bcm43xx
-# Patch Kconfig and Makefiles to merge it 'properly'
+# Import softmac code from git tree
%patch5000 -p1
-# Make it shut up about dropping packets it didn't want
+# Patch Kconfig and Makefiles to merge bcm43xx 'properly'
%patch5001 -p1
-# Operate in promiscuous mode, to make multicast and broadcast RX work
+# Fix the reassociate on resume code
%patch5002 -p1
-# Handle host_build_iv properly
-%patch5003 -p1
-# Include pci device table so it gets autoloaded
-%patch5004 -p1
-# Reassociate on resume
-%patch5005 -p1
#
# final stuff
@@ -1409,6 +1399,10 @@
%endif
%changelog
+* Fri Jan 6 2006 David Woodhouse <dwmw2 at redhat.com>
+- Fix mv643xx_eth compilation
+- Update Broadcom driver, switch to git tree for softmac
+
* Fri Jan 6 2006 Dave Jones <davej at redhat.com>
- 2.6.15-git2
- Add timer quirk for ATI chipsets.
linux-2.6-bcm43xx-resume.patch:
bcm43xx.h | 11 +++++++++--
bcm43xx_main.c | 2 +-
2 files changed, 10 insertions(+), 3 deletions(-)
Index: linux-2.6-bcm43xx-resume.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-bcm43xx-resume.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-bcm43xx-resume.patch 3 Jan 2006 23:04:52 -0000 1.1
+++ linux-2.6-bcm43xx-resume.patch 6 Jan 2006 15:01:44 -0000 1.2
@@ -1,10 +1,39 @@
--- linux-2.6.15/drivers/net/wireless/bcm43xx/bcm43xx_main.c~ 2006-01-03 22:56:55.000000000 +0000
+++ linux-2.6.15/drivers/net/wireless/bcm43xx/bcm43xx_main.c 2006-01-03 23:00:15.000000000 +0000
-@@ -4543,6 +4541,7 @@ static int bcm43xx_resume(struct pci_dev
- }
+@@ -4583,8 +4583,8 @@ static int bcm43xx_resume(struct pci_dev
netif_device_attach(net_dev);
-+ queue_work(bcm->softmac->workqueue,&bcm->softmac->associnfo.work);
+
+ /*FIXME: This should be handled by softmac instead. */
+- queue_work(bcm->softmac->workqueue, &bcm->softmac->associnfo.work);
++ schedule_work(&bcm->softmac->associnfo.work);
dprintk(KERN_INFO PFX "Device resumed.\n");
+--- linux-2.6.15/drivers/net/wireless/bcm43xx/bcm43xx.h.orig 2006-01-06 05:00:12.000000000 +0000
++++ linux-2.6.15/drivers/net/wireless/bcm43xx/bcm43xx.h 2006-01-06 14:07:38.000000000 +0000
+@@ -648,7 +648,8 @@ struct bcm43xx_private {
+ bad_frames_preempt:1, /* Use "Bad Frames Preemption" (default off) */
+ reg124_set_0x4:1, /* Some variable to keep track of IRQ stuff. */
+ powersaving:1, /* TRUE if we are in PowerSaving mode. FALSE otherwise. */
+- short_preamble:1; /* TRUE, if short preamble is enabled. */
++ short_preamble:1, /* TRUE, if short preamble is enabled. */
++ firmware_norelease:1; /* Do not release the firmware. Used on suspend. */
+
+ struct bcm43xx_stats stats;
+
+@@ -728,7 +729,13 @@ struct bcm43xx_private {
+ u16 security_offset;
+ struct bcm43xx_key key[54];
+ u8 default_key_idx;
+-
++
++ /* Firmware. */
++ const struct firmware *ucode;
++ const struct firmware *pcm;
++ const struct firmware *initvals0;
++ const struct firmware *initvals1;
++
+ /* Debugging stuff follows. */
+ #ifdef BCM43xx_DEBUG
+ struct bcm43xx_dfsentry *dfsentry;
linux-2.6-bcm43xx.patch:
Kconfig | 8 ++++++++
Makefile | 1 +
2 files changed, 9 insertions(+)
Index: linux-2.6-bcm43xx.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-bcm43xx.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-bcm43xx.patch 2 Jan 2006 21:56:59 -0000 1.1
+++ linux-2.6-bcm43xx.patch 6 Jan 2006 15:01:44 -0000 1.2
@@ -25,26 +25,3 @@
# 16-bit wireless PCMCIA client drivers
obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
---- linux-2.6.14/net/ieee80211/Kconfig~ 2005-12-30 23:42:06.000000000 +0000
-+++ linux-2.6.14/net/ieee80211/Kconfig 2005-12-30 23:51:55.000000000 +0000
-@@ -66,3 +66,10 @@ config IEEE80211_CRYPT_TKIP
- This can be compiled as a modules and it will be called
- "ieee80211_crypt_tkip".
-
-+config IEEE80211_SOFTMAC
-+ tristate "IEEE 802.11 softmac"
-+ depends on IEEE80211 && EXPERIMENTAL
-+ ---help---
-+ The softmac layer handles IEEE 802.11 protocol management functions
-+ such as scanning, association and similar tasks, which recent hardware
-+ often leaves to software rather than implementing it all in hardware.
---- linux-2.6.14/net/ieee80211/Makefile~ 2005-12-30 23:42:06.000000000 +0000
-+++ linux-2.6.14/net/ieee80211/Makefile 2005-12-30 23:52:26.000000000 +0000
-@@ -3,6 +3,7 @@ obj-$(CONFIG_IEEE80211) += ieee80211_cry
- obj-$(CONFIG_IEEE80211_CRYPT_WEP) += ieee80211_crypt_wep.o
- obj-$(CONFIG_IEEE80211_CRYPT_CCMP) += ieee80211_crypt_ccmp.o
- obj-$(CONFIG_IEEE80211_CRYPT_TKIP) += ieee80211_crypt_tkip.o
-+obj-$(CONFIG_IEEE80211_SOFTMAC) += softmac/
- ieee80211-objs := \
- ieee80211_module.o \
- ieee80211_tx.o \
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/sources,v
retrieving revision 1.256
retrieving revision 1.257
diff -u -r1.256 -r1.257
--- sources 6 Jan 2006 09:08:14 -0000 1.256
+++ sources 6 Jan 2006 15:01:57 -0000 1.257
@@ -1,4 +1,3 @@
cdf95e00f5111e31f78e1d97304d9522 linux-2.6.15.tar.bz2
-96083b51cd30e60b86127113abed37a3 bcm43xx-20060103.tar.bz2
-1eb2bb778090c59fbeba6278d63a9309 ieee80211softmac-20060103.tar.bz2
0eee153ab442496ead0581d00e83a1ca patch-2.6.15-git2.bz2
+1e8dda938d8fb06863d7276b79d6e544 bcm43xx-20060106.tar.bz2
--- linux-2.6-bcm43xx-device-table.patch DELETED ---
--- linux-2.6-bcm43xx-promisc.patch DELETED ---
--- linux-2.6-bcm43xx-quiet.patch DELETED ---
--- linux-2.6.14-ieee80211-hw-wep.patch DELETED ---
More information about the fedora-cvs-commits
mailing list