rpms/kernel/devel linux-2.6-bcm43xx-assoc-on-startup.patch, NONE, 1.1 linux-2.6-softmac-default-rate.patch, NONE, 1.1 linux-2.6-softmac-scan-channel.patch, NONE, 1.1 linux-2.6-softmac-scan-dwell-time.patch, NONE, 1.1 kernel-2.6.spec, 1.2080, 1.2081 linux-2.6-softmac-git.patch, 1.8, 1.9

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Mar 22 14:33:03 UTC 2006


Author: dwmw2

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv19404

Modified Files:
	kernel-2.6.spec linux-2.6-softmac-git.patch 
Added Files:
	linux-2.6-bcm43xx-assoc-on-startup.patch 
	linux-2.6-softmac-default-rate.patch 
	linux-2.6-softmac-scan-channel.patch 
	linux-2.6-softmac-scan-dwell-time.patch 
Log Message:
Re-enable and fix up bcm43xx driver 


linux-2.6-bcm43xx-assoc-on-startup.patch:
 bcm43xx_main.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

--- NEW FILE linux-2.6-bcm43xx-assoc-on-startup.patch ---
--- linux-2.6.16.ppc/drivers/net/wireless/bcm43xx/bcm43xx_main.c~	2006-03-21 23:50:00.000000000 +0000
+++ linux-2.6.16.ppc/drivers/net/wireless/bcm43xx/bcm43xx_main.c	2006-03-22 10:32:11.000000000 +0000
@@ -3429,6 +3429,9 @@ static int bcm43xx_init_board(struct bcm
 	}
 	bcm43xx_periodic_tasks_setup(bcm);
 
+	/*FIXME: This should be handled by softmac instead. */
+	schedule_work(&bcm->softmac->associnfo.work);
+
 	assert(err == 0);
 out:
 	return err;
@@ -4326,9 +4329,6 @@ static int bcm43xx_resume(struct pci_dev
 
 	netif_device_attach(net_dev);
 	
-	/*FIXME: This should be handled by softmac instead. */
-	schedule_work(&bcm->softmac->associnfo.work);
-
 	dprintk(KERN_INFO PFX "Device resumed.\n");
 
 	return 0;

linux-2.6-softmac-default-rate.patch:
 ieee80211softmac_module.c |    5 ++++-
 ieee80211softmac_wx.c     |    2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

--- NEW FILE linux-2.6-softmac-default-rate.patch ---
--- linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_module.c~	2006-03-21 23:50:00.000000000 +0000
+++ linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_module.c	2006-03-22 11:00:57.000000000 +0000
@@ -183,7 +183,10 @@ void ieee80211softmac_start(struct net_d
 	 */
 	if (mac->txrates_change)
 		oldrates = mac->txrates;
-	if (ieee->modulation & IEEE80211_OFDM_MODULATION) {
+	/* FIXME: We don't correctly handle backing down to lower rates,
+	   so start off at 11M for now. People can manually change it if
+	   they really need to, but 11M is more reliable. */	 
+	if (0 && ieee->modulation & IEEE80211_OFDM_MODULATION) {
 		mac->txrates.default_rate = IEEE80211_OFDM_RATE_54MB;
 		change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT;
 		mac->txrates.default_fallback = IEEE80211_OFDM_RATE_24MB;
--- linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_wx.c~	2006-03-21 23:50:00.000000000 +0000
+++ linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_wx.c	2006-03-22 12:11:58.000000000 +0000
@@ -136,7 +136,7 @@ ieee80211softmac_wx_set_rate(struct net_
 
 	if (in_rate == -1) {
 		/* automatic detect */
-		if (ieee->modulation & IEEE80211_OFDM_MODULATION)
+		if (0 && ieee->modulation & IEEE80211_OFDM_MODULATION)
 			in_rate = 54000000;
 		else
 			in_rate = 11000000;

linux-2.6-softmac-scan-channel.patch:
 ieee80211softmac_scan.c |    7 +++++++
 1 files changed, 7 insertions(+)

--- NEW FILE linux-2.6-softmac-scan-channel.patch ---
--- linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_scan.c~	2006-03-21 23:50:00.000000000 +0000
+++ linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_scan.c	2006-03-22 00:31:31.000000000 +0000
@@ -232,6 +232,13 @@ void ieee80211softmac_scan_finished(stru
 	sm->scanning = 0;
 	spin_unlock_irqrestore(&sm->lock, flags);
 	
+	if (sm->associnfo.bssvalid) {
+		struct ieee80211softmac_network *net;
+
+		net = ieee80211softmac_get_network_by_bssid(sm, sm->associnfo.bssid);
+		if (net)
+			sm->set_channel(sm->dev, net->channel);
+	}
 	ieee80211softmac_call_events(sm, IEEE80211SOFTMAC_EVENT_SCAN_FINISHED, NULL);
 }
 EXPORT_SYMBOL_GPL(ieee80211softmac_scan_finished);

linux-2.6-softmac-scan-dwell-time.patch:
 ieee80211softmac_priv.h |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-softmac-scan-dwell-time.patch ---
--- linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_priv.h~	2006-03-21 23:50:00.000000000 +0000
+++ linux-2.6.16.ppc/net/ieee80211/softmac/ieee80211softmac_priv.h	2006-03-22 11:20:26.000000000 +0000
@@ -176,7 +176,7 @@ static inline int ieee80211softmac_scan_
 		) || ieee80211softmac_scan_handlers_check_self(sm);
 }
 
-#define IEEE80211SOFTMAC_PROBE_DELAY		HZ/2
+#define IEEE80211SOFTMAC_PROBE_DELAY		HZ/50
 #define IEEE80211SOFTMAC_WORKQUEUE_NAME_LEN	(17 + IFNAMSIZ)
 
 struct ieee80211softmac_network {


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2080
retrieving revision 1.2081
diff -u -r1.2080 -r1.2081
--- kernel-2.6.spec	21 Mar 2006 21:12:02 -0000	1.2080
+++ kernel-2.6.spec	22 Mar 2006 14:32:58 -0000	1.2081
@@ -403,6 +403,10 @@
 Patch5000: linux-2.6-softmac-git.patch
 Patch5001: linux-2.6-bcm43xx-git.patch
 Patch5002: linux-2.6-bcm43xx-neuter.patch
+Patch5003: linux-2.6-softmac-scan-channel.patch
+Patch5004: linux-2.6-softmac-scan-dwell-time.patch
+Patch5005: linux-2.6-bcm43xx-assoc-on-startup.patch
+Patch5006: linux-2.6-softmac-default-rate.patch
 
 #
 # 10000 to 20000 is for stuff that has to come last due to the
@@ -1032,12 +1036,19 @@
 #
 
 # Import softmac code from wireless-2.6 tree
-#%patch5000 -p1
+%patch5000 -p1
 # ... and bcm43xx driver too
-#%patch5001 -p1
+%patch5001 -p1
 # temporarily remove bcm43xx's MODULE_DEVICE_TABLE entry
 #%patch5002 -p1
-
+# Go back to the original channel when we finish scanning.
+%patch5003 -p1
+# When scanning, spend only 20ms on each channel not 500ms.
+%patch5004 -p1
+# Attempt to associate when the link is brought up
+%patch5005 -p1
+# Default to 11Mbps not 54Mbps, since we don't back down automatically yet.
+%patch5006 -p1
 #
 # final stuff
 #
@@ -1639,6 +1650,10 @@
 %endif
 
 %changelog
+* Wed Mar 22 2006 David Woodhouse <dwmw2 at redhat.com>
+- Update the bcm43xx driver to make it work nicely with initscripts
+  and NetworkManager without user intervention.
+
 * Tue Mar 21 2006 Dave Jones <davej at redhat.com>
 - 2.6.16-git3
 - Improve spinlock scalability on big machines.

linux-2.6-softmac-git.patch:
 include/net/ieee80211softmac.h                  |  292 ++++++++++++++
 include/net/ieee80211softmac_wx.h               |   94 ++++
 net/ieee80211/Kconfig                           |    1 
 net/ieee80211/Makefile                          |    1 
 net/ieee80211/softmac/Kconfig                   |   10 
 net/ieee80211/softmac/Makefile                  |    9 
 net/ieee80211/softmac/ieee80211softmac_assoc.c  |  403 ++++++++++++++++++++
 net/ieee80211/softmac/ieee80211softmac_auth.c   |  376 +++++++++++++++++++
 net/ieee80211/softmac/ieee80211softmac_event.c  |  159 ++++++++
 net/ieee80211/softmac/ieee80211softmac_io.c     |  474 ++++++++++++++++++++++++
 net/ieee80211/softmac/ieee80211softmac_module.c |  457 +++++++++++++++++++++++
 net/ieee80211/softmac/ieee80211softmac_priv.h   |  239 ++++++++++++
 net/ieee80211/softmac/ieee80211softmac_scan.c   |  237 ++++++++++++
 net/ieee80211/softmac/ieee80211softmac_wx.c     |  412 ++++++++++++++++++++
 14 files changed, 3164 insertions(+)

Index: linux-2.6-softmac-git.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-softmac-git.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- linux-2.6-softmac-git.patch	1 Mar 2006 16:54:12 -0000	1.8
+++ linux-2.6-softmac-git.patch	22 Mar 2006 14:32:59 -0000	1.9
@@ -95,23 +95,6 @@
 +			      union iwreq_data *wrqu,
 +			      char *extra);
 +#endif /* _IEEE80211SOFTMAC_WX */
---- linux-2.6.15.noarch/include/net/ieee80211.h.orig	2006-02-15 09:58:15.000000000 -0500
-+++ linux-2.6.15.noarch/include/net/ieee80211.h	2006-02-15 09:58:21.000000000 -0500
-@@ -1122,6 +1122,14 @@ extern int ieee80211_wx_set_encodeext(st
- extern int ieee80211_wx_get_encodeext(struct ieee80211_device *ieee,
- 				      struct iw_request_info *info,
- 				      union iwreq_data *wrqu, char *extra);
-+extern int ieee80211_wx_set_auth(struct net_device *dev,
-+				 struct iw_request_info *info,
-+				 union iwreq_data *wrqu,
-+				 char *extra);
-+extern int ieee80211_wx_get_auth(struct net_device *dev,
-+				 struct iw_request_info *info,
-+				 union iwreq_data *wrqu,
-+				 char *extra);
- 
- static inline void ieee80211_increment_scans(struct ieee80211_device *ieee)
- {
 --- /dev/null	2006-02-15 08:17:09.135048168 -0500
 +++ linux-2.6.15.noarch/include/net/ieee80211softmac.h	2006-02-15 10:04:26.000000000 -0500
 @@ -0,0 +1,292 @@
@@ -407,17 +390,6 @@
 +ieee80211softmac_clear_pending_work(struct ieee80211softmac_device *sm);
 +
 +#endif /* IEEE80211SOFTMAC_H_ */
---- linux-2.6.15.noarch/net/ieee80211/ieee80211_module.c.orig	2006-02-15 09:58:15.000000000 -0500
-+++ linux-2.6.15.noarch/net/ieee80211/ieee80211_module.c	2006-02-15 09:58:21.000000000 -0500
-@@ -195,7 +195,7 @@ void free_ieee80211(struct net_device *d
- 
- static int debug = 0;
- u32 ieee80211_debug_level = 0;
--struct proc_dir_entry *ieee80211_proc = NULL;
-+static struct proc_dir_entry *ieee80211_proc = NULL;
- 
- static int show_debug_level(char *page, char **start, off_t offset,
- 			    int count, int *eof, void *data)
 --- /dev/null	2006-02-15 08:17:09.135048168 -0500
 +++ linux-2.6.15.noarch/net/ieee80211/softmac/ieee80211softmac_auth.c	2006-02-15 10:34:17.000000000 -0500
 @@ -0,0 +1,376 @@
@@ -3231,107 +3203,6 @@
  	ieee80211_geo.o
  
 +obj-$(CONFIG_IEEE80211_SOFTMAC) += softmac/
---- linux-2.6.15.noarch/net/ieee80211/ieee80211_wx.c.orig	2006-02-15 09:58:15.000000000 -0500
-+++ linux-2.6.15.noarch/net/ieee80211/ieee80211_wx.c	2006-02-15 09:58:21.000000000 -0500
-@@ -734,9 +734,98 @@ int ieee80211_wx_get_encodeext(struct ie
- 	return 0;
- }
- 
-+int ieee80211_wx_set_auth(struct net_device *dev,
-+			  struct iw_request_info *info,
-+			  union iwreq_data *wrqu,
-+			  char *extra)
-+{
-+	struct ieee80211_device *ieee = netdev_priv(dev);
-+	unsigned long flags;
-+	int err = 0;
-+
-+	spin_lock_irqsave(&ieee->lock, flags);
-+	
-+	switch (wrqu->param.flags & IW_AUTH_INDEX) {
-+	case IW_AUTH_WPA_VERSION:
-+	case IW_AUTH_CIPHER_PAIRWISE:
-+	case IW_AUTH_CIPHER_GROUP:
-+	case IW_AUTH_KEY_MGMT:
-+		/*
-+		 * Host AP driver does not use these parameters and allows
-+		 * wpa_supplicant to control them internally.
-+		 */
-+		break;
-+	case IW_AUTH_TKIP_COUNTERMEASURES:
-+		break;		/* FIXME */
-+	case IW_AUTH_DROP_UNENCRYPTED:
-+		ieee->drop_unencrypted = !!wrqu->param.value;
-+		break;
-+	case IW_AUTH_80211_AUTH_ALG:
-+		break;		/* FIXME */
-+	case IW_AUTH_WPA_ENABLED:
-+		ieee->privacy_invoked = ieee->wpa_enabled = !!wrqu->param.value;
-+		break;
-+	case IW_AUTH_RX_UNENCRYPTED_EAPOL:
-+		ieee->ieee802_1x = !!wrqu->param.value;
-+		break;
-+	case IW_AUTH_PRIVACY_INVOKED:
-+		ieee->privacy_invoked = !!wrqu->param.value;
-+		break;
-+	default:
-+		err = -EOPNOTSUPP;
-+		break;
-+	}
-+	spin_unlock_irqrestore(&ieee->lock, flags);
-+	return err;
-+}
-+
-+int ieee80211_wx_get_auth(struct net_device *dev,
-+			  struct iw_request_info *info,
-+			  union iwreq_data *wrqu,
-+			  char *extra)
-+{
-+	struct ieee80211_device *ieee = netdev_priv(dev);
-+	unsigned long flags;
-+	int err = 0;
-+
-+	spin_lock_irqsave(&ieee->lock, flags);
-+	
-+	switch (wrqu->param.flags & IW_AUTH_INDEX) {
-+	case IW_AUTH_WPA_VERSION:
-+	case IW_AUTH_CIPHER_PAIRWISE:
-+	case IW_AUTH_CIPHER_GROUP:
-+	case IW_AUTH_KEY_MGMT:
-+	case IW_AUTH_TKIP_COUNTERMEASURES:		/* FIXME */
-+	case IW_AUTH_80211_AUTH_ALG:			/* FIXME */
-+		/*
-+		 * Host AP driver does not use these parameters and allows
-+		 * wpa_supplicant to control them internally.
-+		 */
-+		err = -EOPNOTSUPP;
-+		break;
-+	case IW_AUTH_DROP_UNENCRYPTED:
-+		wrqu->param.value = ieee->drop_unencrypted;
-+		break;
-+	case IW_AUTH_WPA_ENABLED:
-+		wrqu->param.value = ieee->wpa_enabled;
-+		break;
-+	case IW_AUTH_RX_UNENCRYPTED_EAPOL:
-+		wrqu->param.value = ieee->ieee802_1x;
-+		break;
-+	default:
-+		err = -EOPNOTSUPP;
-+		break;
-+	}
-+	spin_unlock_irqrestore(&ieee->lock, flags);
-+	return err;
-+}
-+
- EXPORT_SYMBOL(ieee80211_wx_set_encodeext);
- EXPORT_SYMBOL(ieee80211_wx_get_encodeext);
- 
- EXPORT_SYMBOL(ieee80211_wx_get_scan);
- EXPORT_SYMBOL(ieee80211_wx_set_encode);
- EXPORT_SYMBOL(ieee80211_wx_get_encode);
-+
-+EXPORT_SYMBOL_GPL(ieee80211_wx_set_auth);
-+EXPORT_SYMBOL_GPL(ieee80211_wx_get_auth);
 --- linux-2.6.15.noarch/net/ieee80211/Kconfig.orig	2006-02-15 09:58:15.000000000 -0500
 +++ linux-2.6.15.noarch/net/ieee80211/Kconfig	2006-02-15 09:58:21.000000000 -0500
 @@ -66,3 +66,4 @@ config IEEE80211_CRYPT_TKIP




More information about the fedora-cvs-commits mailing list