rpms/kernel/devel kernel.spec, 1.354, 1.355 linux-2.6-ath5k.patch, 1.11, 1.12 linux-2.6-wireless-pending.patch, 1.21, 1.22 linux-2.6-wireless.patch, 1.16, 1.17

John W. Linville (linville) fedora-extras-commits at redhat.com
Thu Jan 10 22:08:48 UTC 2008


Author: linville

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6714

Modified Files:
	kernel.spec linux-2.6-ath5k.patch 
	linux-2.6-wireless-pending.patch linux-2.6-wireless.patch 
Log Message:
rt2500usb thinko fix ; b43 N phy pre-support updates ; ath5k cleanups and beacon fixes


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.354
retrieving revision 1.355
diff -u -r1.354 -r1.355
--- kernel.spec	10 Jan 2008 19:28:56 -0000	1.354
+++ kernel.spec	10 Jan 2008 22:07:32 -0000	1.355
@@ -620,7 +620,7 @@
 Patch610: linux-2.6-defaults-fat-utf8.patch
 Patch660: linux-2.6-libata-ali-atapi-dma.patch
 Patch670: linux-2.6-ata-quirk.patch
-#Patch680: linux-2.6-wireless.patch
+Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
 Patch682: linux-2.6-wireless-pending-too.patch
 Patch690: linux-2.6-at76.patch
@@ -1121,7 +1121,7 @@
 ApplyPatch linux-2.6-ata-quirk.patch
 
 # wireless patches headed for 2.6.24
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.25
 ApplyPatch linux-2.6-wireless-pending.patch
 
@@ -1747,6 +1747,11 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Thu Jan 10 2008 John W. Linville <linville at redhat.com>
+- rt2500usb thinko fix
+- b43 N phy pre-support updates
+- ath5k cleanups and beacon fixes
+
 * Thu Jan 10 2008 Eric Sandeen <sandeen at redhat.com>
 - ext4 updates slated for 2.6.25
 

linux-2.6-ath5k.patch:

Index: linux-2.6-ath5k.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-ath5k.patch,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- linux-2.6-ath5k.patch	9 Jan 2008 02:12:37 -0000	1.11
+++ linux-2.6-ath5k.patch	10 Jan 2008 22:07:32 -0000	1.12
@@ -1,3 +1,100 @@
+commit 5a2b0eb069545d31c2babad6b1f9c472c1f1db76
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Thu Jan 10 15:06:29 2008 +0900
+
+    ath5k: remove duplicate bssid variable
+    
+    struct ath5k_hw included two different variables for caching the bssid. remove
+    one of them.
+    
+    drivers/net/wireless/ath5k/ath5k.h:     Changes-licensed-under: ISC
+    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
+    drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d06d995304a974e0e2e5b53b94a4f7caf3669324
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Wed Jan 9 19:11:14 2008 +0900
+
+    ath5k: simplify beacon configuration
+    
+    make ath5k_beacon_config() clearer and move timer configuration into a seperate
+    function. it will be needed later when we can detect HW merges.
+    
+    Changes-licensed-under: 3-clause-BSD
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f4e1fe88feeb0368159019bbd81f47a7ff2b4603
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Wed Jan 9 18:16:08 2008 +0900
+
+    ath5k: configure beacons
+    
+    call ath5k_beacon_config() on beacon_update and after channel changes. this is
+    necessary to ensure beacons are sent.
+    
+    Changes-licensed-under: 3-clause-BSD
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 5c1ba23224c3f5b32f65f012ad4f997d9e06bd6c
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Wed Jan 9 18:16:07 2008 +0900
+
+    ath5k: centrally define TSF to TU conversion macro
+    
+    centrally define TSF_TO_TO macro for TSF to TU conversion and use it in all
+    instances. there will be more usage for this later.
+    
+    ath5k.h: Changes-licensed-under: ISC
+    all others: Changes-licensed-under: 3-clause-BSD
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit dc54838a243069219afcebc49be888c70b3b352e
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Wed Jan 9 18:16:06 2008 +0900
+
+    ath5k: comment out unused beacon functions and structures
+    
+    use '#if 0' to comment out unused functions and structures wrt beacons. we
+    might need that info later but right now they are useless and probably need to
+    be rewritten.
+    
+    Changes-licensed-under: ISC
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ed700c25133d90619b05ef44bb20ec23976861ed
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Wed Jan 9 18:16:05 2008 +0900
+
+    ath5k: rename function ath5k_hw_wait_for_beacon
+    
+    rename to ath5k_hw_beaconq_finish, since this is more clear.
+    this function is unused at the moment
+    
+    Changes-licensed-under: ISC
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 393c6826c469077da28543b5ca635b37b7dc18cd
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Wed Jan 9 18:16:04 2008 +0900
+
+    ath5k: code cosmetics
+    
+      * move some enums to kdoc
+      * small cosmetic changes of indentation etc
+    
+    base.[ch]: Changes-licensed-under: 3-clause-BSD
+    all others: Changes-licensed-under: ISC
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
 commit c8b7de755e09acd128db3998747989e1c2b118c8
 Author: Johannes Berg <johannes at sipsolutions.net>
 Date:   Fri Dec 21 00:59:04 2007 +0100
@@ -1563,8 +1660,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 diff -up linux-2.6.23.noarch/MAINTAINERS.orig linux-2.6.23.noarch/MAINTAINERS
---- linux-2.6.23.noarch/MAINTAINERS.orig	2008-01-08 20:58:04.000000000 -0500
-+++ linux-2.6.23.noarch/MAINTAINERS	2008-01-08 21:00:40.000000000 -0500
+--- linux-2.6.23.noarch/MAINTAINERS.orig	2008-01-10 16:45:47.000000000 -0500
++++ linux-2.6.23.noarch/MAINTAINERS	2008-01-10 16:47:05.000000000 -0500
 @@ -646,6 +646,17 @@ M:	ecashin at coraid.com
  W:	http://www.coraid.com/support/linux
  S:	Supported
@@ -1584,8 +1681,8 @@
  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	2008-01-08 20:58:04.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile	2008-01-08 21:00:40.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig	2008-01-10 16:45:47.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Makefile	2008-01-10 16:47:05.000000000 -0500
 @@ -61,3 +61,5 @@ obj-$(CONFIG_RT2X00)	+= rt2x00/
  obj-$(CONFIG_P54_COMMON)	+= p54common.o
  obj-$(CONFIG_P54_USB)		+= p54usb.o
@@ -1593,8 +1690,8 @@
 +
 +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	2008-01-08 20:58:04.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-08 21:00:40.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig	2008-01-10 16:45:47.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-10 16:47:05.000000000 -0500
 @@ -656,6 +656,23 @@ config P54_PCI
  
  	  If you choose to build a module, it'll be called p54pci.
@@ -1620,8 +1717,8 @@
  source "drivers/net/wireless/hostap/Kconfig"
  source "drivers/net/wireless/bcm43xx/Kconfig"
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,2071 @@
 +/*
 + * PHY functions
@@ -3695,9 +3792,9 @@
 +	return ath5k_hw_txpower(ah, channel, power);
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h	2008-01-08 21:00:40.000000000 -0500
-@@ -0,0 +1,1153 @@
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h	2008-01-10 16:47:05.000000000 -0500
+@@ -0,0 +1,1173 @@
 +/*
 + * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
 + * Copyright (c) 2006-2007 Nick Kossifidis <mickflemm at gmail.com>
@@ -3989,16 +4086,22 @@
 +#define AR5K_TXERR_FILT		0x02
 +#define AR5K_TXERR_FIFO		0x04
 +
-+/*
-+ * Queue types used to classify tx queues.
++/**
++ * enum ath5k_tx_queue - Queue types used to classify tx queues.
++ * @AR5K_TX_QUEUE_INACTIVE: q is unused -- see ath5k_hw_release_tx_queue
++ * @AR5K_TX_QUEUE_DATA: A normal data queue
++ * @AR5K_TX_QUEUE_XR_DATA: An XR-data queue
++ * @AR5K_TX_QUEUE_BEACON: The beacon queue
++ * @AR5K_TX_QUEUE_CAB: The after-beacon queue
++ * @AR5K_TX_QUEUE_UAPSD: Unscheduled Automatic Power Save Delivery queue
 + */
 +enum ath5k_tx_queue {
-+	AR5K_TX_QUEUE_INACTIVE = 0, /* q is unused -- see ath5k_hw_release_tx_queue */
-+	AR5K_TX_QUEUE_DATA,	  /*A normal data queue*/
-+	AR5K_TX_QUEUE_XR_DATA,	  /*An XR-data queue*/
-+	AR5K_TX_QUEUE_BEACON,	  /*The beacon queue*/
-+	AR5K_TX_QUEUE_CAB,	  /*The ater-beacon queue*/
-+	AR5K_TX_QUEUE_UAPSD,	  /*Unscheduled Automatic Power Save Delivery queue*/
++	AR5K_TX_QUEUE_INACTIVE = 0,
++	AR5K_TX_QUEUE_DATA,
++	AR5K_TX_QUEUE_XR_DATA,
++	AR5K_TX_QUEUE_BEACON,
++	AR5K_TX_QUEUE_CAB,
++	AR5K_TX_QUEUE_UAPSD,
 +};
 +
 +#define	AR5K_NUM_TX_QUEUES		10
@@ -4153,25 +4256,37 @@
 +#define AR5K_BEACON_ENA		0x00800000 /*enable beacon xmit*/
 +#define AR5K_BEACON_RESET_TSF	0x01000000 /*force a TSF reset*/
 +
-+/*
-+ * Per-station beacon timer state.
++#if 0
++/**
++ * struct ath5k_beacon_state - Per-station beacon timer state.
++ * @bs_interval: in TU's, can also include the above flags
++ * @bs_cfp_max_duration: if non-zero hw is setup to coexist with a
++ * 	Point Coordination Function capable AP
 + */
 +struct ath5k_beacon_state {
 +	u32	bs_next_beacon;
 +	u32	bs_next_dtim;
-+	u32	bs_interval;		/*in TU's -see net80211/ieee80211_var.h-
-+						can also include the above flags*/
++	u32	bs_interval;
 +	u8	bs_dtim_period;
 +	u8	bs_cfp_period;
-+	u16	bs_cfp_max_duration;	/*if non-zero hw is setup to coexist with
-+						a Point Coordination Function capable AP*/
++	u16	bs_cfp_max_duration;
 +	u16	bs_cfp_du_remain;
 +	u16	bs_tim_offset;
 +	u16	bs_sleep_duration;
 +	u16	bs_bmiss_threshold;
 +	u32  	bs_cfp_next;
 +};
++#endif
++
 +
++/*
++ * TSF to TU conversion:
++ *
++ * TSF is a 64bit value in usec (microseconds).
++ * TU is a 32bit value in roughly msec (milliseconds): usec / 1024
++ * (1000ms equals 976 TU)
++ */
++#define TSF_TO_TU(_tsf) (u32)((_tsf) >> 10)
 +
 +
 +
@@ -4633,10 +4748,6 @@
 +	enum ieee80211_if_types	ah_op_mode;
 +	enum ath5k_power_mode	ah_power_mode;
 +	struct ieee80211_channel ah_current_channel;
-+	/* Current BSSID we are trying to assoc to / creating, this
-+	 * comes from ieee80211_if_conf. This is passed by mac80211 on
-+	 * config_interface() */
-+	u8			bssid[ETH_ALEN];
 +	bool			ah_turbo;
 +	bool			ah_calibration;
 +	bool			ah_running;
@@ -4673,6 +4784,10 @@
 +	bool			ah_ant_diversity;
 +
 +	u8			ah_sta_id[ETH_ALEN];
++
++	/* Current BSSID we are trying to assoc to / creating.
++	 * This is passed by mac80211 on config_interface() and cached here for
++	 * use in resets */
 +	u8			ah_bssid[ETH_ALEN];
 +
 +	u32			ah_gpio[AR5K_MAX_GPIO];
@@ -4775,9 +4890,11 @@
 +extern u64 ath5k_hw_get_tsf64(struct ath5k_hw *ah);
 +extern void ath5k_hw_reset_tsf(struct ath5k_hw *ah);
 +extern void ath5k_hw_init_beacon(struct ath5k_hw *ah, u32 next_beacon, u32 interval);
++#if 0
 +extern int ath5k_hw_set_beacon_timers(struct ath5k_hw *ah, const struct ath5k_beacon_state *state);
 +extern void ath5k_hw_reset_beacon(struct ath5k_hw *ah);
-+extern int ath5k_hw_wait_for_beacon(struct ath5k_hw *ah, unsigned long phys_addr);
++extern int ath5k_hw_beaconq_finish(struct ath5k_hw *ah, unsigned long phys_addr);
++#endif
 +extern void ath5k_hw_update_mib_counters(struct ath5k_hw *ah, struct ath5k_mib_stats *statistics);
 +/* ACK bit rate */
 +void ath5k_hw_set_ack_bitrate_high(struct ath5k_hw *ah, bool high);
@@ -4852,14 +4969,14 @@
 +
 +#endif
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,2 @@
 +ath5k-objs		= base.o hw.o regdom.o initvals.o phy.o debug.o
 +obj-$(CONFIG_ATH5K)	+= ath5k.o
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,1987 @@
 +/*
 + * Copyright (c) 2007 Nick Kossifidis <mickflemm at gmail.com>
@@ -4946,7 +5063,7 @@
 +/*
 + * Interrupt enable register
 + */
-+#define AR5K_IER		0x0024			/* Register Address */
++#define AR5K_IER		0x0024		/* Register Address */
 +#define AR5K_IER_DISABLE	0x00000000	/* Disable card interrupts */
 +#define AR5K_IER_ENABLE		0x00000001	/* Enable card interrupts */
 +
@@ -4959,7 +5076,7 @@
 +/*
 + * Beacon control register [5210]
 + */
-+#define AR5K_BCR		0x0028			/* Register Address */
++#define AR5K_BCR		0x0028		/* Register Address */
 +#define AR5K_BCR_AP		0x00000000	/* AP mode */
 +#define AR5K_BCR_ADHOC		0x00000001	/* Ad-Hoc mode */
 +#define AR5K_BCR_BDMAE		0x00000002	/* DMA enable */
@@ -4970,7 +5087,7 @@
 +/*
 + * First RTS duration register [5211]
 + */
-+#define AR5K_RTSD0		0x0028			/* Register Address */
++#define AR5K_RTSD0		0x0028		/* Register Address */
 +#define	AR5K_RTSD0_6		0x000000ff	/* 6Mb RTS duration mask (?) */
 +#define	AR5K_RTSD0_6_S		0		/* 6Mb RTS duration shift (?) */
 +#define	AR5K_RTSD0_9		0x0000ff00	/* 9Mb*/
@@ -6849,8 +6966,8 @@
 +#define	AR5K_PHY_GAIN_2GHZ_MARGIN_TXRX_S	18
 +#define	AR5K_PHY_GAIN_2GHZ_INI_5111	0x6480416c
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,500 @@
 +/*
 + * Copyright (c) 2004, 2005 Reyk Floeter <reyk at openbsd.org>
@@ -7353,8 +7470,8 @@
 +
 +#endif
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,216 @@
 +/*
 + * Copyright (c) 2007 Bruno Randolf <bruno at thinktube.com>
@@ -7573,8 +7690,8 @@
 +
 +#endif /* ifndef _ATH5K_DEBUG_H */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,4349 @@
 + /*
 + * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -7840,8 +7957,8 @@
 +
 +	ath5k_hw_set_lladdr(ah, mac);
 +	/* Set BSSID to bcast address: ff:ff:ff:ff:ff:ff for now */
-+	memset(ah->bssid, 0xff, ETH_ALEN);
-+	ath5k_hw_set_associd(ah, ah->bssid, 0);
++	memset(ah->ah_bssid, 0xff, ETH_ALEN);
++	ath5k_hw_set_associd(ah, ah->ah_bssid, 0);
 +	ath5k_hw_set_opmode(ah);
 +
 +	ath5k_hw_set_rfgain_opt(ah);
@@ -8443,7 +8560,7 @@
 +	 * Misc
 +	 */
 +	/* XXX: add ah->aid once mac80211 gives this to us */
-+	ath5k_hw_set_associd(ah, ah->bssid, 0);
++	ath5k_hw_set_associd(ah, ah->ah_bssid, 0);
 +
 +	ath5k_hw_set_opmode(ah);
 +	/*PISR/SISR Not available on 5210*/
@@ -9863,7 +9980,6 @@
 +	ath5k_hw_reg_write(ah, low_id, AR5K_BSS_ID0);
 +	ath5k_hw_reg_write(ah, high_id | ((assoc_id & 0x3fff) <<
 +				AR5K_BSS_ID1_AID_S), AR5K_BSS_ID1);
-+	memcpy(&ah->ah_bssid, bssid, ETH_ALEN);
 +
 +	if (assoc_id == 0) {
 +		ath5k_hw_disable_pspoll(ah);
@@ -10202,6 +10318,7 @@
 +		AR5K_BEACON);
 +}
 +
++#if 0
 +/*
 + * Set beacon timers
 + */
@@ -10350,9 +10467,8 @@
 +
 +/*
 + * Wait for beacon queue to finish
-+ * TODO: This function's name is misleading, rename
 + */
-+int ath5k_hw_wait_for_beacon(struct ath5k_hw *ah, unsigned long phys_addr)
++int ath5k_hw_beaconq_finish(struct ath5k_hw *ah, unsigned long phys_addr)
 +{
 +	unsigned int i;
 +	int ret;
@@ -10397,6 +10513,7 @@
 +
 +	return ret;
 +}
++#endif
 +
 +/*
 + * Update mib counters (statistics)
@@ -11926,8 +12043,8 @@
 +	return -EIO;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,588 @@
 +/*
 + * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -12518,8 +12635,8 @@
 +	return retval;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,1347 @@
 +/*
 + * Initial register settings functions
@@ -13869,9 +13986,9 @@
 +	return 0;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-08 21:00:40.000000000 -0500
-@@ -0,0 +1,2822 @@
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-10 16:47:05.000000000 -0500
+@@ -0,0 +1,2817 @@
 +/*-
 + * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
 + * Copyright (c) 2004-2005 Atheros Communications, Inc.
@@ -14929,6 +15046,7 @@
 +		 */
 +/*		ath5k_chan_change(sc, chan); */
 +
++		ath5k_beacon_config(sc);
 +		/*
 +		 * Re-enable interrupts.
 +		 */
@@ -15319,7 +15437,7 @@
 +	if (ret)
 +		return ret;
 +	if (sc->opmode == IEEE80211_IF_TYPE_AP ||
-+			sc->opmode == IEEE80211_IF_TYPE_IBSS) {
++	    sc->opmode == IEEE80211_IF_TYPE_IBSS) {
 +		/*
 +		 * Always burst out beacon and CAB traffic
 +		 * (aifs = cwmin = cwmax = 0)
@@ -15377,7 +15495,7 @@
 +	/* XXX return value */
 +	if (likely(!test_bit(ATH_STAT_INVALID, sc->status))) {
 +		/* don't touch the hardware if marked invalid */
-+		(void)ath5k_hw_stop_tx_dma(ah, sc->bhalq);
++		ath5k_hw_stop_tx_dma(ah, sc->bhalq);
 +		ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "beacon queue %x\n",
 +			ath5k_hw_get_tx_buf(ah, sc->bhalq));
 +		for (i = 0; i < ARRAY_SIZE(sc->txqs); i++)
@@ -15844,25 +15962,10 @@
 +	sc->bsent++;
 +}
 +
-+/*
-+ * Configure the beacon and sleep timers.
-+ *
-+ * When operating as an AP this resets the TSF and sets
-+ * up the hardware to notify us when we need to issue beacons.
-+ *
-+ * When operating in station mode this sets up the beacon
-+ * timers according to the timestamp of the last received
-+ * beacon and the current TSF, configures PCF and DTIM
-+ * handling, programs the sleep registers so the hardware
-+ * will wakeup in time to receive beacons, and configures
-+ * the beacon miss handling so we'll receive a BMISS
-+ * interrupt when we stop seeing beacons from the AP
-+ * we've associated with.
-+ */
++
 +static void
-+ath5k_beacon_config(struct ath5k_softc *sc)
++ath5k_beacon_update_timers(struct ath5k_softc *sc)
 +{
-+#define TSF_TO_TU(_h, _l)	(((_h) << 22) | ((_l) >> 10))
 +	struct ath5k_hw *ah = sc->ah;
 +	u32 uninitialized_var(nexttbtt), intval, tsftu;
 +	u64 tsf;
@@ -15873,60 +15976,67 @@
 +
 +	/* current TSF converted to TU */
 +	tsf = ath5k_hw_get_tsf64(ah);
-+	tsftu = TSF_TO_TU((u32)(tsf >> 32), (u32)tsf);
++	tsftu = TSF_TO_TU(tsf);
 +
-+	ATH5K_DBG(sc, ATH5K_DEBUG_BEACON, "intval %u hw tsftu %u\n",
-+		intval, tsftu);
++	/*
++	 * Pull nexttbtt forward to reflect the current
++	 * TSF. Add one intval otherwise the timespan
++	 * can be too short for ibss merges.
++	 */
++	nexttbtt = tsftu + 2 * intval;
 +
-+	if (sc->opmode == IEEE80211_IF_TYPE_STA ||
-+			(sc->opmode == IEEE80211_IF_TYPE_IBSS &&
-+				!sc->bbuf->skb)) {
-+		ath5k_hw_set_intr(ah, 0);
-+		sc->imask |= AR5K_INT_BMISS;
-+		sc->bmisscount = 0;
-+		ath5k_hw_set_intr(ah, sc->imask);
-+	} else if (sc->opmode == IEEE80211_IF_TYPE_IBSS /* TODO || AP */) {
-+		ath5k_hw_set_intr(ah, 0);
-+		if (sc->opmode == IEEE80211_IF_TYPE_IBSS) {
-+			/*
-+			 * Pull nexttbtt forward to reflect the current
-+			 * TSF. Add one intval otherwise the timespan
-+			 * can be too short for ibss merges.
-+			 */
-+			nexttbtt = tsftu + 2 * intval;
++	ATH5K_DBG(sc, ATH5K_DEBUG_BEACON,
++		"hw tsftu %u nexttbtt %u intval %u\n", tsftu, nexttbtt, intval);
 +
-+			ATH5K_DBG(sc, ATH5K_DEBUG_BEACON, "nexttbtt %u "
-+				"intval %u\n", nexttbtt, intval);
++	intval |= AR5K_BEACON_ENA;
 +
-+			/*
-+			 * In IBSS mode enable the beacon timers but only
-+			 * enable SWBA interrupts if we need to manually
-+			 * prepare beacon frames.  Otherwise we use a
-+			 * self-linked tx descriptor and let the hardware
-+			 * deal with things.
-+			 */
-+			if (!ath5k_hw_hasveol(ah))
-+				sc->imask |= AR5K_INT_SWBA;
-+		} /* TODO else AP */
++	ath5k_hw_init_beacon(ah, nexttbtt, intval);
++}
 +
-+		intval |= AR5K_BEACON_ENA;
 +
-+		ath5k_beaconq_config(sc);
-+		ath5k_hw_init_beacon(ah, nexttbtt, intval);
++/*
++ * Configure the beacon timers and interrupts based on the operating mode
++ *
++ * When operating in station mode we want to receive a BMISS interrupt when we
++ * stop seeing beacons from the AP we've associated with so we can look for
++ * another AP to associate with.
++ *
++ * In IBSS mode we need to configure the beacon timers and use a self-linked tx
++ * descriptor if possible. If the hardware cannot deal with that we enable SWBA
++ * interrupts to send the beacons from the interrupt handler.
++ */
++static void
++ath5k_beacon_config(struct ath5k_softc *sc)
++{
++	struct ath5k_hw *ah = sc->ah;
 +
-+		sc->bmisscount = 0;
-+		ath5k_hw_set_intr(ah, sc->imask);
++	ath5k_hw_set_intr(ah, 0);
++	sc->bmisscount = 0;
++
++	if (sc->opmode == IEEE80211_IF_TYPE_STA) {
++		sc->imask |= AR5K_INT_BMISS;
++	} else if (sc->opmode == IEEE80211_IF_TYPE_IBSS) {
 +		/*
-+		 * When using a self-linked beacon descriptor in
-+		 * ibss mode load it once here.
++		 * In IBSS mode enable the beacon timers but only enable SWBA
++		 * interrupts if we need to manually prepare beacon frames.
++		 * Otherwise we use a self-linked tx descriptor and let the
++		 * hardware deal with things. In that case we have to load it
++		 * only once here.
 +		 */
-+		if (sc->opmode == IEEE80211_IF_TYPE_IBSS &&
-+				ath5k_hw_hasveol(ah))
++		ath5k_beaconq_config(sc);
++		ath5k_beacon_update_timers(sc);
++
++		if (!ath5k_hw_hasveol(ah))
++			sc->imask |= AR5K_INT_SWBA;
++		else
 +			ath5k_beacon_send(sc);
 +	}
-+#undef TSF_TO_TU
++	/* TODO else AP */
++
++	ath5k_hw_set_intr(ah, sc->imask);
 +}
 +
++
 +/********************\
 +* Interrupt handling *
 +\********************/
@@ -16447,10 +16557,10 @@
 +	}
 +	if (conf->bssid) {
 +		/* Cache for later use during resets */
-+		memcpy(ah->bssid, conf->bssid, ETH_ALEN);
++		memcpy(ah->ah_bssid, conf->bssid, ETH_ALEN);
 +		/* XXX: assoc id is set to 0 for now, mac80211 doesn't have
 +		 * a clean way of letting us retrieve this yet. */
-+		ath5k_hw_set_associd(ah, ah->bssid, 0);
++		ath5k_hw_set_associd(ah, ah->ah_bssid, 0);
 +	}
 +	mutex_unlock(&sc->lock);
 +
@@ -16688,6 +16798,8 @@
 +	ret = ath5k_beacon_setup(sc, sc->bbuf, ctl);
 +	if (ret)
 +		sc->bbuf->skb = NULL;
++	else
++		ath5k_beacon_config(sc);
 +
 +end:
 +	mutex_unlock(&sc->lock);
@@ -16695,8 +16807,8 @@
 +}
 +
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,469 @@
 +/*
 + * Copyright (c) 2007 Bruno Randolf <bruno at thinktube.com>
@@ -16966,7 +17078,7 @@
 +
 +	tsf = ath5k_hw_get_tsf64(sc->ah);
 +	len += snprintf(buf+len, sizeof(buf)-len,
-+		"TSF\t\t0x%016llx\tTU: %08x\n", tsf, (u32)(tsf >> 10));
++		"TSF\t\t0x%016llx\tTU: %08x\n", tsf, TSF_TO_TU(tsf));
 +
 +	return simple_read_from_buffer(user_buf, count, ppos, buf, len);
 +}
@@ -17168,8 +17280,8 @@
 +
 +#endif /* if ATH5K_DEBUG */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,178 @@
 +/*-
 + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
@@ -17229,7 +17341,7 @@
 +struct ath5k_buf {
 +	struct list_head	list;
 +	unsigned int		flags;	/* tx descriptor flags */
-+	struct ath5k_desc		*desc;	/* virtual addr of desc */
++	struct ath5k_desc	*desc;	/* virtual addr of desc */
 +	dma_addr_t		daddr;	/* physical addr of desc */
 +	struct sk_buff		*skb;	/* skbuff for buf */
 +	dma_addr_t		skbaddr;/* physical addr of skb data */
@@ -17246,11 +17358,11 @@
 + * hardware queue).
 + */
 +struct ath5k_txq {
-+	unsigned int	qnum;		/* hardware q number */
-+	u32		*link;		/* link ptr in last TX desc */
-+	struct list_head q;		/* transmit queue */
-+	spinlock_t	lock;		/* lock on q and link */
-+	bool		setup;
++	unsigned int		qnum;	/* hardware q number */
++	u32			*link;	/* link ptr in last TX desc */
++	struct list_head	q;	/* transmit queue */
++	spinlock_t		lock;	/* lock on q and link */
++	bool			setup;
 +};
 +
 +#if CHAN_DEBUG
@@ -17350,8 +17462,8 @@
 +
 +#endif
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c
---- /dev/null	2008-01-08 19:44:41.586069818 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c	2008-01-08 21:00:40.000000000 -0500
+--- /dev/null	2008-01-10 08:19:44.585871638 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c	2008-01-10 16:47:05.000000000 -0500
 @@ -0,0 +1,121 @@
 +/*
 + * Copyright (c) 2004, 2005 Reyk Floeter <reyk at vantronix.net>

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.21 -r 1.22 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- linux-2.6-wireless-pending.patch	9 Jan 2008 16:58:18 -0000	1.21
+++ linux-2.6-wireless-pending.patch	10 Jan 2008 22:07:32 -0000	1.22
@@ -1,3 +1,77 @@
+commit f74028c41cc14c2301a2b74fa17ad9ceb262daaf
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Thu Jan 10 13:37:45 2008 -0500
+
+    iwlwifi: fix-up damage from rebase of namespace separation patches
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 607dd1fd3a2347b3b7144c1cf4300ba6f8da6fe6
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Thu Jan 10 13:28:49 2008 -0500
+
+    b43: finish removal of pio support
+    
+    As suggested in "b43: Remove PIO support"...
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d507e02672266ddd62ce48ab933b35468fa8b3eb
+Author: Pavel Roskin <proski at gnu.org>
+Date:   Wed Jan 9 22:16:58 2008 -0500
+
+    hostap_cs: don't match revisions in presense of the MAC chip name
+    
+    If the third PCMCIA ID string specifies the MAC chip, the fourth ID
+    string doesn't need to be matched.  Even if it's different, it will be
+    compatible with the driver.
+    
+    This ensures that other different revisions of the card will be
+    supported.
+    
+    Signed-off-by: Pavel Roskin <proski at gnu.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 30c796bad54b869d48897cb13e1b7b8f9dccef1c
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 9 19:08:49 2008 +0100
+
+    b43: Remove the PHY spinlock
+    
+    This fixes a sparse warning about weird locking.
+    The spinlock is not needed, so simply remove it.
+    This also adds some sanity checks to the PHY and radio locking
+    to protect against recursive locking.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 5548d74c57387e1f041bf01093807d7a9af94a05
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 9 18:39:09 2008 +0100
+
+    b43: Fix PHY register routing
+    
+    This fixes the PHY routing bit handling.
+    This is needed for N-PHY.
+    No functional change to A-PHY and G-PHY code.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0ec160e294c65d11340750aca9fa6ecfda92be99
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 9 16:13:56 2008 +0100
+
+    b43: Add N-PHY register definitions
+    
+    This patch adds all register definitions for the N-PHY.
+    This adds two new files: nphy.h and nphy.c
+    No functional changes to existing code.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
 commit 620fdb92d74f94ef5608c08cf9825a427e1ecfff
 Author: Michael Buesch <mb at bu3sch.de>
 Date:   Sat Dec 29 17:24:23 2007 +0100
@@ -5812,8 +5886,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 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	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/nl80211.h	2008-01-09 10:53:36.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/nl80211.h.orig	2008-01-10 14:57:12.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/nl80211.h	2008-01-10 15:52:18.000000000 -0500
 @@ -7,6 +7,18 @@
   */
  
@@ -6016,7 +6090,7 @@
  #endif /* __LINUX_NL80211_H */
 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	2008-01-09 10:53:36.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/wireless.h	2008-01-10 15:52:18.000000000 -0500
 @@ -541,6 +541,16 @@
  /* Maximum size of returned data */
  #define IW_SCAN_MAX_DATA	4096	/* In bytes */
@@ -6045,8 +6119,8 @@
  	__u32		event_capa[6];
  
 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	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/ieee80211.h	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/ieee80211.h.orig	2008-01-10 14:57:11.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/ieee80211.h	2008-01-10 15:52:18.000000000 -0500
 @@ -54,6 +54,8 @@
  #define IEEE80211_STYPE_ACTION		0x00D0
  
@@ -6271,8 +6345,8 @@
  #define WLAN_CIPHER_SUITE_USE_GROUP	0x000FAC00
  #define WLAN_CIPHER_SUITE_WEP40		0x000FAC01
 diff -up linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h.orig linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h
---- linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h.orig	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h.orig	2008-01-10 14:57:12.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h	2008-01-10 15:52:18.000000000 -0500
 @@ -147,6 +147,10 @@
  #define  SSB_IDLOW_SSBREV	0xF0000000 /* Sonics Backplane Revision code */
  #define  SSB_IDLOW_SSBREV_22	0x00000000 /* <= 2.2 */
@@ -6404,8 +6478,8 @@
  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	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb.h	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/ssb/ssb.h.orig	2008-01-10 14:57:12.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb.h	2008-01-10 15:52:18.000000000 -0500
 @@ -15,22 +15,19 @@ struct pcmcia_device;
  struct ssb_bus;
  struct ssb_driver;
@@ -6548,8 +6622,8 @@
  
  
 diff -up linux-2.6.23.noarch/include/net/cfg80211.h.orig linux-2.6.23.noarch/include/net/cfg80211.h
---- linux-2.6.23.noarch/include/net/cfg80211.h.orig	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/net/cfg80211.h	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/include/net/cfg80211.h.orig	2008-01-10 14:57:12.000000000 -0500
++++ linux-2.6.23.noarch/include/net/cfg80211.h	2008-01-10 15:52:18.000000000 -0500
 @@ -49,6 +49,120 @@ extern int ieee80211_radiotap_iterator_n
     struct ieee80211_radiotap_iterator *iterator);
  
@@ -6739,8 +6813,8 @@
  
  #endif /* __NET_CFG80211_H */
 diff -up linux-2.6.23.noarch/include/net/ieee80211.h.orig linux-2.6.23.noarch/include/net/ieee80211.h
---- linux-2.6.23.noarch/include/net/ieee80211.h.orig	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/net/ieee80211.h	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/include/net/ieee80211.h.orig	2008-01-10 14:57:12.000000000 -0500
++++ linux-2.6.23.noarch/include/net/ieee80211.h	2008-01-10 15:52:18.000000000 -0500
 @@ -677,7 +677,7 @@ struct ieee80211_probe_request {
  
  struct ieee80211_probe_response {
@@ -6762,8 +6836,8 @@
  };
  
 diff -up linux-2.6.23.noarch/include/net/mac80211.h.orig linux-2.6.23.noarch/include/net/mac80211.h
---- linux-2.6.23.noarch/include/net/mac80211.h.orig	2008-01-08 20:02:59.000000000 -0500
-+++ linux-2.6.23.noarch/include/net/mac80211.h	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/include/net/mac80211.h.orig	2008-01-10 14:57:12.000000000 -0500
++++ linux-2.6.23.noarch/include/net/mac80211.h	2008-01-10 15:52:18.000000000 -0500
 @@ -139,17 +139,54 @@ enum ieee80211_phymode {
  };
  
@@ -7043,8 +7117,8 @@
 +
  #endif /* MAC80211_H */
 diff -up linux-2.6.23.noarch/MAINTAINERS.orig linux-2.6.23.noarch/MAINTAINERS
---- linux-2.6.23.noarch/MAINTAINERS.orig	2008-01-08 20:02:49.000000000 -0500
-+++ linux-2.6.23.noarch/MAINTAINERS	2008-01-09 10:53:37.000000000 -0500
+--- linux-2.6.23.noarch/MAINTAINERS.orig	2008-01-10 14:57:14.000000000 -0500
++++ linux-2.6.23.noarch/MAINTAINERS	2008-01-10 15:52:18.000000000 -0500
 @@ -805,7 +805,7 @@ P:	Stefano Brivio
  M:	stefano.brivio at polimi.it
  L:	linux-wireless at vger.kernel.org
@@ -7054,7 +7128,7 @@
  
  BEFS FILE SYSTEM
  P:	Sergey S. Kostyliov
-@@ -2025,10 +2025,12 @@ W:	http://sourceforge.net/projects/e1000
+@@ -2023,10 +2023,12 @@ W:	http://sourceforge.net/projects/e1000
  S:	Supported
  
  INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
@@ -7068,7 +7142,7 @@
  L:	linux-wireless at vger.kernel.org
  L:	ipw2100-devel at lists.sourceforge.net
  W:	http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
-@@ -2036,10 +2038,12 @@ W:	http://ipw2100.sourceforge.net
+@@ -2034,10 +2036,12 @@ W:	http://ipw2100.sourceforge.net
  S:	Supported
  
[...4962 lines suppressed...]
  
  struct hfa384x_comp_ident
@@ -87192,8 +89675,8 @@
  
  
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c	2008-01-10 15:52:19.000000000 -0500
 @@ -1039,7 +1039,7 @@ void hostap_80211_rx(struct net_device *
  		memcpy(skb_push(skb, ETH_ALEN), src, ETH_ALEN);
  		memcpy(skb_push(skb, ETH_ALEN), dst, ETH_ALEN);
@@ -87204,8 +89687,8 @@
  		skb_pull(skb, hdrlen);
  		len = htons(skb->len);
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ap.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ap.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ap.c	2008-01-10 15:52:19.000000000 -0500
 @@ -258,7 +258,7 @@ static void ap_handle_timer(unsigned lon
  				 sta->addr, ap->tx_callback_poll);
  	} else {
@@ -87465,8 +89948,8 @@
  
  	if (local->ap->ap_policy != AP_OTHER_AP_EVEN_IBSS &&
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_wlan.h.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_wlan.h
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_wlan.h.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_wlan.h	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_wlan.h.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_wlan.h	2008-01-10 15:52:19.000000000 -0500
 @@ -39,20 +39,20 @@ struct linux_wlan_ng_prism_hdr {
  } __attribute__ ((packed));
  
@@ -87767,8 +90250,8 @@
  
  struct comm_tallies_sums {
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_pci.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_pci.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_pci.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_pci.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_pci.c	2008-01-10 15:52:19.000000000 -0500
 @@ -128,8 +128,8 @@ static inline u16 hfa384x_inw_debug(stru
  #define HFA384X_INB(a) hfa384x_inb_debug(dev, (a))
  #define HFA384X_OUTW(v,a) hfa384x_outw_debug(dev, (a), (v))
@@ -87819,7 +90302,7 @@
  		HFA384X_OUTW_DATA(*pos++, d_off);
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_download.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_download.c
 --- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_download.c.orig	2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_download.c	2008-01-09 10:53:38.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_download.c	2008-01-10 15:52:19.000000000 -0500
 @@ -100,7 +100,7 @@ static int hfa384x_from_aux(struct net_d
  
  #ifdef PRISM2_PCI
@@ -87879,9 +90362,45 @@
  
  	local->hw_downloading = 1;
  
+diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_cs.c
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_cs.c	2008-01-10 16:34:23.000000000 -0500
+@@ -845,15 +845,13 @@ static struct pcmcia_device_id hostap_cs
+ 					 0x4b801a17),
+ 	PCMCIA_MFC_DEVICE_PROD_ID12(0, "SanDisk", "ConnectPlus",
+ 				    0x7a954bd9, 0x74be00c6),
+-	PCMCIA_DEVICE_PROD_ID1234(
++	PCMCIA_DEVICE_PROD_ID123(
+ 		"Intersil", "PRISM 2_5 PCMCIA ADAPTER",	"ISL37300P",
+-		"Eval-RevA",
+-		0x4b801a17, 0x6345a0bf, 0xc9049a39, 0xc23adc0e),
++		0x4b801a17, 0x6345a0bf, 0xc9049a39),
+ 	/* D-Link DWL-650 Rev. P1; manfid 0x000b, 0x7110 */
+-	PCMCIA_DEVICE_PROD_ID1234(
++	PCMCIA_DEVICE_PROD_ID123(
+ 		"D-Link", "DWL-650 Wireless PC Card RevP", "ISL37101P-10",
+-		"A3",
+-		0x1a424a1c, 0x6ea57632, 0xdd97a26b, 0x56b21f52),
++		0x1a424a1c, 0x6ea57632, 0xdd97a26b),
+ 	PCMCIA_DEVICE_PROD_ID123(
+ 		"Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02",
+ 		0xe6ec52ce, 0x08649af2, 0x4b74baa0),
+@@ -890,10 +888,9 @@ static struct pcmcia_device_id hostap_cs
+ 	PCMCIA_DEVICE_PROD_ID123(
+ 		"corega", "WL PCCL-11", "ISL37300P",
+ 		0xa21501a, 0x59868926, 0xc9049a39),
+-	PCMCIA_DEVICE_PROD_ID1234(
++	PCMCIA_DEVICE_PROD_ID123(
+ 		"The Linksys Group, Inc.", "Wireless Network CF Card", "ISL37300P",
+-		"RevA",
+-		0xa5f472c2, 0x9c05598d, 0xc9049a39, 0x57a66194),
++		0xa5f472c2, 0x9c05598d, 0xc9049a39),
+ 	PCMCIA_DEVICE_NULL
+ };
+ MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids);
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_hw.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_hw.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_hw.c	2008-01-10 15:52:19.000000000 -0500
 @@ -1075,7 +1075,7 @@ static int prism2_setup_rids(struct net_
  {
  	struct hostap_interface *iface;
@@ -87968,8 +90487,8 @@
  		goto out;
  	}
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c	2008-01-10 15:52:19.000000000 -0500
 @@ -296,7 +296,7 @@ int hostap_tx_callback_unregister(local_
  int hostap_set_word(struct net_device *dev, int rid, u16 val)
  {
@@ -87998,8 +90517,8 @@
  	wireless_send_event(local->dev, SIOCGIWAP, &wrqu, NULL);
  	return ret;
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_info.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_info.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_info.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_info.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_info.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_info.c	2008-01-10 15:52:19.000000000 -0500
 @@ -303,7 +303,7 @@ static void prism2_info_hostscanresults(
  	int i, result_size, copy_len, new_count;
  	struct hfa384x_hostscan_result *results, *prev;
@@ -88039,7 +90558,7 @@
  			PDEBUG2(DEBUG_EXTRA, " %02x", buf[i]);
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211.h.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211.h
 --- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211.h.orig	2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211.h	2008-01-09 10:53:38.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_80211.h	2008-01-10 15:52:19.000000000 -0500
 @@ -5,52 +5,52 @@
  #include <net/ieee80211_crypt.h>
  
@@ -88111,8 +90630,8 @@
  			 * FH Params, DS Params, CF Params, IBSS Params, TIM */
  			u8 variable[0];
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2008-01-10 14:57:07.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2008-01-10 15:52:19.000000000 -0500
 @@ -84,7 +84,7 @@ static int prism2_get_datarates(struct n
  	if (len < 2)
  		return 0;
@@ -88377,8 +90896,8 @@
  	reason = cpu_to_le16(param->u.mlme.reason_code);
  	switch (param->u.mlme.cmd) {
 diff -up linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c.orig linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c
---- linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c.orig	2008-01-08 20:02:57.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c.orig	2008-01-10 14:57:09.000000000 -0500
++++ linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c	2008-01-10 15:52:19.000000000 -0500
 @@ -27,6 +27,8 @@ static const struct pci_device_id b43_pc
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) },
@@ -88389,8 +90908,8 @@
  };
  MODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl);
 diff -up linux-2.6.23.noarch/drivers/ssb/pcmcia.c.orig linux-2.6.23.noarch/drivers/ssb/pcmcia.c
---- linux-2.6.23.noarch/drivers/ssb/pcmcia.c.orig	2008-01-08 20:02:57.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/pcmcia.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/ssb/pcmcia.c.orig	2008-01-10 14:57:09.000000000 -0500
++++ linux-2.6.23.noarch/drivers/ssb/pcmcia.c	2008-01-10 15:52:19.000000000 -0500
 @@ -94,7 +94,6 @@ int ssb_pcmcia_switch_core(struct ssb_bu
  			   struct ssb_device *dev)
  {
@@ -88541,8 +91060,8 @@
  }
  
 diff -up linux-2.6.23.noarch/drivers/ssb/main.c.orig linux-2.6.23.noarch/drivers/ssb/main.c
---- linux-2.6.23.noarch/drivers/ssb/main.c.orig	2008-01-08 20:02:57.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/main.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/ssb/main.c.orig	2008-01-10 14:57:09.000000000 -0500
++++ linux-2.6.23.noarch/drivers/ssb/main.c	2008-01-10 15:52:19.000000000 -0500
 @@ -872,14 +872,22 @@ EXPORT_SYMBOL(ssb_clockspeed);
  
  static u32 ssb_tmslow_reject_bitmask(struct ssb_device *dev)
@@ -88568,8 +91087,8 @@
  	}
  	return (SSB_TMSLOW_REJECT_22 | SSB_TMSLOW_REJECT_23);
 diff -up linux-2.6.23.noarch/drivers/ssb/pci.c.orig linux-2.6.23.noarch/drivers/ssb/pci.c
---- linux-2.6.23.noarch/drivers/ssb/pci.c.orig	2008-01-08 20:02:57.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/pci.c	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/drivers/ssb/pci.c.orig	2008-01-10 14:57:09.000000000 -0500
++++ linux-2.6.23.noarch/drivers/ssb/pci.c	2008-01-10 15:52:19.000000000 -0500
 @@ -212,29 +212,29 @@ static inline u8 ssb_crc8(u8 crc, u8 dat
  	return t[crc ^ data];
  }
@@ -89012,8 +91531,8 @@
  		err = -EINVAL;
  		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	2008-01-08 20:02:48.000000000 -0500
-+++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-09 10:53:38.000000000 -0500
+--- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-10 14:57:01.000000000 -0500
++++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-10 15:52:19.000000000 -0500
 @@ -333,3 +333,28 @@ Why:	This driver has been marked obsolet
  Who:	Stephen Hemminger <shemminger at linux-foundation.org>
  

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- linux-2.6-wireless.patch	9 Jan 2008 02:12:37 -0000	1.16
+++ linux-2.6-wireless.patch	10 Jan 2008 22:07:32 -0000	1.17
@@ -1,282 +1,25 @@
-commit 85ae82313303ded51b3d49ae8b586224476abd33
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Wed Jan 2 18:55:53 2008 +0100
+commit bff0a057a309d03dee2db3e424f33e56ca395786
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Wed Jan 9 19:18:25 2008 +0100
 
-    b43: Fix rxheader channel parsing
+    rt2x00: Corectly initialize rt2500usb MAC
     
-    This patch fixes the parsing of the RX data header channel field.
+    mac is a pointer, obviously we shouldn't use the address
+    of a pointer as MAC address.
     
-    The current code parses the header incorrectly and passes a wrong
-    channel number and frequency for each frame to mac80211.
-    The FIXMEs added by this patch don't matter for now as the code
-    where they live won't get executed anyway. They will be fixed later.
-    
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 74692096aa876d5a7b5bd73cd518f75840af3877
-Author: Andrew Lutomirski <andy at luto.us>
-Date:   Thu Jan 3 21:03:19 2008 -0800
-
-    mac80211: return an error when SIWRATE doesn't match any rate
-    
-    Currently mac80211 fails silently when trying to set a nonexistent
-    rate.  Return an error instead.
-    
-    Signed-Off-By: Andy Lutomirski <luto at myrealbox.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 3e9533e4d7bea8e9d7622da3baa1a1125cafbe17
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Thu Jan 3 18:59:25 2008 +0100
-
-    ssb: Fix probing of PCI cores if PCI and PCIE core is available
-    
-    This will make sure that always the correct core is selected, even if
-    there are both a PCI and PCI-E core on a PCI or PCI-E card.
-    
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-diff -up linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c.orig linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c
---- linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c.orig	2008-01-08 20:03:00.000000000 -0500
-+++ linux-2.6.23.noarch/net/mac80211/ieee80211_ioctl.c	2008-01-08 20:15:18.000000000 -0500
-@@ -591,7 +591,7 @@ static int ieee80211_ioctl_siwrate(struc
- 	sdata->bss->force_unicast_rateidx = -1;
- 	if (rate->value < 0)
- 		return 0;
--	for (i=0; i< mode->num_rates; i++) {
-+	for (i=0; i < mode->num_rates; i++) {
- 		struct ieee80211_rate *rates = &mode->rates[i];
- 		int this_rate = rates->rate;
- 
-@@ -599,10 +599,10 @@ static int ieee80211_ioctl_siwrate(struc
- 			sdata->bss->max_ratectrl_rateidx = i;
- 			if (rate->fixed)
- 				sdata->bss->force_unicast_rateidx = i;
--			break;
-+			return 0;
- 		}
- 	}
--	return 0;
-+	return -EINVAL;
- }
- 
- static int ieee80211_ioctl_giwrate(struct net_device *dev,
-diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c.orig linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c
---- linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.c	2008-01-08 20:15:18.000000000 -0500
-@@ -531,21 +531,32 @@ void b43_rx(struct b43_wldev *dev, struc
- 	switch (chanstat & B43_RX_CHAN_PHYTYPE) {
- 	case B43_PHYTYPE_A:
- 		status.phymode = MODE_IEEE80211A;
--		status.freq = chanid;
--		status.channel = b43_freq_to_channel_a(chanid);
--		break;
--	case B43_PHYTYPE_B:
--		status.phymode = MODE_IEEE80211B;
--		status.freq = chanid + 2400;
--		status.channel = b43_freq_to_channel_bg(chanid + 2400);
-+		B43_WARN_ON(1);
-+		/* FIXME: We don't really know which value the "chanid" contains.
-+		 *        So the following assignment might be wrong. */
-+		status.channel = chanid;
-+		status.freq = b43_channel_to_freq_5ghz(status.channel);
- 		break;
- 	case B43_PHYTYPE_G:
- 		status.phymode = MODE_IEEE80211G;
-+		/* chanid is the radio channel cookie value as used
-+		 * to tune the radio. */
- 		status.freq = chanid + 2400;
--		status.channel = b43_freq_to_channel_bg(chanid + 2400);
-+		status.channel = b43_freq_to_channel_2ghz(status.freq);
-+		break;
-+	case B43_PHYTYPE_N:
-+		status.phymode = 0xDEAD /*FIXME MODE_IEEE80211N*/;
-+		/* chanid is the SHM channel cookie. Which is the plain
-+		 * channel number in b43. */
-+		status.channel = chanid;
-+		if (chanstat & B43_RX_CHAN_5GHZ)
-+			status.freq = b43_freq_to_channel_5ghz(status.freq);
-+		else
-+			status.freq = b43_freq_to_channel_2ghz(status.freq);
- 		break;
- 	default:
- 		B43_WARN_ON(1);
-+		goto drop;
- 	}
- 
- 	dev->stats.last_rx = jiffies;
-diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/main.h.orig linux-2.6.23.noarch/drivers/net/wireless/b43/main.h
---- linux-2.6.23.noarch/drivers/net/wireless/b43/main.h.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/b43/main.h	2008-01-08 20:15:18.000000000 -0500
-@@ -39,11 +39,11 @@
- #define PAD_BYTES(nr_bytes)		P4D_BYTES( __LINE__ , (nr_bytes))
- 
- /* Lightweight function to convert a frequency (in Mhz) to a channel number. */
--static inline u8 b43_freq_to_channel_a(int freq)
-+static inline u8 b43_freq_to_channel_5ghz(int freq)
- {
- 	return ((freq - 5000) / 5);
- }
--static inline u8 b43_freq_to_channel_bg(int freq)
-+static inline u8 b43_freq_to_channel_2ghz(int freq)
+diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
+index 50775f9..18b1f91 100644
+--- a/drivers/net/wireless/rt2x00/rt2500usb.c
++++ b/drivers/net/wireless/rt2x00/rt2500usb.c
+@@ -257,7 +257,7 @@ static const struct rt2x00debug rt2500usb_rt2x00debug = {
+ static void rt2500usb_config_mac_addr(struct rt2x00_dev *rt2x00dev,
+ 				      __le32 *mac)
  {
- 	u8 channel;
- 
-@@ -54,19 +54,13 @@ static inline u8 b43_freq_to_channel_bg(
- 
- 	return channel;
- }
--static inline u8 b43_freq_to_channel(struct b43_wldev *dev, int freq)
--{
--	if (dev->phy.type == B43_PHYTYPE_A)
--		return b43_freq_to_channel_a(freq);
--	return b43_freq_to_channel_bg(freq);
--}
- 
- /* Lightweight function to convert a channel number to a frequency (in Mhz). */
--static inline int b43_channel_to_freq_a(u8 channel)
-+static inline int b43_channel_to_freq_5ghz(u8 channel)
- {
- 	return (5000 + (5 * channel));
- }
--static inline int b43_channel_to_freq_bg(u8 channel)
-+static inline int b43_channel_to_freq_2ghz(u8 channel)
- {
- 	int freq;
- 
-@@ -77,12 +71,6 @@ static inline int b43_channel_to_freq_bg
- 
- 	return freq;
+-	rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR2, &mac,
++	rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR2, mac,
+ 				      (3 * sizeof(__le16)));
  }
--static inline int b43_channel_to_freq(struct b43_wldev *dev, u8 channel)
--{
--	if (dev->phy.type == B43_PHYTYPE_A)
--		return b43_channel_to_freq_a(channel);
--	return b43_channel_to_freq_bg(channel);
--}
- 
- static inline int b43_is_cck_rate(int rate)
- {
-diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h.orig linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h
---- linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/b43/xmit.h	2008-01-08 20:15:18.000000000 -0500
-@@ -142,49 +142,56 @@ struct b43_rxhdr_fw4 {
- } __attribute__ ((__packed__));
- 
- /* PHY RX Status 0 */
--#define B43_RX_PHYST0_GAINCTL	0x4000	/* Gain Control */
--#define B43_RX_PHYST0_PLCPHCF	0x0200
--#define B43_RX_PHYST0_PLCPFV	0x0100
--#define B43_RX_PHYST0_SHORTPRMBL	0x0080	/* Received with Short Preamble */
-+#define B43_RX_PHYST0_GAINCTL		0x4000 /* Gain Control */
-+#define B43_RX_PHYST0_PLCPHCF		0x0200
-+#define B43_RX_PHYST0_PLCPFV		0x0100
-+#define B43_RX_PHYST0_SHORTPRMBL	0x0080 /* Received with Short Preamble */
- #define B43_RX_PHYST0_LCRS		0x0040
--#define B43_RX_PHYST0_ANT		0x0020	/* Antenna */
--#define B43_RX_PHYST0_UNSRATE	0x0010
-+#define B43_RX_PHYST0_ANT		0x0020 /* Antenna */
-+#define B43_RX_PHYST0_UNSRATE		0x0010
- #define B43_RX_PHYST0_CLIP		0x000C
- #define B43_RX_PHYST0_CLIP_SHIFT	2
--#define B43_RX_PHYST0_FTYPE		0x0003	/* Frame type */
--#define  B43_RX_PHYST0_CCK		0x0000	/* Frame type: CCK */
--#define  B43_RX_PHYST0_OFDM		0x0001	/* Frame type: OFDM */
--#define  B43_RX_PHYST0_PRE_N	0x0002	/* Pre-standard N-PHY frame */
--#define  B43_RX_PHYST0_STD_N	0x0003	/* Standard N-PHY frame */
-+#define B43_RX_PHYST0_FTYPE		0x0003 /* Frame type */
-+#define  B43_RX_PHYST0_CCK		0x0000 /* Frame type: CCK */
-+#define  B43_RX_PHYST0_OFDM		0x0001 /* Frame type: OFDM */
-+#define  B43_RX_PHYST0_PRE_N		0x0002 /* Pre-standard N-PHY frame */
-+#define  B43_RX_PHYST0_STD_N		0x0003 /* Standard N-PHY frame */
- 
- /* PHY RX Status 2 */
--#define B43_RX_PHYST2_LNAG		0xC000	/* LNA Gain */
-+#define B43_RX_PHYST2_LNAG		0xC000 /* LNA Gain */
- #define B43_RX_PHYST2_LNAG_SHIFT	14
--#define B43_RX_PHYST2_PNAG		0x3C00	/* PNA Gain */
-+#define B43_RX_PHYST2_PNAG		0x3C00 /* PNA Gain */
- #define B43_RX_PHYST2_PNAG_SHIFT	10
--#define B43_RX_PHYST2_FOFF		0x03FF	/* F offset */
-+#define B43_RX_PHYST2_FOFF		0x03FF /* F offset */
- 
- /* PHY RX Status 3 */
--#define B43_RX_PHYST3_DIGG		0x1800	/* DIG Gain */
-+#define B43_RX_PHYST3_DIGG		0x1800 /* DIG Gain */
- #define B43_RX_PHYST3_DIGG_SHIFT	11
--#define B43_RX_PHYST3_TRSTATE	0x0400	/* TR state */
-+#define B43_RX_PHYST3_TRSTATE		0x0400 /* TR state */
- 
- /* MAC RX Status */
--#define B43_RX_MAC_BEACONSENT	0x00008000	/* Beacon send flag */
--#define B43_RX_MAC_KEYIDX		0x000007E0	/* Key index */
--#define B43_RX_MAC_KEYIDX_SHIFT	5
--#define B43_RX_MAC_DECERR		0x00000010	/* Decrypt error */
--#define B43_RX_MAC_DEC		0x00000008	/* Decryption attempted */
--#define B43_RX_MAC_PADDING		0x00000004	/* Pad bytes present */
--#define B43_RX_MAC_RESP		0x00000002	/* Response frame transmitted */
--#define B43_RX_MAC_FCSERR		0x00000001	/* FCS error */
-+#define B43_RX_MAC_RXST_VALID		0x01000000 /* PHY RXST valid */
-+#define B43_RX_MAC_TKIP_MICERR		0x00100000 /* TKIP MIC error */
-+#define B43_RX_MAC_TKIP_MICATT		0x00080000 /* TKIP MIC attempted */
-+#define B43_RX_MAC_AGGTYPE		0x00060000 /* Aggregation type */
-+#define B43_RX_MAC_AGGTYPE_SHIFT	17
-+#define B43_RX_MAC_AMSDU		0x00010000 /* A-MSDU mask */
-+#define B43_RX_MAC_BEACONSENT		0x00008000 /* Beacon sent flag */
-+#define B43_RX_MAC_KEYIDX		0x000007E0 /* Key index */
-+#define B43_RX_MAC_KEYIDX_SHIFT		5
-+#define B43_RX_MAC_DECERR		0x00000010 /* Decrypt error */
-+#define B43_RX_MAC_DEC			0x00000008 /* Decryption attempted */
-+#define B43_RX_MAC_PADDING		0x00000004 /* Pad bytes present */
-+#define B43_RX_MAC_RESP			0x00000002 /* Response frame transmitted */
-+#define B43_RX_MAC_FCSERR		0x00000001 /* FCS error */
- 
- /* RX channel */
--#define B43_RX_CHAN_GAIN		0xFC00	/* Gain */
--#define B43_RX_CHAN_GAIN_SHIFT	10
--#define B43_RX_CHAN_ID		0x03FC	/* Channel ID */
--#define B43_RX_CHAN_ID_SHIFT	2
--#define B43_RX_CHAN_PHYTYPE		0x0003	/* PHY type */
-+#define B43_RX_CHAN_40MHZ		0x1000 /* 40 Mhz channel width */
-+#define B43_RX_CHAN_5GHZ		0x0800 /* 5 Ghz band */
-+#define B43_RX_CHAN_ID			0x07F8 /* Channel ID */
-+#define B43_RX_CHAN_ID_SHIFT		3
-+#define B43_RX_CHAN_PHYTYPE		0x0007 /* PHY type */
-+
- 
- u8 b43_plcp_get_ratecode_cck(const u8 bitrate);
- u8 b43_plcp_get_ratecode_ofdm(const u8 bitrate);
-diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h.orig linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h
---- linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h.orig	2008-01-08 20:02:56.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/b43/b43.h	2008-01-08 20:15:18.000000000 -0500
-@@ -273,6 +273,8 @@ enum {
- #define B43_PHYTYPE_A			0x00
- #define B43_PHYTYPE_B			0x01
- #define B43_PHYTYPE_G			0x02
-+#define B43_PHYTYPE_N			0x04
-+#define B43_PHYTYPE_LP			0x05
  
- /* PHYRegisters */
- #define B43_PHY_ILT_A_CTRL		0x0072
-diff -up linux-2.6.23.noarch/drivers/ssb/scan.c.orig linux-2.6.23.noarch/drivers/ssb/scan.c
---- linux-2.6.23.noarch/drivers/ssb/scan.c.orig	2008-01-08 20:02:57.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/scan.c	2008-01-08 20:15:18.000000000 -0500
-@@ -388,6 +388,17 @@ int ssb_bus_scan(struct ssb_bus *bus,
- 		case SSB_DEV_PCI:
- 		case SSB_DEV_PCIE:
- #ifdef CONFIG_SSB_DRIVER_PCICORE
-+			if (bus->bustype == SSB_BUSTYPE_PCI) {
-+				/* Ignore PCI cores on PCI-E cards.
-+				 * Ignore PCI-E cores on PCI cards. */
-+				if (dev->id.coreid == SSB_DEV_PCI) {
-+					if (bus->host_pci->is_pcie)
-+						continue;
-+				} else {
-+					if (!bus->host_pci->is_pcie)
-+						continue;
-+				}
-+			}
- 			if (bus->pcicore.dev) {
- 				ssb_printk(KERN_WARNING PFX
- 					   "WARNING: Multiple PCI(E) cores found\n");




More information about the fedora-extras-commits mailing list