rpms/kernel/F-8 linux-2.6-wireless-pending-too.patch, NONE, 1.1 config-generic, 1.43, 1.44 kernel.spec, 1.312, 1.313 linux-2.6-ath5k.patch, 1.11, 1.12 linux-2.6-rtl8180.patch, 1.5, 1.6 linux-2.6-wireless-pending.patch, 1.21, 1.22 linux-2.6-wireless.patch, 1.17, 1.18

John W. Linville (linville) fedora-extras-commits at redhat.com
Wed Jan 9 21:50:04 UTC 2008


Author: linville

Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24518

Modified Files:
	config-generic kernel.spec linux-2.6-ath5k.patch 
	linux-2.6-rtl8180.patch linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Added Files:
	linux-2.6-wireless-pending-too.patch 
Log Message:
More wireless fixes for 2.6.24 ; More wireless update for 2.6.25 ; Enable CONFIG_NL80211

linux-2.6-wireless-pending-too.patch:

--- NEW FILE linux-2.6-wireless-pending-too.patch ---
commit 6e800de90057baf13db333925fd7f60b8ce3ce5c
Author: Michael Buesch <mb at bu3sch.de>
Date:   Mon Jan 7 12:55:14 2008 +0100

    b43: Add N-PHY related initvals firmware filenames.
    
    This adds the initval filenames for the N-PHY firmware.
    
    Signed-off-by: Michael Buesch <mb at bu3sch.de>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit b6fe1a29bc20dcbb1cfb0c08c1445c8c7efcca4a
Author: Michael Buesch <mb at bu3sch.de>
Date:   Thu Dec 27 22:15:11 2007 +0100

    b43: Fix tim search buffer overrun
    
    Use the length of the variable section of the beacon instead of the
    whole beacon length for bounds checking.
    
    Signed-off-by: Michael Buesch <mb at bu3sch.de>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 8c695644e98abe9161353911e96c46d29f083602
Author: Michael Buesch <mb at bu3sch.de>
Date:   Wed Dec 26 18:26:17 2007 +0100

    b43: Put multicast frames on the mcast queue
    
    This queues frames flagged as "send after DTIM" by mac80211
    on the special multicast queue. The firmware will take care
    to send the packet after the DTIM.
    
    Signed-off-by: Michael Buesch <mb at bu3sch.de>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit a3a783dbab5b4d5658853a63173de36fa1ceba4e
Author: Michael Buesch <mb at bu3sch.de>
Date:   Wed Dec 26 18:04:14 2007 +0100

    b43: Fix template upload locking.
    
    This fixes the template upload locking.
    
    Signed-off-by: Michael Buesch <mb at bu3sch.de>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 7837a7248fd2a9ca024672fad13d78fb96b509c4
Author: Michael Buesch <mb at bu3sch.de>
Date:   Wed Dec 26 17:47:10 2007 +0100

    b43: Fix upload of beacon packets to the hardware
    
    This fixes uploading of the beacon data and writing of the
    TIM and DTIM offsets.
    
    Signed-off-by: Michael Buesch <mb at bu3sch.de>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 05ed2e2a9f0ca366e6485cd449e15d811d5824f4
Author: Johannes Berg <johannes at sipsolutions.net>
Date:   Fri Dec 28 14:32:58 2007 +0100

    mac80211: add unified BSS configuration
    
    This patch (based on Ron Rindjunsky's) creates a framework for
    a unified way to pass BSS configuration to drivers that require
    the information, e.g. for implementing power save mode.
    
    This patch introduces new ieee80211_bss_conf structure that is
    passed to the driver via the new bss_info_changed() callback
    when the BSS configuration changes.
    
    This new BSS configuration infrastructure adds the following
    new features:
     * drivers are notified of their association AID
     * drivers are notified of association status
    
    and replaces the erp_ie_changed() callback. The patch also does
    the relevant driver updates for the latter change.
    
    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 485df9d39dfb4f605112eaada132fe5cfe9cb4cf
Author: Michael Wu <flamingice at sourmilk.net>
Date:   Tue Dec 25 19:33:16 2007 -0500

    mac80211: Fix rate reporting regression
    
    Mattias Nissler's "clean up rate selection" patch incorrectly changes
    the behavior of txrate setting in sta_info. This patch backs out parts
    of the rate selection consolidation in order to fix this issue for now.
    
    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 50877fc64e189084730b427fc368d5baea3843bc
Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
Date:   Tue Dec 25 17:00:38 2007 +0200

    iwlwifi: A-MPDU Rx flow enabled
    
    This patch enables the A-MPDU Rx flow. it contains several
    adjustments to new mac80211 A-MPDU Rx flow.
    
    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 53f048e222c934188bab5a32322d8a26ad641def
Author: Luis R. Rodriguez <mcgrof at gmail.com>
Date:   Fri Jan 4 02:21:05 2008 -0500

    ath5k: Fix frame duration oops
    
    This patch fixes an oops which was introduced as a regression by
    commit fd640775bd16e1df50c867cc547af0, on the patch titled,
    "mac80211: dont use interface indices in drivers".
    
    ieee80211_generic_frame_duration() now relies on sdata->flags which
    itself gets set upon bringing the interface up. We check for the
    virtual interface now before setting the rate duration registers.
    
    After the mode changes are introduced onto mac80211 we should revisit
    these changes.
    
    This patch was tested on the following cards:
    
    1) BG card:
    
    Atheros AR5213A chip found (MAC: 0x59, PHY: 0x43)
    RF2112A 2GHz radio found (0x46)
    
    2) ABG card:
    
    Atheros AR5213A chip found (MAC: 0x59,PHY: 0x43)
    RF5112A multiband radio found (0x36)
    
    Signed-off-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 072ab827589fea779ef985a58a3df8b4000d86e4
Author: Johannes Berg <johannes at sipsolutions.net>
Date:   Wed Dec 19 02:03:35 2007 +0100

    mac80211: implement cfg80211 station handling
    
    This implements station handling from userspace via cfg80211
    in mac80211.
    
    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit d0196ba509aec362ce64c5abe556d194543460fc
Author: Johannes Berg <johannes at sipsolutions.net>
Date:   Wed Dec 19 02:03:33 2007 +0100

    mac80211: add beacon configuration via cfg80211
    
    This patch implements the cfg80211 hooks for configuring beaconing
    on an access point interface in mac80211. While doing so, it fixes
    a number of races that could badly crash the machine when the
    beacon is changed while being requested by the driver.
    
    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit f0ff12a38ebef5d337fee1163d6b1af12bea06ea
Author: Johannes Berg <johannes at sipsolutions.net>
Date:   Wed Dec 19 01:31:27 2007 +0100

    mac80211: move interface type to vif structure
    
    Drivers that support mixed AP/STA operation may well need to
    know the type of a virtual interface when iterating over them.
    The easiest way to support that is to move the interface type
    variable into the vif structure.
    
    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit a412b81a63d76d071bddcb0b24c04168a8b3bf0a
Author: Johannes Berg <johannes at sipsolutions.net>
Date:   Wed Dec 19 01:31:26 2007 +0100

    mac80211: dont use interface indices in drivers
    
    This patch gets rid of the if_id stuff where possible in favour of
    a new per-virtual-interface structure "struct ieee80211_vif". This
    structure is located at the end of the per-interface structure and
    contains a variable length driver-use data area.
    
    This has two advantages:
     * removes the need to look up interfaces by if_id, this is better
       for working with network namespaces and performance
     * allows drivers to store and retrieve per-interface data without
       having to allocate own lists/hash tables
    
[...4250 lines suppressed...]
 		memcpy(&intf->bssid, conf->mac_addr, ETH_ALEN);
@@ -265,7 +265,8 @@ int rt2x00mac_config(struct ieee80211_hw
 }
 EXPORT_SYMBOL_GPL(rt2x00mac_config);
 
-int rt2x00mac_config_interface(struct ieee80211_hw *hw, int if_id,
+int rt2x00mac_config_interface(struct ieee80211_hw *hw,
+			       struct ieee80211_vif *vif,
 			       struct ieee80211_if_conf *conf)
 {
 	struct rt2x00_dev *rt2x00dev = hw->priv;
@@ -341,23 +342,27 @@ int rt2x00mac_get_tx_stats(struct ieee80
 }
 EXPORT_SYMBOL_GPL(rt2x00mac_get_tx_stats);
 
-void rt2x00mac_erp_ie_changed(struct ieee80211_hw *hw, u8 changes,
-			      int cts_protection, int preamble)
+void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
+				struct ieee80211_vif *vif,
+				struct ieee80211_bss_conf *bss_conf,
+				u32 changes)
 {
 	struct rt2x00_dev *rt2x00dev = hw->priv;
 	int short_preamble;
 	int ack_timeout;
 	int ack_consume_time;
 	int difs;
+	int preamble;
 
 	/*
 	 * We only support changing preamble mode.
 	 */
-	if (!(changes & IEEE80211_ERP_CHANGE_PREAMBLE))
+	if (!(changes & BSS_CHANGED_ERP_PREAMBLE))
 		return;
 
-	short_preamble = !preamble;
-	preamble = !!(preamble) ? PREAMBLE : SHORT_PREAMBLE;
+	short_preamble = bss_conf->use_short_preamble;
+	preamble = bss_conf->use_short_preamble ?
+				SHORT_PREAMBLE : PREAMBLE;
 
 	difs = (hw->conf.flags & IEEE80211_CONF_SHORT_SLOT_TIME) ?
 		SHORT_DIFS : DIFS;
@@ -373,7 +378,7 @@ void rt2x00mac_erp_ie_changed(struct iee
 	rt2x00dev->ops->lib->config_preamble(rt2x00dev, short_preamble,
 					     ack_timeout, ack_consume_time);
 }
-EXPORT_SYMBOL_GPL(rt2x00mac_erp_ie_changed);
+EXPORT_SYMBOL_GPL(rt2x00mac_bss_info_changed);
 
 int rt2x00mac_conf_tx(struct ieee80211_hw *hw, int queue,
 		      const struct ieee80211_tx_queue_params *params)
diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c
--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c	2008-01-09 16:27:09.000000000 -0500
@@ -1832,7 +1832,7 @@ static const struct ieee80211_ops rt2500
 	.configure_filter	= rt2500pci_configure_filter,
 	.get_stats		= rt2x00mac_get_stats,
 	.set_retry_limit	= rt2500pci_set_retry_limit,
-	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
+	.bss_info_changed	= rt2x00mac_bss_info_changed,
 	.conf_tx		= rt2x00mac_conf_tx,
 	.get_tx_stats		= rt2x00mac_get_tx_stats,
 	.get_tsf		= rt2500pci_get_tsf,
diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c
--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c	2008-01-09 16:27:09.000000000 -0500
@@ -2440,7 +2440,7 @@ static const struct ieee80211_ops rt61pc
 	.configure_filter	= rt61pci_configure_filter,
 	.get_stats		= rt2x00mac_get_stats,
 	.set_retry_limit	= rt61pci_set_retry_limit,
-	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
+	.bss_info_changed	= rt2x00mac_bss_info_changed,
 	.conf_tx		= rt2x00mac_conf_tx,
 	.get_tx_stats		= rt2x00mac_get_tx_stats,
 	.get_tsf		= rt61pci_get_tsf,
diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c
--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-01-09 16:27:09.000000000 -0500
@@ -2022,7 +2022,7 @@ static const struct ieee80211_ops rt73us
 	.configure_filter	= rt73usb_configure_filter,
 	.get_stats		= rt2x00mac_get_stats,
 	.set_retry_limit	= rt73usb_set_retry_limit,
-	.erp_ie_changed		= rt2x00mac_erp_ie_changed,
+	.bss_info_changed	= rt2x00mac_bss_info_changed,
 	.conf_tx		= rt2x00mac_conf_tx,
 	.get_tx_stats		= rt2x00mac_get_tx_stats,
 	.get_tsf		= rt73usb_get_tsf,
diff -up linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c.orig linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c
--- linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-09 16:27:09.000000000 -0500
@@ -533,7 +533,7 @@ static inline void ath5k_hw_write_rate_d
 		 * ieee80211_duration() for a brief description of
 		 * what rate we should choose to TX ACKs. */
 		tx_time = ieee80211_generic_frame_duration(sc->hw,
-			sc->iface_id, 10, control_rate->rate_kbps/100);
+			sc->vif, 10, control_rate->rate_kbps/100);
 
 		ath5k_hw_reg_write(ah, tx_time, reg);
 
@@ -734,8 +734,12 @@ int ath5k_hw_reset(struct ath5k_hw *ah, 
 		if (ret)
 			return ret;
 
-		/* Write rate duration table */
-		if (ah->ah_version == AR5K_AR5212)
+		/* Write rate duration table only on AR5212 and if
+		 * virtual interface has already been brought up
+		 * XXX: rethink this after new mode changes to
+		 * mac80211 are integrated */
+		if (ah->ah_version == AR5K_AR5212 &&
+			ah->ah_sc->vif != NULL)
 			ath5k_hw_write_rate_duration(ah, driver_mode);
 
 		/*
diff -up linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c.orig linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c
--- linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-09 16:27:09.000000000 -0500
@@ -178,7 +178,8 @@ static void ath5k_remove_interface(struc
 		struct ieee80211_if_init_conf *conf);
 static int ath5k_config(struct ieee80211_hw *hw,
 		struct ieee80211_conf *conf);
-static int ath5k_config_interface(struct ieee80211_hw *hw, int if_id,
+static int ath5k_config_interface(struct ieee80211_hw *hw,
+		struct ieee80211_vif *vif,
 		struct ieee80211_if_conf *conf);
 static void ath5k_configure_filter(struct ieee80211_hw *hw,
 		unsigned int changed_flags,
@@ -2505,12 +2506,12 @@ static int ath5k_add_interface(struct ie
 	int ret;
 
 	mutex_lock(&sc->lock);
-	if (sc->iface_id) {
+	if (sc->vif) {
 		ret = 0;
 		goto end;
 	}
 
-	sc->iface_id = conf->if_id;
+	sc->vif = conf->vif;
 
 	switch (conf->type) {
 	case IEEE80211_IF_TYPE_STA:
@@ -2535,10 +2536,10 @@ ath5k_remove_interface(struct ieee80211_
 	struct ath5k_softc *sc = hw->priv;
 
 	mutex_lock(&sc->lock);
-	if (sc->iface_id != conf->if_id)
+	if (sc->vif != conf->vif)
 		goto end;
 
-	sc->iface_id = 0;
+	sc->vif = NULL;
 end:
 	mutex_unlock(&sc->lock);
 }
@@ -2556,7 +2557,7 @@ ath5k_config(struct ieee80211_hw *hw,
 }
 
 static int
-ath5k_config_interface(struct ieee80211_hw *hw, int if_id,
+ath5k_config_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 			struct ieee80211_if_conf *conf)
 {
 	struct ath5k_softc *sc = hw->priv;
@@ -2567,7 +2568,7 @@ ath5k_config_interface(struct ieee80211_
 	 * be set to mac80211's value at ath5k_config(). */
 	sc->bintval = 1000 * 1000 / 1024;
 	mutex_lock(&sc->lock);
-	if (sc->iface_id != if_id) {
+	if (sc->vif != vif) {
 		ret = -EIO;
 		goto unlock;
 	}
diff -up linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h.orig linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h
--- linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-09 16:27:09.000000000 -0500
@@ -123,7 +123,7 @@ struct ath5k_softc {
 	unsigned int		curmode;	/* current phy mode */
 	struct ieee80211_channel *curchan;	/* current h/w channel */
 
-	int 			iface_id;	/* add/remove_interface id */
+	struct ieee80211_vif *vif;
 
 	struct {
 		u8	rxflags;	/* radiotap rx flags */
diff -up linux-2.6.23.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.23.noarch/drivers/net/wireless/adm8211.c
--- linux-2.6.23.noarch/drivers/net/wireless/adm8211.c.orig	2008-01-09 16:26:43.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/adm8211.c	2008-01-09 16:27:09.000000000 -0500
@@ -1312,7 +1312,8 @@ static int adm8211_config(struct ieee802
 	return 0;
 }
 
-static int adm8211_config_interface(struct ieee80211_hw *dev, int if_id,
+static int adm8211_config_interface(struct ieee80211_hw *dev,
+				    struct ieee80211_vif *vif,
 				    struct ieee80211_if_conf *conf)
 {
 	struct adm8211_priv *priv = dev->priv;


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/config-generic,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- config-generic	4 Jan 2008 21:47:39 -0000	1.43
+++ config-generic	9 Jan 2008 21:49:04 -0000	1.44
@@ -1215,6 +1215,7 @@
 CONFIG_IEEE80211_SOFTMAC=m
 CONFIG_IEEE80211_SOFTMAC_DEBUG=y
 CONFIG_CFG80211=m
+CONFIG_NL80211=y
 
 CONFIG_ADM8211=m
 CONFIG_ATH5K=m
@@ -1266,7 +1267,6 @@
 CONFIG_IWL3945_DEBUG=y
 CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
 CONFIG_IWL3945_QOS=y
-# CONFIG_NL80211 is not set
 CONFIG_NORTEL_HERMES=m
 CONFIG_P54_COMMON=m
 CONFIG_P54_USB=m


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.312
retrieving revision 1.313
diff -u -r1.312 -r1.313
--- kernel.spec	9 Jan 2008 21:43:22 -0000	1.312
+++ kernel.spec	9 Jan 2008 21:49:04 -0000	1.313
@@ -693,6 +693,7 @@
 
 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
 Patch691: linux-2.6-ath5k.patch
 Patch692: linux-2.6-rtl8180.patch
@@ -1345,6 +1346,9 @@
 # add module alias for "zd1211rw-mac80211"
 ApplyPatch linux-2.6-zd1211rw-module-alias.patch
 
+# Some more 2.6.25 stuff, here due to upstream process anomalies...
+ApplyPatch linux-2.6-wireless-pending-too.patch
+
 # latest Intel driver for ich9
 ApplyPatch linux-2.6-netdev-e1000e-01.patch
 ApplyPatch linux-2.6-netdev-e1000e-02.patch
@@ -2049,6 +2053,11 @@
 
 
 %changelog
+* Wed Jan 09 2008 John W. Linville <linville at redhat.com> 2.6.23.13-104
+- More wireless fixes for 2.6.24
+- More wireless update for 2.6.25
+- Enable CONFIG_NL80211
+
 * Wed Jan 09 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.23.13-103
 - Linux 2.6.23.13
 

linux-2.6-ath5k.patch:

Index: linux-2.6-ath5k.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-ath5k.patch,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- linux-2.6-ath5k.patch	4 Jan 2008 21:47:39 -0000	1.11
+++ linux-2.6-ath5k.patch	9 Jan 2008 21:49:04 -0000	1.12
@@ -1,4 +1,15 @@
-commit a09d1e8fd6aaea60578d2cee852ec476da3e6b66
+commit c8b7de755e09acd128db3998747989e1c2b118c8
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Fri Dec 21 00:59:04 2007 +0100
+
+    ath5k: don't build by default
+    
+    Must have been hubris, everybody needs ath5k, right?
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f4d792831145e8daedcee7d7f2d6b2b902b9a43f
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 03:11:48 2007 +0200
 
@@ -11,7 +22,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit b46b4130750fd0e37c677a12382ec679845b07ff
+commit cd408c0f5efb63be272169ecd0b4e4a18622cbfd
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 03:10:27 2007 +0200
 
@@ -25,7 +36,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8d91d68029b494bbcc242633e5ce3fcfbcf10f0a
+commit 4319e64105ae8f7c066e77c5180caa1e8a191648
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 03:07:33 2007 +0200
 
@@ -40,7 +51,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 3077d9ecc53b14d946cedd87317a5163e2a66dc9
+commit f2e51a049df5d81e91478f63120a0ce3ade60363
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 03:03:01 2007 +0200
 
@@ -52,7 +63,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 528f1b9fa5d46d35ee076ec41860a74fb4d0a801
+commit 98b8b1b4f8b4edae53514f670b931a6e91a6530d
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 03:01:04 2007 +0200
 
@@ -64,7 +75,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 41cb0aa95ce0fcade56d267f3804284092360d24
+commit 180a0032ebfc26da729bad8af03ca309849949af
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 02:58:57 2007 +0200
 
@@ -76,7 +87,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8fb46b91e6ed72ccfefa6c3f4850b9b58c1463d1
+commit 014da3fa2471f44befbb28881845fff86b7290ec
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 02:55:52 2007 +0200
 
@@ -90,7 +101,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit b6aa459673f61c1288acebec013905a7256f3a5a
+commit 168e6d8c0b6f2cff05b7aa79983ead80e6943eaf
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 02:53:18 2007 +0200
 
@@ -102,7 +113,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit a7da8f9d4b256c6014edfe63079c4220e9430e68
+commit 9918e3d8a2cd0a4050203db294a22f974f2bb3d5
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Dec 16 02:47:55 2007 +0200
 
@@ -115,7 +126,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8e685b758aea2c0e82f41813690e229543af9622
+commit 4cd93d7f382ffd81c87664bc5ef42d323219734c
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Dec 14 18:48:57 2007 +0900
 
@@ -130,7 +141,7 @@
     Signed-off-by: Bruno Randolf <bruno at thinktube.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit fc0374171b9f750790b88b795aac3becf4524a92
+commit e1de9954d1bcacbd97c5ca6590a6f371e792d2e1
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Mon Dec 10 19:21:17 2007 +0900
 
@@ -161,7 +172,7 @@
     Acked-by: Jiri Slaby <jirislaby at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 73a8222564a86bf9e38470dbfe44a4826c5d3a0a
+commit d27966de73873eaf4acc58fa1efec76914b3c248
 Author: Dave Young <hidave.darkstar at gmail.com>
 Date:   Fri Dec 7 10:12:58 2007 +0800
 
@@ -175,7 +186,7 @@
     Signed-off-by: Dave Young <hidave.darkstar at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1a54daf7f3963bd1c04cc28500f48280d6c8dcf3
+commit 2b4710b100b5a14ef5cde9d2cc4f6a3a3fc82d45
 Author: Francesco Gringoli <francesco.gringoli at ing.unibs.it>
 Date:   Thu Nov 29 21:39:51 2007 +0100
 
@@ -191,7 +202,7 @@
     Signed-off-by: Francesco Gringoli <francesco.gringoli at ing.unibs.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 04f840943842a4870fd1ddd735140dd0ba73f984
+commit b9a3a7961b63f58ecabddd35d26364c77f66e93d
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Nov 30 11:26:37 2007 +0900
 
@@ -211,7 +222,7 @@
     Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8003ffec8e1dca7224fd9e2a8adf8e887197c32c
+commit a10add49914144ff6412196b6cffdd778b1ffaa0
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Nov 30 11:26:36 2007 +0900
 
@@ -226,7 +237,7 @@
     Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 335223282459681668ebb0247530020e777d84f5
+commit f1029b306ec99db87cf1a1906e8d570c2b7f81be
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Nov 30 11:26:35 2007 +0900
 
@@ -249,7 +260,7 @@
     Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 93be8761d08247a45a095b4d9ebdf16ba0c66b68
+commit 39e8b9ccfa5183bd209e8c650e34b50ace6fae54
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Nov 30 11:26:34 2007 +0900
 
@@ -297,7 +308,7 @@
     Acked-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 07700ba6c1fe652f0c0b9ad5b9d6525664740cf4
+commit 78b9bcc8def7f63f3c43d9f065c570a7d6d43ab4
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Nov 30 11:26:33 2007 +0900
 
@@ -331,7 +342,7 @@
     Acked-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit fd5be00a58244ffd045c5b5fa1eb4e2279d8c5b3
+commit 93970cff4d723ae4b909a5f2e496f2e056b9f2ef
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Wed Nov 14 19:49:49 2007 +0200
 
@@ -343,7 +354,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit e856715ffedc6b73c546d5f472e4cd876703091d
+commit 7b5fc553e1783b7533b3b69258ba1d633604626c
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Wed Nov 14 18:23:59 2007 +0200
 
@@ -364,7 +375,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 838904d60eeab7d4206451a5503d80a0ef8a2884
+commit f14ab741b4094f8ed12533f4febb49524b0843bb
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Wed Nov 14 18:17:37 2007 +0200
 
@@ -380,7 +391,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 93e5669cf00f5323f65303c4ef096e0c8919d292
+commit a1fb4384f3c9e93e3bdf910d8543e1fc0d75a0e7
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Wed Nov 14 18:14:40 2007 +0200
 
@@ -393,7 +404,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 41bf49ef5be651dfe06e597389a0237ce5298d20
+commit a059fd5d1987ebea519c7d2d2822926c1c2d08ee
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Wed Nov 14 18:11:40 2007 +0200
 
@@ -411,7 +422,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1ce29f8277f8d9e44995f81e5986361fbdd87615
+commit 06b26c606786d2265a4d66b01541741b8f06726e
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Fri Nov 2 16:46:38 2007 -0400
 
@@ -439,7 +450,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 01584d2b0e88eea833c378d4da292f8a7e2a4a49
+commit 07516a921d2874a691b760ae9b9ed6f78b6a15b2
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 23:11:31 2007 -0400
 
@@ -464,7 +475,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 2e046652afab548b98ceee3043173e17cf7f7145
+commit bd0225b26f2e8bc3f776df3f985b141e2a27a240
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 17:55:53 2007 -0400
 
@@ -479,7 +490,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 9b83892f2c0a16f087dc45d7b8a6353c69c0fcfb
+commit a18255049206bc5825fa56953aa619f0a3981189
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 17:53:18 2007 -0400
 
@@ -494,7 +505,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit f75a5a95a1fc5287143afbeb99c0e238ef4cbd79
+commit f3d5e0ae18b14e85c2aaf6dab22b772cfbfb1a16
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 00:38:16 2007 -0400
 
@@ -510,7 +521,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 6f95039ebee8f0d79b940f06bcde1e0711334a83
+commit df19bdfe6ea2878a32b177e0996c3bf8824ac576
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 17:50:30 2007 -0400
 
@@ -530,7 +541,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 012198ddffdb66120528823c73318379b6a59a77
+commit dc3a890b378ab2cb258d122804ba8e4973351de9
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 00:35:20 2007 -0400
 
@@ -550,7 +561,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit e23be3f08baf10d7ded7eab076b68dc6696d230e
+commit 6f56a51c82c42c3de298ef21c7187bbf40e90285
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Nov 1 00:34:24 2007 -0400
 
@@ -575,7 +586,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 45cededd2df27b8c2a4b7c37a02c7f3830d1d243
+commit adef1b4fb9434fce0b6a036fb027dfb9baeac014
 Author: Ulrich Meis <meis at nets.rwth-aachen.de>
 Date:   Tue Oct 30 22:20:56 2007 +0100
 
@@ -588,7 +599,7 @@
     Signed-off-by: Ulrich Meis <meis at nets.rwth-aachen.de>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 168048516dbf42ca2deb3cd36101f9b76ecdb030
+commit 5f29323196f05b80ac05fc6da8342716a08995e4
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:58:27 2007 +0300
 
@@ -610,7 +621,7 @@
     Signed-Off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 7ed69f54e345a9897b0b4617311858303e781aff
+commit 727152d1b3d200a963cacd8c2d2b1cb12eb10ea0
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:44:18 2007 +0300
 
@@ -633,7 +644,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 24d2eab68057de8e63d262e84c0ba3a12a69f0c1
+commit 88b3108cf99eb0cd253eb98341f9d0022c02d522
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:31:13 2007 +0300
 
@@ -654,7 +665,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit d17a1cea1bfc35c735f3ebcf1ef823f06389748d
+commit 7b63c1e80c44c5e5669a963c1df01c549db21c00
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:24:59 2007 +0300
 
@@ -671,7 +682,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 85364fdd0649d1590e9ae18d1961c6861b7b9288
+commit 7227484241ea38e341c5953f8793b7903fd82b9b
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:20:33 2007 +0300
 
@@ -691,7 +702,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 73a0794c3746635652f10bcfe99821b3526163b5
+commit 2a12ca036a3058c28b003ce332c2a0e57d0baa18
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:13:32 2007 +0300
 
@@ -706,7 +717,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit e05ef94a6f9a5b2c485f552e46e334a2a4d17d85
+commit d24942d9e24bee128d5eb92cc7ebba25ef1b3588
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:06:42 2007 +0300
 
@@ -751,7 +762,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4528852951e6ad64171f584f6b685eb802f6293f
+commit 505a5f55ac6a514b9b11e34b11bde89a5dbdbfe3
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Sun Oct 28 02:04:25 2007 +0300
 
@@ -771,7 +782,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1f480e2920877d373e2a547cf53509fc513e02a9
+commit 1cfa5273bfba934b9e651c1b0244ecea9dd9267f
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Fri Oct 19 18:57:13 2007 -0400
 
@@ -788,7 +799,7 @@
     Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 96a596f082e92fcdf6308b6224104f93e8916394
+commit f05e8574a0f9fe0b8e4e3d407963dd49bca88f3e
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Tue Oct 23 13:41:37 2007 -0400
 
@@ -799,7 +810,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 05a920250b6385c7eb23a94f0532f94dbd4b6160
+commit 8d981085dde2f01ffe4375abe75d643792bfff3c
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Fri Oct 19 23:57:27 2007 +0900
 
@@ -816,7 +827,7 @@
     Signed-off-by: Bruno Randolf <bruno at thinktube.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 14ca910b99e3dc5a1082e7e7b13a2957ffe44fe0
+commit aa72b7a1758c4020c95a0e9922a609992fab34e4
 Author: Nick Kossifidis <mick at madwifi.org>
 Date:   Fri Oct 19 13:56:19 2007 +0000
 
@@ -834,7 +845,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 34edd82ca97a76b921ac52c99f07dbfe324feaae
+commit 6e3ccf09d90d05cee09a050f4e23d107cdcb97a1
 Author: mick at ics.forth.gr <mick at ics.forth.gr>
 Date:   Thu Oct 18 00:18:43 2007 +0300
 
@@ -848,7 +859,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4c367a11d4502a6e54fa64514cee61c67be9b411
+commit 80785589d7d1ae2199f575479775711da732f454
 Author: mick at ics.forth.gr <mick at ics.forth.gr>
 Date:   Thu Oct 18 00:17:12 2007 +0300
 
@@ -864,7 +875,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4472d002f92b4365184acd6d38e4e417afd5b857
+commit 4766bd970128740cb44eb7a25197797b019197be
 Author: mick at ics.forth.gr <mick at ics.forth.gr>
 Date:   Thu Oct 18 00:13:26 2007 +0300
 
@@ -883,7 +894,7 @@
     Signed-off-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 9d0d2389d863cc3ef433e5103bd6d37f7a5bc983
+commit 8d9d5b5d7bb9463e9cb5ad11957935dda4840361
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Wed Oct 17 15:01:48 2007 -0400
 
@@ -895,7 +906,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4cdfeb9398897c3969f89a8d32ad7632ead0fc6a
+commit 1b489431cccdd64bd7934c84ee214b973d5bd2d6
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Tue Oct 16 22:20:37 2007 +0900
 
@@ -907,7 +918,7 @@
     Acked-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 75b99ae66c33cfd5664102c2588ebd505577fc7e
+commit 1c9fe46bb427338312f2b8b744ba5303f97a6d77
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Sun Oct 14 10:45:54 2007 -0400
 
@@ -921,7 +932,7 @@
     Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 2ad8cab5071e6059c7333cac965f2b7e7a3342a5
+commit 49f80dff400c9a7ca12244cca6977ec3afa9b645
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Sat Oct 13 16:08:29 2007 -0400
 
@@ -954,7 +965,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 33e9ca7f21695f2f285833cd296f70a2cd345730
+commit 29e0f5dfa9d80228333dd15ac389f91a5df33229
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Fri Oct 12 11:07:09 2007 -0400
 
@@ -979,7 +990,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 953389189d1790b4346a43309719893400a31fc5
+commit 3112cb20a5efc5d59984643990e9dcb7fbeefdc2
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Fri Oct 12 11:05:43 2007 -0400
 
@@ -992,7 +1003,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8462b5d694f20a522ba4dfbb153648ba332b5627
+commit eac99ea545ae91b6b8625179caee7a337d286237
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Fri Oct 12 11:04:38 2007 -0400
 
@@ -1016,7 +1027,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit ad134b6e277058f4ce929fb4903bac8f2ffa2565
+commit 60964785b9f0cd09580689390d071fb1b7bad482
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Fri Oct 12 11:03:49 2007 -0400
 
@@ -1043,7 +1054,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit cc79ada2dc67857c1fd922e16ca3769a302f0b06
+commit e415fa9d482d60842d9ea4367e40dcfc628d0cdf
 Author: Bruno Randolf <bruno at thinktube.com>
 Date:   Mon Oct 15 21:30:38 2007 +0900
 
@@ -1061,7 +1072,7 @@
     Signed-off-by: Bruno Randolf <bruno at thinktube.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1c4a64df662171bf85081aea39d155c683966a56
+commit d3d208f9e217795a838bc86c5a791e4a06e86299
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Tue Oct 2 19:56:29 2007 -0400
 
@@ -1069,7 +1080,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit ac82c3d69dca0977ad408153109311faabaa73d3
+commit d4ea14a1d44516b070cad5007938192b8ed81f0f
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Fri Sep 28 11:26:16 2007 -0400
 
@@ -1088,7 +1099,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit a1f0e21e5ba549ae9208faf9076b0c807adca7c6
+commit fef2a2fcb5dd085dd065c3fe571dbb41ac9b4df6
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Sep 27 21:04:19 2007 -0400
 
@@ -1114,7 +1125,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 6a0f742dac6bd0c396eb24c021c6c048f496af6e
+commit ba1549c3f5be2c03beb6a55105e31f71e4d692b1
 Author: Bradley M. Kuhn <bkuhn at softwarefreedom.org>
 Date:   Thu Sep 27 18:58:24 2007 -0400
 
@@ -1156,7 +1167,7 @@
     Acked-by: Michael Taylor <mike.taylor at apprion.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4adaee6d7ab1bfd4d9709495a2cb97df4b5afed8
+commit 6e3405416da705b187d5b203a4426a39c91b97a4
 Author: Andrew Morton <akpm at linux-foundation.org>
 Date:   Thu Sep 20 14:02:31 2007 -0700
 
@@ -1167,7 +1178,7 @@
     Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 260dea31422e4c97b88b2f26474eac3b20ee76a4
+commit cd11fcee4006ff4bb9ab8cc018daa50c5f59a1d4
 Author: Stephen Hemminger <shemminger at linux-foundation.org>
 Date:   Tue Sep 18 10:06:47 2007 -0700
 
@@ -1178,7 +1189,7 @@
     Signed-off-by: Stephen Hemminger <shemminger at linux-foundation.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 6ebc3f5df03a301a173e10dd72b513fe23ecbbce
+commit f05bede87ac77674e8bca1ecaa38e127603a3175
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Sep 20 17:13:26 2007 -0400
 
@@ -1215,7 +1226,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit eae99b799ce2aff97ad9016cac834405678c3d6b
+commit 346a6c93de5ed9f19bb0e83a93de9170c302a990
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Wed Sep 26 14:04:10 2007 -0400
 
@@ -1231,7 +1242,7 @@
     Cc: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 9ab409d9f834472b2fdf9705cde52f8b4bc2436e
+commit a8ea32c2f68a931cba77fa4f87e98a33f71e3850
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Wed Sep 26 14:03:27 2007 -0400
 
@@ -1244,7 +1255,7 @@
     Cc: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 5034f1e5e0610667a77e8ac991255162e5fe9982
+commit b7d1c25c0d38efa15a3a496f3c224d88dd3b1a6f
 Author: Nick Kossifidis <mickflemm at gmail.com>
 Date:   Wed Sep 26 14:02:50 2007 -0400
 
@@ -1263,7 +1274,7 @@
     Cc: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit c0a7d16f73da9c33bd71ec8b303bc735f604350c
+commit 1124e682413ed56f4256249bf394f3ffe0ccf564
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Wed Sep 26 14:02:11 2007 -0400
 
@@ -1278,7 +1289,7 @@
     Cc: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 71b0b4547745b849f1a2535d37e02cff91cb83ad
+commit 55351cd4fcb0cc955b9111c60be8114e4554a0f0
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Mon Sep 17 17:31:51 2007 -0400
 
@@ -1299,7 +1310,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit aa03e9134b6aca4522e8f0a772f4509a5cfe4b13
+commit c4ddc3304c6ae8e0225ae2067e6241483a03f3e5
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Mon Sep 17 17:11:29 2007 -0400
 
@@ -1307,7 +1318,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit a05767ddbfb1138042b5f08c822a54610bd7d437
+commit fea5ce5b99361fe5341e94103e1f6bd03348307b
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Mon Sep 17 00:48:27 2007 -0400
 
@@ -1320,7 +1331,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit fb31173e6ccfbcadd9d7645a384c9add3ce7be4f
+commit 9e1fda939e3a5632b698fc1255344678a43d7214
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Mon Sep 17 00:01:09 2007 -0400
 
@@ -1332,7 +1343,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 5bc68c49c1bdbb92cfcbbea4a57a77b7067350fb
+commit 48d804ad5c68f1cb1b1dcaff25c036a23ab0c7eb
 Author: Krzysztof Halasa <khc at pm.waw.pl>
 Date:   Mon Sep 3 20:35:52 2007 +0200
 
@@ -1343,7 +1354,7 @@
     Signed-off-by: Krzysztof Halasa <khc at pm.waw.pl>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 967ee4db879de997e8aadb397317c691480cc9d9
+commit 27a834473cdb0f478b8476423bca96897daeeef8
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Sat Sep 15 11:05:32 2007 -0400
 
@@ -1351,7 +1362,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 847a9375af07c677f74934e24f779d90bcc9a7c7
+commit 58d4931278d3bdb768f2fae19e03418892f26143
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Mon Sep 10 16:00:38 2007 -0400
 
@@ -1370,7 +1381,7 @@
     Signed-off-by: Luis R. Rodriguez <mcgrof at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4ac1d5eb15b9f5a31568d06d38326059bacee642
+commit 6652e9e8c4037dfd5d3461c3f5e133bdfea3c0a8
 Author: Luis R. Rodriguez <mcgrof at gmail.com>
 Date:   Thu Sep 6 10:18:22 2007 -0400
 
@@ -1389,7 +1400,7 @@
     Changes-licensed-under: ISC
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 82f2f4094eddd1993b9f2bc0d53f26def57c3fae
+commit 15eebdfe01639313dcd585b1cffdacfc9c218290
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Tue Aug 28 11:59:54 2007 -0400
 
@@ -1403,7 +1414,7 @@
     Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit c2877048ec6f854d417e9141bb18cf4ae15f7b33
+commit 0c2a3e294f77d278e9145d17e7efcce1a2bd8a3c
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Sat Aug 25 03:59:28 2007 -0400
 
@@ -1418,7 +1429,7 @@
     Cc: <linville at tuxdriver.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 9d6c3cef55cbbd6f4358d9bd7a59a2b7655eaaa3
+commit c4a1e303676a67be1a14755f9eb367d3560d43c4
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Sat Aug 25 03:58:47 2007 -0400
 
@@ -1438,7 +1449,7 @@
     Cc: <linville at tuxdriver.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8695faaeffc78924829afb21fd7602dc3a4d81b9
+commit 45040418733e0c44634f4374c4bbc652e115d202
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Sat Aug 25 03:51:51 2007 -0400
 
@@ -1452,7 +1463,7 @@
     Cc: <linville at tuxdriver.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 5f56d31da11ddf176e313828d168365662ee7b19
+commit c68e3c811241892f7fa10bf23c32bda62bbf2857
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Sat Aug 25 03:57:26 2007 -0400
 
@@ -1466,7 +1477,7 @@
     Cc: <linville at tuxdriver.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit f2854f11abaef57d219103380ab8410eda6a4c83
+commit 55e002de32ea64392a7b7388b0c5458986226ba8
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Thu Aug 23 15:23:30 2007 -0400
 
@@ -1474,7 +1485,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 042c3bcd643fc46949ddd1e71d16ec1dcc0dcf18
+commit 6ffec76db19cd9d32d60dfdd0124021fb53937da
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Wed Aug 22 22:54:07 2007 +0200
 
@@ -1487,7 +1498,7 @@
     Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1fea1eeb34e4092d45e94e6c3e9f2c93b3bc268a
+commit 8667a78ef514cbba5ae87fe6d2f97416a8a29f0c
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Wed Aug 22 22:53:25 2007 +0200
 
@@ -1501,7 +1512,7 @@
     Signed-off-by: Jiri Slaby <jirislaby at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 88ee097caeeb0561c293296c03da47d3b6e688fb
+commit 031485773f72e11a680868574d3ebd3e43619b8a
 Author: akpm at linux-foundation.org <akpm at linux-foundation.org>
 Date:   Tue Aug 21 16:53:53 2007 -0700
 
@@ -1515,7 +1526,7 @@
     Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8ddf75b76f0b704971cb0df635557b5cad84ed7d
+commit b65e48d48b7c1f4f059f0f7966df051bcd27e404
 Author: akpm at linux-foundation.org <akpm at linux-foundation.org>
 Date:   Tue Aug 21 00:51:20 2007 -0700
 
@@ -1527,7 +1538,7 @@
     Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit cd59338a9249ea6f216ba291167fa9728f8bc1ce
+commit 3d32a0acdec33a60ee05a694a8443f502773743b
 Author: akpm at linux-foundation.org <akpm at linux-foundation.org>
 Date:   Tue Aug 21 00:42:32 2007 -0700
 
@@ -1540,7 +1551,7 @@
     Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit d58bf444cd868ce93b29501c013b2c057007eed5
+commit d3f368bdccdc14d781153b95bb3486e8e265d508
 Author: Jiri Slaby <jirislaby at gmail.com>
 Date:   Sun Aug 12 17:33:16 2007 +0200
 
@@ -1552,8 +1563,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-04 15:36:06.000000000 -0500
-+++ linux-2.6.23.noarch/MAINTAINERS	2008-01-04 15:36:37.000000000 -0500
+--- linux-2.6.23.noarch/MAINTAINERS.orig	2008-01-09 14:23:27.000000000 -0500
++++ linux-2.6.23.noarch/MAINTAINERS	2008-01-09 14:28:44.000000000 -0500
 @@ -642,6 +642,17 @@ M:	ecashin at coraid.com
  W:	http://www.coraid.com/support/linux
  S:	Supported
@@ -1573,8 +1584,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-04 15:36:06.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile	2008-01-04 15:36:37.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig	2008-01-09 14:23:27.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Makefile	2008-01-09 14:28:44.000000000 -0500
 @@ -62,3 +62,5 @@ obj-$(CONFIG_RT2X00)		+= rt2x00/
  obj-$(CONFIG_P54_COMMON)	+= p54common.o
  obj-$(CONFIG_P54_USB)		+= p54usb.o
@@ -1582,16 +1593,15 @@
 +
 +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-04 15:36:06.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-04 15:36:37.000000000 -0500
-@@ -650,6 +650,24 @@ config P54_PCI
+--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig	2008-01-09 14:23:27.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-09 14:29:20.000000000 -0500
+@@ -650,6 +650,23 @@ config P54_PCI
  
  	  If you choose to build a module, it'll be called p54pci.
  
 +config ATH5K
 +	tristate "Atheros 5xxx wireless cards support"
 +	depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
-+	default m
 +	---help---
 +	  This module adds support for wireless adapters based on
 +	  Atheros 5xxx chipset.
@@ -1610,8 +1620,8 @@
  source "drivers/net/wireless/bcm43xx/Kconfig"
  source "drivers/net/wireless/b43/Kconfig"
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/phy.c	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,2071 @@
 +/*
 + * PHY functions
@@ -3685,8 +3695,8 @@
 +	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-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/ath5k.h	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,1153 @@
 +/*
 + * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -4842,14 +4852,14 @@
 +
 +#endif
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/Makefile	2008-01-09 14:28:44.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-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/reg.h	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,1987 @@
 +/*
 + * Copyright (c) 2007 Nick Kossifidis <mickflemm at gmail.com>
@@ -6839,8 +6849,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-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.h	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,500 @@
 +/*
 + * Copyright (c) 2004, 2005 Reyk Floeter <reyk at openbsd.org>
@@ -7343,8 +7353,8 @@
 +
 +#endif
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.h	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,216 @@
 +/*
 + * Copyright (c) 2007 Bruno Randolf <bruno at thinktube.com>
@@ -7563,8 +7573,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-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,4349 @@
 + /*
 + * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -11916,8 +11926,8 @@
 +	return -EIO;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.h	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,588 @@
 +/*
 + * Copyright (c) 2004-2007 Reyk Floeter <reyk at openbsd.org>
@@ -12508,8 +12518,8 @@
 +	return retval;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/initvals.c	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,1347 @@
 +/*
 + * Initial register settings functions
@@ -13859,8 +13869,8 @@
 +	return 0;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,2822 @@
 +/*-
 + * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -16685,8 +16695,8 @@
 +}
 +
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/debug.c	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,469 @@
 +/*
 + * Copyright (c) 2007 Bruno Randolf <bruno at thinktube.com>
@@ -17158,8 +17168,8 @@
 +
 +#endif /* if ATH5K_DEBUG */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,178 @@
 +/*-
 + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
@@ -17340,8 +17350,8 @@
 +
 +#endif
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c	2008-01-04 15:36:37.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/regdom.c	2008-01-09 14:28:44.000000000 -0500
 @@ -0,0 +1,121 @@
 +/*
 + * Copyright (c) 2004, 2005 Reyk Floeter <reyk at vantronix.net>

linux-2.6-rtl8180.patch:

Index: linux-2.6-rtl8180.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-rtl8180.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- linux-2.6-rtl8180.patch	4 Jan 2008 21:47:39 -0000	1.5
+++ linux-2.6-rtl8180.patch	9 Jan 2008 21:49:04 -0000	1.6
@@ -1,4 +1,65 @@
-commit 7156f27bc972aaaaf5241acfd40172da6b250e5c
+commit 386616bc13a8fdc0b87234aeceed6001a61bb1d6
+Author: Michael Wu <flamingice at sourmilk.net>
+Date:   Wed Dec 26 20:16:37 2007 -0500
+
+    rtl8180: remove calibration error message for rtl8225z2
+    
+    The radio seems to work fine despite this message. Remove it for now.
+    
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a414d3e4ab11bda7c914ab4c7416a106a89f40ac
+Author: Andrea Merello <andreamrl at tiscali.it>
+Date:   Wed Dec 26 20:16:37 2007 -0500
+
+    rtl8180: sync radio V2 code with vendor reference
+    
+    We have to set ofdm register 0x2 to 0x62 (0x64 is for rtl8187). We did this
+    correctly in init function, but we overwrite it when setting TX power.
+    As reference code suggest, we still rewrite it, but with right value.
+    
+    Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0bcb498ca8c8510d301b02a788abb70b43ea7703
+Author: Michael Wu <flamingice at sourmilk.net>
+Date:   Tue Dec 25 01:42:29 2007 -0500
+
+    rtl8180: Update Kconfig
+    
+    We should let people know what this is.
+    
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit b444e913ac42dd4adbd9b86db7104f9c68e30611
+Author: Michael Wu <flamingice at sourmilk.net>
+Date:   Tue Dec 25 01:23:59 2007 -0500
+
+    rtl818x: Use RF ops tables
+    
+    Unfortunately, merging the usb and pci rtl8225 rf code is currently
+    more pain than gain. Switch to RF ops tables to avoid symbol conflicts
+    when building in the rtl818x drivers.
+    
+    Signed-off-by: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 533c5787ba6b825c2eec9503bcd9627bcbc3b16e
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Mon Jan 7 23:05:12 2008 -0500
+
+    Revert "rtl8180: add "rtl8180_" to symbols in rtl8180_rtl8225.c"
+    
+    This reverts commit a2ef4d22ae8511739f2b1626ef1d56bb7d7454ad.
+    
+    Conflicts:
+    
+    	drivers/net/wireless/rtl8180_rtl8225.c
+
+commit 1867f3c5a292c022c4091d61ca1d1c139f764ee1
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Wed Dec 19 01:17:36 2007 -0500
 
@@ -14,7 +75,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 2c1911cfac77adeb1bfbd05e163d05cfd1770a98
+commit dd9c3109d768274207777c0ebdd21c2255ee03c2
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Wed Dec 19 01:17:36 2007 -0500
 
@@ -27,7 +88,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 01e862fb2436e93e15c96e9319ba332f6e8ce344
+commit 2a20f225f6b50c744641e017fb6e28ed96a68c1b
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Wed Dec 19 01:17:36 2007 -0500
 
@@ -39,7 +100,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit ca0fb53ceb4aa7fce24139c16075e07bde8a39a0
+commit 7261cb16044186c348fae87b5cfe40b6876d2252
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Wed Dec 19 01:17:35 2007 -0500
 
@@ -51,7 +112,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit df9943f67f1b791a00ee471fa327622a4df899f7
+commit 722375e8727325fae2a42522bd19e9c301bc4469
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Wed Dec 19 01:17:35 2007 -0500
 
@@ -64,7 +125,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 10b435a109dcb5741de8d9de10bd630137d2a2b6
+commit db3232abb1826b8b854c56d9cee7663be71ef03b
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Wed Dec 19 01:17:35 2007 -0500
 
@@ -83,7 +144,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 1bb9190fafae5bcd4cc2190d89fdcfeaa4e2b56e
+commit cdf0dbcdb455f387b763762dd659206cd097f820
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Tue Dec 18 17:28:44 2007 -0500
 
@@ -96,7 +157,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 4a5654152819d7ececdc3b484ff065e7aef46203
+commit ee172363a470b781d31c535b239a49cec7cdc88c
 Author: Johannes Berg <johannes at sipsolutions.net>
 Date:   Tue Dec 4 20:33:40 2007 +0100
 
@@ -109,7 +170,7 @@
     Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 3ed77a761f33d9d709349e75d5dc39465e0cff52
+commit 602fb63ec049cfe02c40b94e080818beb0326492
 Author: Michael Wu <flamingice at sourmilk.net>
 Date:   Mon Dec 3 22:55:08 2007 -0500
 
@@ -120,7 +181,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit e4062a578a14658007f78f587358603221c1f766
+commit ca6b137bd9bdcabf3872276e4215e0a4f22fe0e1
 Author: Pavel Roskin <proski at gnu.org>
 Date:   Sat Nov 24 20:35:25 2007 -0500
 
@@ -129,7 +190,7 @@
     Signed-off-by: Pavel Roskin <proski at gnu.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit d36bf4a65cc5e82dbac785adfd6238765ff7d1ef
+commit a2ef4d22ae8511739f2b1626ef1d56bb7d7454ad
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Mon Dec 3 21:43:26 2007 -0500
 
@@ -140,7 +201,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 0ef47702ac1d414db545c378ffa41a3c052f855c
+commit bce13f311c90c4b53da8267cf6a11042d3fc8bc0
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Sun Dec 2 17:17:51 2007 -0500
 
@@ -152,7 +213,7 @@
     Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 9f2098e01be9403d486dea5029624d0f9febb9af
+commit 3dc98653e13ad690e98d810cec3850f4f6cb4baa
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Sun Dec 2 17:17:51 2007 -0500
 
@@ -164,7 +225,7 @@
     Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit bff8c62a95511a4ba33150c9bf8e61725dae61a2
+commit 216f7b62e468a4876b50c4b959ac7d38f880fd95
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Sun Dec 2 17:17:51 2007 -0500
 
@@ -178,7 +239,7 @@
     Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 7a3a110a27f08294008da27d6f05c35de029e48b
+commit c5281862482acf002b9b73020801dcb12e1c3c70
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Sun Dec 2 17:17:51 2007 -0500
 
@@ -190,7 +251,7 @@
     Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 37c8bb6c3c83148c8dbb5a50968d8c0d6c273dc5
+commit 98e578b30fa5590021e651d40aee3cbac6a2dcac
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Sun Dec 2 17:17:51 2007 -0500
 
@@ -203,7 +264,7 @@
     Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 5300aa6958712cc9dd6def888a277bfdbdc1d8ce
+commit b3893ff34dc801983c40aa5ec804205cf916ed6d
 Author: Andrea Merello <andreamrl at tiscali.it>
 Date:   Sun Dec 2 17:17:51 2007 -0500
 
@@ -215,7 +276,7 @@
     Signed-off-by: Andrea Merello <andreamrl at tiscali.it>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 15ef977469ade9397a5c8502dd2d8efc5e3466a0
+commit 2cf3e2447ad48d82bdd3a87ac9799a501c81fd77
 Author: John W. Linville <linville at tuxdriver.com>
 Date:   Wed Nov 14 20:29:48 2007 -0500
 
@@ -223,7 +284,7 @@
     
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit daa725bf7e2184463022688ebd5954149c3a569c
+commit c47cc9b0ecad8888ee59c901adbe716693c77ff2
 Author: Michael Wu <flamingice at sourmilk.net>
 Date:   Wed Nov 14 17:19:52 2007 -0500
 
@@ -234,7 +295,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 76ca790000438a17bd0c08351307f9bb994f9357
+commit b2bb93c1608b3b97cb86118c344887f9e7ae2378
 Author: Michael Wu <flamingice at sourmilk.net>
 Date:   Sat Oct 20 20:05:31 2007 -0400
 
@@ -245,7 +306,7 @@
     Signed-off-by: Michael Wu <flamingice at sourmilk.net>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 8a68259e579a40378644c39da08267df8d420547
+commit 5a0bacbbcbad7c8a2976f52486ba9da7b776ff25
 Author: Michael Wu <flamingice at sourmilk.net>
 Date:   Sun Oct 14 14:43:16 2007 -0400
 
@@ -266,8 +327,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 diff -up linux-2.6.23.noarch/include/linux/pci_ids.h.orig linux-2.6.23.noarch/include/linux/pci_ids.h
---- linux-2.6.23.noarch/include/linux/pci_ids.h.orig	2008-01-04 15:37:38.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/pci_ids.h	2008-01-04 15:38:22.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/pci_ids.h.orig	2008-01-09 16:23:22.000000000 -0500
++++ linux-2.6.23.noarch/include/linux/pci_ids.h	2008-01-09 16:24:39.000000000 -0500
 @@ -2059,6 +2059,9 @@
  #define PCI_DEVICE_ID_ALTIMA_AC9100	0x03ea
  #define PCI_DEVICE_ID_ALTIMA_AC1003	0x03eb
@@ -279,9 +340,9 @@
  
  #define PCI_VENDOR_ID_ARECA		0x17d3
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,193 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.c	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,201 @@
 +
 +/*
 + * Radio tuning for Philips SA2400 on RTL8180
@@ -360,7 +421,8 @@
 +
 +}
 +
-+void sa2400_rf_set_channel(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
++static void sa2400_rf_set_channel(struct ieee80211_hw *dev,
++				  struct ieee80211_conf *conf)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u32 txpw = priv->channels[conf->channel - 1].val & 0xFF;
@@ -376,12 +438,12 @@
 +	write_sa2400(dev, 3, 0);
 +}
 +
-+void sa2400_rf_stop(struct ieee80211_hw *dev)
++static void sa2400_rf_stop(struct ieee80211_hw *dev)
 +{
 +	write_sa2400(dev, 4, 0);
 +}
 +
-+void sa2400_rf_init(struct ieee80211_hw *dev)
++static void sa2400_rf_init(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u32 anaparam, txconf;
@@ -475,9 +537,16 @@
 +	rtl8180_write_phy(dev, 0x19, 0x0);
 +	rtl8180_write_phy(dev, 0x1a, 0xa0);
 +}
++
++const struct rtl818x_rf_ops sa2400_rf_ops = {
++	.name		= "Philips",
++	.init		= sa2400_rf_init,
++	.stop		= sa2400_rf_stop,
++	.set_chan	= sa2400_rf_set_channel
++};
 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-04 15:37:40.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Makefile	2008-01-04 15:38:22.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/Makefile.orig	2008-01-09 16:23:23.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Makefile	2008-01-09 16:24:39.000000000 -0500
 @@ -49,7 +49,10 @@ obj-$(CONFIG_PCMCIA_WL3501)	+= wl3501_cs
  obj-$(CONFIG_USB_ZD1201)	+= zd1201.o
  obj-$(CONFIG_LIBERTAS)		+= libertas/
@@ -490,9 +559,9 @@
  
  obj-$(CONFIG_ADM8211)	+= adm8211.o
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.h	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,30 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.h	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,28 @@
 +#ifndef RTL8180_MAX2820_H
 +#define RTL8180_MAX2820_H
 +
@@ -518,15 +587,13 @@
 +
 +#define MAXIM_ANTENNA 0xb3
 +
-+void max2820_rf_init(struct ieee80211_hw *);
-+void max2820_rf_stop(struct ieee80211_hw *);
-+void max2820_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
++extern const struct rtl818x_rf_ops max2820_rf_ops;
 +
 +#endif /* RTL8180_MAX2820_H */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.h	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,38 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_sa2400.h	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,36 @@
 +#ifndef RTL8180_SA2400_H
 +#define RTL8180_SA2400_H
 +
@@ -560,15 +627,13 @@
 +
 +#define SA2400_REG4_FIRDAC_SHIFT 7
 +
-+void sa2400_rf_init(struct ieee80211_hw *);
-+void sa2400_rf_stop(struct ieee80211_hw *);
-+void sa2400_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
++extern const struct rtl818x_rf_ops sa2400_rf_ops;
 +
 +#endif /* RTL8180_SA2400_H */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.c	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,763 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.c	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,779 @@
 +
 +/*
 + * Radio tuning for RTL8225 on RTL8180
@@ -594,7 +659,7 @@
 +#include "rtl8180.h"
 +#include "rtl8180_rtl8225.h"
 +
-+static void rtl8180_rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
++static void rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u16 reg80, reg84, reg82;
@@ -642,7 +707,7 @@
 +	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
 +}
 +
-+static u16 rtl8180_rtl8225_read(struct ieee80211_hw *dev, u8 addr)
++static u16 rtl8225_read(struct ieee80211_hw *dev, u8 addr)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u16 reg80, reg82, reg84, out;
@@ -745,7 +810,7 @@
 +	return out;
 +}
 +
-+static const u16 rtl8180_rtl8225bcd_rxgain[] = {
++static const u16 rtl8225bcd_rxgain[] = {
 +	0x0400, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0408, 0x0409,
 +	0x040a, 0x040b, 0x0502, 0x0503, 0x0504, 0x0505, 0x0540, 0x0541,
 +	0x0542, 0x0543, 0x0544, 0x0545, 0x0580, 0x0581, 0x0582, 0x0583,
@@ -760,7 +825,7 @@
 +	0x07b4, 0x07b5, 0x07b8, 0x07b9, 0x07ba, 0x07bb, 0x07bb
 +};
 +
-+static const u8 rtl8180_rtl8225_agc[] = {
++static const u8 rtl8225_agc[] = {
 +	0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
 +	0x9d, 0x9c, 0x9b, 0x9a, 0x99, 0x98, 0x97, 0x96,
 +	0x95, 0x94, 0x93, 0x92, 0x91, 0x90, 0x8f, 0x8e,
@@ -779,7 +844,7 @@
 +	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
 +};
 +
-+static const u8 rtl8180_rtl8225_gain[] = {
++static const u8 rtl8225_gain[] = {
 +	0x23, 0x88, 0x7c, 0xa5, /* -82dbm */
 +	0x23, 0x88, 0x7c, 0xb5, /* -82dbm */
 +	0x23, 0x88, 0x7c, 0xc5, /* -82dbm */
@@ -789,15 +854,15 @@
 +	0x63, 0x58, 0x70, 0xc5, /* -66dbm */
 +};
 +
-+static const u8 rtl8180_rtl8225_threshold[] = {
++static const u8 rtl8225_threshold[] = {
 +	0x8d, 0x8d, 0x8d, 0x8d, 0x9d, 0xad, 0xbd
 +};
 +
-+static const u8 rtl8180_rtl8225_tx_gain_cck_ofdm[] = {
++static const u8 rtl8225_tx_gain_cck_ofdm[] = {
 +	0x02, 0x06, 0x0e, 0x1e, 0x3e, 0x7e
 +};
 +
-+static const u8 rtl8180_rtl8225_tx_power_cck[] = {
++static const u8 rtl8225_tx_power_cck[] = {
 +	0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02,
 +	0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02,
 +	0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02,
@@ -806,7 +871,7 @@
 +	0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03
 +};
 +
-+static const u8 rtl8180_rtl8225_tx_power_cck_ch14[] = {
++static const u8 rtl8225_tx_power_cck_ch14[] = {
 +	0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00,
 +	0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00,
 +	0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00,
@@ -815,16 +880,16 @@
 +	0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00
 +};
 +
-+static const u8 rtl8180_rtl8225_tx_power_ofdm[] = {
++static const u8 rtl8225_tx_power_ofdm[] = {
 +	0x80, 0x90, 0xa2, 0xb5, 0xcb, 0xe4
 +};
 +
-+static const u32 rtl8180_rtl8225_chan[] = {
++static const u32 rtl8225_chan[] = {
 +	0x085c, 0x08dc, 0x095c, 0x09dc, 0x0a5c, 0x0adc, 0x0b5c,
 +	0x0bdc, 0x0c5c, 0x0cdc, 0x0d5c, 0x0ddc, 0x0e5c, 0x0f72
 +};
 +
-+static void rtl8180_rtl8225_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
++static void rtl8225_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u8 cck_power, ofdm_power;
@@ -839,15 +904,15 @@
 +	ofdm_power = min(ofdm_power, (u8)35);
 +
 +	rtl818x_iowrite8(priv, &priv->map->TX_GAIN_CCK,
-+			 rtl8180_rtl8225_tx_gain_cck_ofdm[cck_power / 6] >> 1);
++			 rtl8225_tx_gain_cck_ofdm[cck_power / 6] >> 1);
 +
 +	if (channel == 14)
-+		tmp = &rtl8180_rtl8225_tx_power_cck_ch14[(cck_power % 6) * 8];
++		tmp = &rtl8225_tx_power_cck_ch14[(cck_power % 6) * 8];
 +	else
-+		tmp = &rtl8180_rtl8225_tx_power_cck[(cck_power % 6) * 8];
++		tmp = &rtl8225_tx_power_cck[(cck_power % 6) * 8];
 +
 +	for (i = 0; i < 8; i++)
-+		rtl8180_rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
++		rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
 +
 +	msleep(1); /* FIXME: optional? */
 +
@@ -860,38 +925,17 @@
 +	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
 +
 +	rtl818x_iowrite8(priv, &priv->map->TX_GAIN_OFDM,
-+			 rtl8180_rtl8225_tx_gain_cck_ofdm[ofdm_power/6] >> 1);
++			 rtl8225_tx_gain_cck_ofdm[ofdm_power/6] >> 1);
 +
-+	tmp = &rtl8180_rtl8225_tx_power_ofdm[ofdm_power % 6];
++	tmp = &rtl8225_tx_power_ofdm[ofdm_power % 6];
 +
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 5, *tmp);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 7, *tmp);
++	rtl8225_write_phy_ofdm(dev, 5, *tmp);
++	rtl8225_write_phy_ofdm(dev, 7, *tmp);
 +
 +	msleep(1);
 +}
 +
-+int rtl8180_rtl8225_is_z2(struct ieee80211_hw *dev)
-+{
-+	struct rtl8180_priv *priv = dev->priv;
-+	int z2 = 0;
-+
-+	rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, 0x0480);
-+	rtl818x_iowrite16(priv, &priv->map->RFPinsSelect, 0x0488);
-+	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
-+	rtl818x_ioread8(priv, &priv->map->EEPROM_CMD);
-+	msleep(100);
-+
-+	rtl8180_rtl8225_write(dev, 0, 0x1B7);
-+
-+	if (rtl8180_rtl8225_read(dev, 8) == 0x588 && rtl8180_rtl8225_read(dev, 9) == 0x700)
-+		z2 = 1;
-+
-+	rtl8180_rtl8225_write(dev, 0, 0x0B7);
-+
-+	return z2;
-+}
-+
-+void rtl8180_rtl8225_rf_init(struct ieee80211_hw *dev)
++static void rtl8225_rf_init(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	int i;
@@ -917,151 +961,151 @@
 +	rtl818x_iowrite8(priv, &priv->map->CONFIG3, 0x44);
 +	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
 +
-+	rtl8180_rtl8225_write(dev, 0x0, 0x067);
-+	rtl8180_rtl8225_write(dev, 0x1, 0xFE0);
-+	rtl8180_rtl8225_write(dev, 0x2, 0x44D);
-+	rtl8180_rtl8225_write(dev, 0x3, 0x441);
-+	rtl8180_rtl8225_write(dev, 0x4, 0x8BE);
-+	rtl8180_rtl8225_write(dev, 0x5, 0xBF0);		/* TODO: minipci */
-+	rtl8180_rtl8225_write(dev, 0x6, 0xAE6);
-+	rtl8180_rtl8225_write(dev, 0x7, rtl8180_rtl8225_chan[0]);
-+	rtl8180_rtl8225_write(dev, 0x8, 0x01F);
-+	rtl8180_rtl8225_write(dev, 0x9, 0x334);
-+	rtl8180_rtl8225_write(dev, 0xA, 0xFD4);
-+	rtl8180_rtl8225_write(dev, 0xB, 0x391);
-+	rtl8180_rtl8225_write(dev, 0xC, 0x050);
-+	rtl8180_rtl8225_write(dev, 0xD, 0x6DB);
-+	rtl8180_rtl8225_write(dev, 0xE, 0x029);
-+	rtl8180_rtl8225_write(dev, 0xF, 0x914); msleep(1);
-+
-+	rtl8180_rtl8225_write(dev, 0x2, 0xC4D); msleep(100);
-+
-+	rtl8180_rtl8225_write(dev, 0x0, 0x127);
-+
-+	for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225bcd_rxgain); i++) {
-+		rtl8180_rtl8225_write(dev, 0x1, i + 1);
-+		rtl8180_rtl8225_write(dev, 0x2, rtl8180_rtl8225bcd_rxgain[i]);
++	rtl8225_write(dev, 0x0, 0x067);
++	rtl8225_write(dev, 0x1, 0xFE0);
++	rtl8225_write(dev, 0x2, 0x44D);
++	rtl8225_write(dev, 0x3, 0x441);
++	rtl8225_write(dev, 0x4, 0x8BE);
++	rtl8225_write(dev, 0x5, 0xBF0);		/* TODO: minipci */
++	rtl8225_write(dev, 0x6, 0xAE6);
++	rtl8225_write(dev, 0x7, rtl8225_chan[0]);
++	rtl8225_write(dev, 0x8, 0x01F);
++	rtl8225_write(dev, 0x9, 0x334);
++	rtl8225_write(dev, 0xA, 0xFD4);
++	rtl8225_write(dev, 0xB, 0x391);
++	rtl8225_write(dev, 0xC, 0x050);
++	rtl8225_write(dev, 0xD, 0x6DB);
++	rtl8225_write(dev, 0xE, 0x029);
++	rtl8225_write(dev, 0xF, 0x914); msleep(1);
++
++	rtl8225_write(dev, 0x2, 0xC4D); msleep(100);
++
++	rtl8225_write(dev, 0x0, 0x127);
++
++	for (i = 0; i < ARRAY_SIZE(rtl8225bcd_rxgain); i++) {
++		rtl8225_write(dev, 0x1, i + 1);
++		rtl8225_write(dev, 0x2, rtl8225bcd_rxgain[i]);
 +	}
 +
-+	rtl8180_rtl8225_write(dev, 0x0, 0x027);
-+	rtl8180_rtl8225_write(dev, 0x0, 0x22F);
++	rtl8225_write(dev, 0x0, 0x027);
++	rtl8225_write(dev, 0x0, 0x22F);
 +	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
 +
-+	for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225_agc); i++) {
-+		rtl8180_rtl8225_write_phy_ofdm(dev, 0xB, rtl8180_rtl8225_agc[i]);
++	for (i = 0; i < ARRAY_SIZE(rtl8225_agc); i++) {
++		rtl8225_write_phy_ofdm(dev, 0xB, rtl8225_agc[i]);
 +		msleep(1);
-+		rtl8180_rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
++		rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
 +		msleep(1);
 +	}
 +
 +	msleep(1);
 +
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x06, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x08, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x11, 0x03); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1b, 0x76); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1e, 0x95); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
-+
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x13, 0xd0);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x19, 0x00);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x1b, 0x08);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x40, 0x86);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x41, 0x8d); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x44, 0x1f); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x45, 0x1e); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x46, 0x1a); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x47, 0x15); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x48, 0x10); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x49, 0x0a); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x4a, 0x05); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x4b, 0x02); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x06, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x08, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x11, 0x03); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1b, 0x76); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1e, 0x95); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
++
++	rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x13, 0xd0);
++	rtl8225_write_phy_cck(dev, 0x19, 0x00);
++	rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
++	rtl8225_write_phy_cck(dev, 0x1b, 0x08);
++	rtl8225_write_phy_cck(dev, 0x40, 0x86);
++	rtl8225_write_phy_cck(dev, 0x41, 0x8d); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x44, 0x1f); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x45, 0x1e); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x46, 0x1a); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x47, 0x15); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x48, 0x10); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x49, 0x0a); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x4a, 0x05); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x4b, 0x02); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
 +
 +	rtl818x_iowrite8(priv, &priv->map->TESTR, 0x0D); msleep(1);
 +
-+	rtl8180_rtl8225_rf_set_tx_power(dev, 1);
++	rtl8225_rf_set_tx_power(dev, 1);
 +
 +	/* RX antenna default to A */
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1);	/* B: 0xDB */
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);	/* B: 0x10 */
++	rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1);	/* B: 0xDB */
++	rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);	/* B: 0x10 */
 +
 +	rtl818x_iowrite8(priv, &priv->map->TX_ANTENNA, 0x03);	/* B: 0x00 */
 +	msleep(1);
 +	rtl818x_iowrite32(priv, (__le32 __iomem *)((void __iomem *)priv->map + 0x94), 0x15c00002);
 +	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
 +
-+	rtl8180_rtl8225_write(dev, 0x0c, 0x50);
++	rtl8225_write(dev, 0x0c, 0x50);
 +	/* set OFDM initial gain */
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0d, rtl8180_rtl8225_gain[4 * 4]);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x23, rtl8180_rtl8225_gain[4 * 4 + 1]);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1b, rtl8180_rtl8225_gain[4 * 4 + 2]);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1d, rtl8180_rtl8225_gain[4 * 4 + 3]);
++	rtl8225_write_phy_ofdm(dev, 0x0d, rtl8225_gain[4 * 4]);
++	rtl8225_write_phy_ofdm(dev, 0x23, rtl8225_gain[4 * 4 + 1]);
++	rtl8225_write_phy_ofdm(dev, 0x1b, rtl8225_gain[4 * 4 + 2]);
++	rtl8225_write_phy_ofdm(dev, 0x1d, rtl8225_gain[4 * 4 + 3]);
 +	/* set CCK threshold */
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x41, rtl8180_rtl8225_threshold[0]);
++	rtl8225_write_phy_cck(dev, 0x41, rtl8225_threshold[0]);
 +}
 +
-+static const u8 rtl8180_rtl8225z2_tx_power_cck_ch14[] = {
++static const u8 rtl8225z2_tx_power_cck_ch14[] = {
 +	0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00
 +};
 +
-+static const u8 rtl8180_rtl8225z2_tx_power_cck_B[] = {
++static const u8 rtl8225z2_tx_power_cck_B[] = {
 +	0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x04
 +};
 +
-+static const u8 rtl8180_rtl8225z2_tx_power_cck_A[] = {
++static const u8 rtl8225z2_tx_power_cck_A[] = {
 +	0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04
 +};
 +
-+static const u8 rtl8180_rtl8225z2_tx_power_cck[] = {
++static const u8 rtl8225z2_tx_power_cck[] = {
 +	0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04
 +};
 +
-+static void rtl8180_rtl8225z2_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
++static void rtl8225z2_rf_set_tx_power(struct ieee80211_hw *dev, int channel)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u8 cck_power, ofdm_power;
@@ -1072,16 +1116,16 @@
 +	ofdm_power = priv->channels[channel - 1].val >> 8;
 +
 +	if (channel == 14)
-+		tmp = rtl8180_rtl8225z2_tx_power_cck_ch14;
++		tmp = rtl8225z2_tx_power_cck_ch14;
 +	else if (cck_power == 12)
-+		tmp = rtl8180_rtl8225z2_tx_power_cck_B;
++		tmp = rtl8225z2_tx_power_cck_B;
 +	else if (cck_power == 13)
-+		tmp = rtl8180_rtl8225z2_tx_power_cck_A;
++		tmp = rtl8225z2_tx_power_cck_A;
 +	else
-+		tmp = rtl8180_rtl8225z2_tx_power_cck;
++		tmp = rtl8225z2_tx_power_cck;
 +
 +	for (i = 0; i < 8; i++)
-+		rtl8180_rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
++		rtl8225_write_phy_cck(dev, 0x44 + i, *tmp++);
 +
 +	cck_power = min(cck_power, (u8)35);
 +	if (cck_power == 13 || cck_power == 14)
@@ -1096,16 +1140,16 @@
 +	ofdm_power = min(ofdm_power, (u8)35);
 +	rtl818x_iowrite8(priv, &priv->map->TX_GAIN_OFDM, ofdm_power);
 +
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 2, 0x42);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 5, 0x00);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 6, 0x40);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 7, 0x00);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 8, 0x40);
++	rtl8225_write_phy_ofdm(dev, 2, 0x62);
++	rtl8225_write_phy_ofdm(dev, 5, 0x00);
++	rtl8225_write_phy_ofdm(dev, 6, 0x40);
++	rtl8225_write_phy_ofdm(dev, 7, 0x00);
++	rtl8225_write_phy_ofdm(dev, 8, 0x40);
 +
 +	msleep(1);
 +}
 +
-+static const u16 rtl8180_rtl8225z2_rxgain[] = {
++static const u16 rtl8225z2_rxgain[] = {
 +	0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0008, 0x0009,
 +	0x000a, 0x000b, 0x0102, 0x0103, 0x0104, 0x0105, 0x0140, 0x0141,
 +	0x0142, 0x0143, 0x0144, 0x0145, 0x0180, 0x0181, 0x0182, 0x0183,
@@ -1120,7 +1164,7 @@
 +	0x03b4, 0x03b5, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bb
 +};
 +
-+void rtl8180_rtl8225z2_rf_init(struct ieee80211_hw *dev)
++static void rtl8225z2_rf_init(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	int i;
@@ -1148,140 +1192,139 @@
 +
 +	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
 +
-+	rtl8180_rtl8225_write(dev, 0x0, 0x0B7); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x1, 0xEE0); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x2, 0x44D); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x3, 0x441); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x4, 0x8C3); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x5, 0xC72); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x6, 0x0E6); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x7, 0x82A); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x8, 0x03F); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0x9, 0x335); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0xa, 0x9D4); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0xb, 0x7BB); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0xc, 0x850); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0xd, 0xCDF); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0xe, 0x02B); msleep(1);
-+	rtl8180_rtl8225_write(dev, 0xf, 0x114); msleep(100);
++	rtl8225_write(dev, 0x0, 0x0B7); msleep(1);
++	rtl8225_write(dev, 0x1, 0xEE0); msleep(1);
++	rtl8225_write(dev, 0x2, 0x44D); msleep(1);
++	rtl8225_write(dev, 0x3, 0x441); msleep(1);
++	rtl8225_write(dev, 0x4, 0x8C3); msleep(1);
++	rtl8225_write(dev, 0x5, 0xC72); msleep(1);
++	rtl8225_write(dev, 0x6, 0x0E6); msleep(1);
++	rtl8225_write(dev, 0x7, 0x82A); msleep(1);
++	rtl8225_write(dev, 0x8, 0x03F); msleep(1);
++	rtl8225_write(dev, 0x9, 0x335); msleep(1);
++	rtl8225_write(dev, 0xa, 0x9D4); msleep(1);
++	rtl8225_write(dev, 0xb, 0x7BB); msleep(1);
++	rtl8225_write(dev, 0xc, 0x850); msleep(1);
++	rtl8225_write(dev, 0xd, 0xCDF); msleep(1);
++	rtl8225_write(dev, 0xe, 0x02B); msleep(1);
++	rtl8225_write(dev, 0xf, 0x114); msleep(100);
 +
-+	if (!(rtl8180_rtl8225_read(dev, 6) & (1 << 7))) {
-+		rtl8180_rtl8225_write(dev, 0x02, 0x0C4D);
++	if (!(rtl8225_read(dev, 6) & (1 << 7))) {
++		rtl8225_write(dev, 0x02, 0x0C4D);
 +		msleep(200);
-+		rtl8180_rtl8225_write(dev, 0x02, 0x044D);
++		rtl8225_write(dev, 0x02, 0x044D);
 +		msleep(100);
-+		if (!(rtl8180_rtl8225_read(dev, 6) & (1 << 7)))
-+			printk(KERN_WARNING "%s: RF Calibration Failed! %x\n",
-+			       wiphy_name(dev->wiphy), rtl8180_rtl8225_read(dev, 6));
++		/* TODO: readd calibration failure message when the calibration
++		   check works */
 +	}
 +
-+	rtl8180_rtl8225_write(dev, 0x0, 0x1B7);
-+	rtl8180_rtl8225_write(dev, 0x3, 0x002);
-+	rtl8180_rtl8225_write(dev, 0x5, 0x004);
++	rtl8225_write(dev, 0x0, 0x1B7);
++	rtl8225_write(dev, 0x3, 0x002);
++	rtl8225_write(dev, 0x5, 0x004);
 +
-+	for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225z2_rxgain); i++) {
-+		rtl8180_rtl8225_write(dev, 0x1, i + 1);
-+		rtl8180_rtl8225_write(dev, 0x2, rtl8180_rtl8225z2_rxgain[i]);
++	for (i = 0; i < ARRAY_SIZE(rtl8225z2_rxgain); i++) {
++		rtl8225_write(dev, 0x1, i + 1);
++		rtl8225_write(dev, 0x2, rtl8225z2_rxgain[i]);
 +	}
 +
-+	rtl8180_rtl8225_write(dev, 0x0, 0x0B7); msleep(100);
-+	rtl8180_rtl8225_write(dev, 0x2, 0xC4D);
++	rtl8225_write(dev, 0x0, 0x0B7); msleep(100);
++	rtl8225_write(dev, 0x2, 0xC4D);
 +
 +	msleep(200);
-+	rtl8180_rtl8225_write(dev, 0x2, 0x44D);
++	rtl8225_write(dev, 0x2, 0x44D);
 +	msleep(100);
 +
-+	rtl8180_rtl8225_write(dev, 0x00, 0x2BF);
-+	rtl8180_rtl8225_write(dev, 0xFF, 0xFFFF);
++	rtl8225_write(dev, 0x00, 0x2BF);
++	rtl8225_write(dev, 0xFF, 0xFFFF);
 +
 +	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
 +
-+	for (i = 0; i < ARRAY_SIZE(rtl8180_rtl8225_agc); i++) {
-+		rtl8180_rtl8225_write_phy_ofdm(dev, 0xB, rtl8180_rtl8225_agc[i]);
++	for (i = 0; i < ARRAY_SIZE(rtl8225_agc); i++) {
++		rtl8225_write_phy_ofdm(dev, 0xB, rtl8225_agc[i]);
 +		msleep(1);
-+		rtl8180_rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
++		rtl8225_write_phy_ofdm(dev, 0xA, 0x80 + i);
 +		msleep(1);
 +	}
 +
 +	msleep(1);
 +
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x06, 0x40); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x08, 0x40); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0d, 0x43);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x11, 0x06); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1b, 0x11); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1d, 0xc5); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1e, 0xb3); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x23, 0x80); msleep(1); /* FIXME: not needed? */
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
-+
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x13, 0xd0);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x19, 0x00);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x1b, 0x08);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x40, 0x86);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x41, 0x8a); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x44, 0x36); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x45, 0x35); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x46, 0x2e); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x47, 0x25); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x48, 0x1c); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x49, 0x12); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x4a, 0x09); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x4b, 0x04); msleep(1);
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x00, 0x01); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x01, 0x02); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x02, 0x62); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x03, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x04, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x05, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x06, 0x40); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x07, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x08, 0x40); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x09, 0xfe); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0a, 0x09); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0b, 0x80); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0c, 0x01); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0d, 0x43);
++	rtl8225_write_phy_ofdm(dev, 0x0e, 0xd3); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x0f, 0x38); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x10, 0x84); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x11, 0x06); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x12, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x13, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x14, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x15, 0x40); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x16, 0x00); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x17, 0x40); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x18, 0xef); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x19, 0x19); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1a, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1b, 0x11); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1c, 0x04); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1d, 0xc5); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1e, 0xb3); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x1f, 0x75); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x20, 0x1f); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x21, 0x27); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x22, 0x16); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x23, 0x80); msleep(1); /* FIXME: not needed? */
++	rtl8225_write_phy_ofdm(dev, 0x24, 0x46); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x25, 0x20); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);
++	rtl8225_write_phy_ofdm(dev, 0x27, 0x88); msleep(1);
++
++	rtl8225_write_phy_cck(dev, 0x00, 0x98); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x03, 0x20); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x04, 0x7e); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x05, 0x12); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x06, 0xfc); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x07, 0x78); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x08, 0x2e); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x10, 0x93); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x11, 0x88); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x12, 0x47); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x13, 0xd0);
++	rtl8225_write_phy_cck(dev, 0x19, 0x00);
++	rtl8225_write_phy_cck(dev, 0x1a, 0xa0);
++	rtl8225_write_phy_cck(dev, 0x1b, 0x08);
++	rtl8225_write_phy_cck(dev, 0x40, 0x86);
++	rtl8225_write_phy_cck(dev, 0x41, 0x8a); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x42, 0x15); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x43, 0x18); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x44, 0x36); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x45, 0x35); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x46, 0x2e); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x47, 0x25); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x48, 0x1c); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x49, 0x12); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x4a, 0x09); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x4b, 0x04); msleep(1);
++	rtl8225_write_phy_cck(dev, 0x4c, 0x05); msleep(1);
 +
 +	rtl818x_iowrite8(priv, (u8 __iomem *)((void __iomem *)priv->map + 0x5B), 0x0D); msleep(1);
 +
-+	rtl8180_rtl8225z2_rf_set_tx_power(dev, 1);
++	rtl8225z2_rf_set_tx_power(dev, 1);
 +
 +	/* RX antenna default to A */
-+	rtl8180_rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1);	/* B: 0xDB */
-+	rtl8180_rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);	/* B: 0x10 */
++	rtl8225_write_phy_cck(dev, 0x10, 0x9b); msleep(1);	/* B: 0xDB */
++	rtl8225_write_phy_ofdm(dev, 0x26, 0x90); msleep(1);	/* B: 0x10 */
 +
 +	rtl818x_iowrite8(priv, &priv->map->TX_ANTENNA, 0x03);	/* B: 0x00 */
 +	msleep(1);
@@ -1289,12 +1332,12 @@
 +	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
 +}
 +
-+void rtl8180_rtl8225_rf_stop(struct ieee80211_hw *dev)
++static void rtl8225_rf_stop(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u8 reg;
 +
-+	rtl8180_rtl8225_write(dev, 0x4, 0x1f); msleep(1);
++	rtl8225_write(dev, 0x4, 0x1f); msleep(1);
 +
 +	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
 +	reg = rtl818x_ioread8(priv, &priv->map->CONFIG3);
@@ -1305,17 +1348,17 @@
 +	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
 +}
 +
-+void rtl8180_rtl8225_rf_set_channel(struct ieee80211_hw *dev,
-+			    struct ieee80211_conf *conf)
++static void rtl8225_rf_set_channel(struct ieee80211_hw *dev,
++				   struct ieee80211_conf *conf)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +
-+	if (priv->rf_init == rtl8180_rtl8225_rf_init)
-+		rtl8180_rtl8225_rf_set_tx_power(dev, conf->channel);
++	if (priv->rf->init == rtl8225_rf_init)
++		rtl8225_rf_set_tx_power(dev, conf->channel);
 +	else
-+		rtl8180_rtl8225z2_rf_set_tx_power(dev, conf->channel);
++		rtl8225z2_rf_set_tx_power(dev, conf->channel);
 +
-+	rtl8180_rtl8225_write(dev, 0x7, rtl8180_rtl8225_chan[conf->channel - 1]);
++	rtl8225_write(dev, 0x7, rtl8225_chan[conf->channel - 1]);
 +	msleep(10);
 +
 +	if (conf->flags & IEEE80211_CONF_SHORT_SLOT_TIME) {
@@ -1332,11 +1375,53 @@
 +		rtl818x_iowrite8(priv, &priv->map->CW_VAL, 0xa5);
 +	}
 +}
++
++static const struct rtl818x_rf_ops rtl8225_ops = {
++	.name		= "rtl8225",
++	.init		= rtl8225_rf_init,
++	.stop		= rtl8225_rf_stop,
++	.set_chan	= rtl8225_rf_set_channel
++};
++
++static const struct rtl818x_rf_ops rtl8225z2_ops = {
++	.name		= "rtl8225z2",
++	.init		= rtl8225z2_rf_init,
++	.stop		= rtl8225_rf_stop,
++	.set_chan	= rtl8225_rf_set_channel
++};
++
++const struct rtl818x_rf_ops * rtl8180_detect_rf(struct ieee80211_hw *dev)
++{
++	struct rtl8180_priv *priv = dev->priv;
++	u16 reg8, reg9;
++
++	rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, 0x0480);
++	rtl818x_iowrite16(priv, &priv->map->RFPinsSelect, 0x0488);
++	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FFF);
++	rtl818x_ioread8(priv, &priv->map->EEPROM_CMD);
++	msleep(100);
++
++	rtl8225_write(dev, 0, 0x1B7);
++
++	reg8 = rtl8225_read(dev, 8);
++	reg9 = rtl8225_read(dev, 9);
++
++	rtl8225_write(dev, 0, 0x0B7);
++
++	if (reg8 != 0x588 || reg9 != 0x700)
++		return &rtl8225_ops;
++
++	return &rtl8225z2_ops;
++}
 diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c
---- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig	2008-01-04 15:37:39.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c	2008-01-04 15:38:22.000000000 -0500
-@@ -396,12 +396,12 @@ static int rtl8187_init_hw(struct ieee80
- 	priv->rf_init(dev);
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c.orig	2008-01-09 16:23:23.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_dev.c	2008-01-09 16:25:06.000000000 -0500
+@@ -393,37 +393,19 @@ static int rtl8187_init_hw(struct ieee80
+ 	rtl818x_iowrite16(priv, &priv->map->RFPinsEnable, 0x1FF7);
+ 	msleep(100);
+ 
+-	priv->rf_init(dev);
++	priv->rf->init(dev);
  
  	rtl818x_iowrite16(priv, &priv->map->BRSR, 0x01F3);
 -	reg = rtl818x_ioread16(priv, &priv->map->PGSELECT) & 0xfffe;
@@ -1351,7 +1436,59 @@
  
  	return 0;
  }
-@@ -752,13 +752,13 @@ static int __devinit rtl8187_probe(struc
+ 
+-static void rtl8187_set_channel(struct ieee80211_hw *dev, int channel)
+-{
+-	u32 reg;
+-	struct rtl8187_priv *priv = dev->priv;
+-
+-	reg = rtl818x_ioread32(priv, &priv->map->TX_CONF);
+-	/* Enable TX loopback on MAC level to avoid TX during channel
+-	 * changes, as this has be seen to causes problems and the
+-	 * card will stop work until next reset
+-	 */
+-	rtl818x_iowrite32(priv, &priv->map->TX_CONF,
+-			  reg | RTL818X_TX_CONF_LOOPBACK_MAC);
+-	msleep(10);
+-	rtl8225_rf_set_channel(dev, channel);
+-	msleep(10);
+-	rtl818x_iowrite32(priv, &priv->map->TX_CONF, reg);
+-}
+-
+ static int rtl8187_start(struct ieee80211_hw *dev)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+@@ -492,7 +474,7 @@ static void rtl8187_stop(struct ieee8021
+ 	reg &= ~RTL818X_CMD_RX_ENABLE;
+ 	rtl818x_iowrite8(priv, &priv->map->CMD, reg);
+ 
+-	rtl8225_rf_stop(dev);
++	priv->rf->stop(dev);
+ 
+ 	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
+ 	reg = rtl818x_ioread8(priv, &priv->map->CONFIG4);
+@@ -543,7 +525,19 @@ static void rtl8187_remove_interface(str
+ static int rtl8187_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+-	rtl8187_set_channel(dev, conf->channel);
++	u32 reg;
++
++	reg = rtl818x_ioread32(priv, &priv->map->TX_CONF);
++	/* Enable TX loopback on MAC level to avoid TX during channel
++	 * changes, as this has be seen to causes problems and the
++	 * card will stop work until next reset
++	 */
++	rtl818x_iowrite32(priv, &priv->map->TX_CONF,
++			  reg | RTL818X_TX_CONF_LOOPBACK_MAC);
++	msleep(10);
++	priv->rf->set_chan(dev, conf);
++	msleep(10);
++	rtl818x_iowrite32(priv, &priv->map->TX_CONF, reg);
+ 
+ 	rtl818x_iowrite8(priv, &priv->map->SIFS, 0x22);
+ 
+@@ -752,23 +746,16 @@ static int __devinit rtl8187_probe(struc
  	eeprom_93cx6_read(&eeprom, RTL8187_EEPROM_TXPWR_BASE,
  			  &priv->txpwr_base);
  
@@ -1367,10 +1504,31 @@
 +	rtl818x_iowrite8(priv, &priv->map->PGSELECT, reg);
  	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
  
- 	rtl8225_write(dev, 0, 0x1B7);
+-	rtl8225_write(dev, 0, 0x1B7);
+-
+-	if (rtl8225_read(dev, 8) != 0x588 || rtl8225_read(dev, 9) != 0x700)
+-		priv->rf_init = rtl8225_rf_init;
+-	else
+-		priv->rf_init = rtl8225z2_rf_init;
+-
+-	rtl8225_write(dev, 0, 0x0B7);
++	priv->rf = rtl8187_detect_rf(dev);
+ 
+ 	err = ieee80211_register_hw(dev);
+ 	if (err) {
+@@ -778,8 +765,7 @@ static int __devinit rtl8187_probe(struc
+ 
+ 	printk(KERN_INFO "%s: hwaddr " MAC_FMT ", rtl8187 V%d + %s\n",
+ 	       wiphy_name(dev->wiphy), MAC_ARG(dev->wiphy->perm_addr),
+-	       priv->asic_rev, priv->rf_init == rtl8225_rf_init ?
+-	       "rtl8225" : "rtl8225z2");
++	       priv->asic_rev, priv->rf->name);
+ 
+ 	return 0;
+ 
 diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h
---- linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig	2008-01-04 15:37:39.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h	2008-01-04 15:38:22.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h.orig	2008-01-09 16:23:23.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl818x.h	2008-01-09 16:24:39.000000000 -0500
 @@ -58,13 +58,17 @@ struct rtl818x_csr {
  #define RTL818X_INT_TX_FO		(1 << 15)
  	__le32	TX_CONF;
@@ -1430,7 +1588,7 @@
  	u8	PHY[4];
  	__le16	RFPinsOutput;
  	__le16	RFPinsEnable;
-@@ -149,8 +161,10 @@ struct rtl818x_csr {
+@@ -149,11 +161,20 @@ struct rtl818x_csr {
  	u8	RETRY_CTR;
  	u8	reserved_18[5];
  	__le32	RDSAR;
@@ -1443,10 +1601,20 @@
  	u8	TALLY_SEL;
  } __attribute__((packed));
  
++struct rtl818x_rf_ops {
++	char *name;
++	void (*init)(struct ieee80211_hw *);
++	void (*stop)(struct ieee80211_hw *);
++	void (*set_chan)(struct ieee80211_hw *, struct ieee80211_conf *);
++};
++
+ static const struct ieee80211_rate rtl818x_rates[] = {
+ 	{ .rate = 10,
+ 	  .val = 0,
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.c	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,172 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.c	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,179 @@
 +
 +/*
 + * Radio tuning for GCT GRF5101 on RTL8180
@@ -1518,8 +1686,8 @@
 +	rtl8180_write_phy(dev, 0x10, ant);
 +}
 +
-+void grf5101_rf_set_channel(struct ieee80211_hw *dev,
-+			    struct ieee80211_conf *conf)
++static void grf5101_rf_set_channel(struct ieee80211_hw *dev,
++				   struct ieee80211_conf *conf)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u32 txpw = priv->channels[conf->channel - 1].val & 0xFF;
@@ -1539,7 +1707,7 @@
 +	grf5101_write_phy_antenna(dev, chan);
 +}
 +
-+void grf5101_rf_stop(struct ieee80211_hw *dev)
++static void grf5101_rf_stop(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	u32 anaparam;
@@ -1555,7 +1723,7 @@
 +	write_grf5101(dev, 0x00, 0x8e4);
 +}
 +
-+void grf5101_rf_init(struct ieee80211_hw *dev)
++static void grf5101_rf_init(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +
@@ -1619,10 +1787,149 @@
 +	rtl8180_write_phy(dev, 0x1a, 0xa0);
 +	rtl8180_write_phy(dev, 0x1b, 0x44);
 +}
++
++const struct rtl818x_rf_ops grf5101_rf_ops = {
++	.name		= "GCT",
++	.init		= grf5101_rf_init,
++	.stop		= grf5101_rf_stop,
++	.set_chan	= grf5101_rf_set_channel
++};
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h.orig	2008-01-09 16:23:23.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187.h	2008-01-09 16:24:39.000000000 -0500
+@@ -64,7 +64,7 @@ struct rtl8187_tx_hdr {
+ struct rtl8187_priv {
+ 	/* common between rtl818x drivers */
+ 	struct rtl818x_csr *map;
+-	void (*rf_init)(struct ieee80211_hw *);
++	const struct rtl818x_rf_ops *rf;
+ 	int mode;
+ 	int if_id;
+ 
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.h	2008-01-09 16:24:39.000000000 -0500
+@@ -20,14 +20,7 @@
+ #define RTL8225_ANAPARAM_OFF	0xa00beb59
+ #define RTL8225_ANAPARAM2_OFF	0x840dec11
+ 
+-void rtl8225_write(struct ieee80211_hw *, u8 addr, u16 data);
+-u16  rtl8225_read(struct ieee80211_hw *, u8 addr);
+-
+-void rtl8225_rf_init(struct ieee80211_hw *);
+-void rtl8225z2_rf_init(struct ieee80211_hw *);
+-void rtl8225_rf_stop(struct ieee80211_hw *);
+-void rtl8225_rf_set_channel(struct ieee80211_hw *, int);
+-
++const struct rtl818x_rf_ops * rtl8187_detect_rf(struct ieee80211_hw *);
+ 
+ static inline void rtl8225_write_phy_ofdm(struct ieee80211_hw *dev,
+ 					  u8 addr, u32 data)
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c.orig linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c
+--- linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8187_rtl8225.c	2008-01-09 16:24:39.000000000 -0500
+@@ -101,7 +101,7 @@ static void rtl8225_write_8051(struct ie
+ 	msleep(2);
+ }
+ 
+-void rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
++static void rtl8225_write(struct ieee80211_hw *dev, u8 addr, u16 data)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+ 
+@@ -111,7 +111,7 @@ void rtl8225_write(struct ieee80211_hw *
+ 		rtl8225_write_bitbang(dev, addr, data);
+ }
+ 
+-u16 rtl8225_read(struct ieee80211_hw *dev, u8 addr)
++static u16 rtl8225_read(struct ieee80211_hw *dev, u8 addr)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+ 	u16 reg80, reg82, reg84, out;
+@@ -325,7 +325,7 @@ static void rtl8225_rf_set_tx_power(stru
+ 	msleep(1);
+ }
+ 
+-void rtl8225_rf_init(struct ieee80211_hw *dev)
++static void rtl8225_rf_init(struct ieee80211_hw *dev)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+ 	int i;
+@@ -567,7 +567,7 @@ static const u8 rtl8225z2_gain_bg[] = {
+ 	0x63, 0x15, 0xc5  /* -66dBm */
+ };
+ 
+-void rtl8225z2_rf_init(struct ieee80211_hw *dev)
++static void rtl8225z2_rf_init(struct ieee80211_hw *dev)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+ 	int i;
+@@ -715,7 +715,7 @@ void rtl8225z2_rf_init(struct ieee80211_
+ 	rtl818x_iowrite32(priv, (__le32 *)0xFF94, 0x3dc00002);
+ }
+ 
+-void rtl8225_rf_stop(struct ieee80211_hw *dev)
++static void rtl8225_rf_stop(struct ieee80211_hw *dev)
+ {
+ 	u8 reg;
+ 	struct rtl8187_priv *priv = dev->priv;
+@@ -731,15 +731,47 @@ void rtl8225_rf_stop(struct ieee80211_hw
+ 	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
+ }
+ 
+-void rtl8225_rf_set_channel(struct ieee80211_hw *dev, int channel)
++static void rtl8225_rf_set_channel(struct ieee80211_hw *dev,
++				   struct ieee80211_conf *conf)
+ {
+ 	struct rtl8187_priv *priv = dev->priv;
+ 
+-	if (priv->rf_init == rtl8225_rf_init)
+-		rtl8225_rf_set_tx_power(dev, channel);
++	if (priv->rf->init == rtl8225_rf_init)
++		rtl8225_rf_set_tx_power(dev, conf->channel);
+ 	else
+-		rtl8225z2_rf_set_tx_power(dev, channel);
++		rtl8225z2_rf_set_tx_power(dev, conf->channel);
+ 
+-	rtl8225_write(dev, 0x7, rtl8225_chan[channel - 1]);
++	rtl8225_write(dev, 0x7, rtl8225_chan[conf->channel - 1]);
+ 	msleep(10);
+ }
++
++static const struct rtl818x_rf_ops rtl8225_ops = {
++	.name		= "rtl8225",
++	.init		= rtl8225_rf_init,
++	.stop		= rtl8225_rf_stop,
++	.set_chan	= rtl8225_rf_set_channel
++};
++
++static const struct rtl818x_rf_ops rtl8225z2_ops = {
++	.name		= "rtl8225z2",
++	.init		= rtl8225z2_rf_init,
++	.stop		= rtl8225_rf_stop,
++	.set_chan	= rtl8225_rf_set_channel
++};
++
++const struct rtl818x_rf_ops * rtl8187_detect_rf(struct ieee80211_hw *dev)
++{
++	u16 reg8, reg9;
++
++	rtl8225_write(dev, 0, 0x1B7);
++
++	reg8 = rtl8225_read(dev, 8);
++	reg9 = rtl8225_read(dev, 9);
++
++	rtl8225_write(dev, 0, 0x0B7);
++
++	if (reg8 != 0x588 || reg9 != 0x700)
++		return &rtl8225_ops;
++
++	return &rtl8225z2_ops;
++}
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c	2008-01-04 15:44:01.000000000 -0500
-@@ -0,0 +1,1070 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_dev.c	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,1047 @@
 +
 +/*
 + * Linux device driver for RTL8180 / RTL8185
@@ -1999,7 +2306,7 @@
 +		rtl818x_iowrite8(priv, &priv->map->CARRIER_SENSE_COUNTER, 0x4C);
 +	}
 +
-+	priv->rf_init(dev);
++	priv->rf->init(dev);
 +	if (priv->r8185)
 +		rtl818x_iowrite16(priv, &priv->map->BRSR, 0x01F3);
 +	return 0;
@@ -2233,7 +2540,7 @@
 +	reg &= ~RTL818X_CMD_RX_ENABLE;
 +	rtl818x_iowrite8(priv, &priv->map->CMD, reg);
 +
-+	priv->rf_stop(dev);
++	priv->rf->stop(dev);
 +
 +	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
 +	reg = rtl818x_ioread8(priv, &priv->map->CONFIG4);
@@ -2284,7 +2591,7 @@
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +
-+	priv->rf_set_chan(dev, conf);
++	priv->rf->set_chan(dev, conf);
 +
 +	return 0;
 +}
@@ -2392,7 +2699,7 @@
 +	unsigned int io_addr, io_len;
 +	int err, i;
 +	struct eeprom_93cx6 eeprom;
-+	const char *chip_name, *rf_name;
++	const char *chip_name, *rf_name = NULL;
 +	u32 reg;
 +	u16 eeprom_val;
 +
@@ -2521,40 +2828,17 @@
 +	eeprom_93cx6_read(&eeprom, 0x06, &eeprom_val);
 +	eeprom_val &= 0xFF;
 +	switch (eeprom_val) {
-+	case 1:
-+		rf_name = "Intersil";
++	case 1:	rf_name = "Intersil";
 +		break;
-+	case 2:
-+		rf_name = "RFMD";
++	case 2:	rf_name = "RFMD";
 +		break;
-+	case 3:
-+		rf_name = "Philips";
-+		priv->rf_init = sa2400_rf_init;
-+		priv->rf_stop = sa2400_rf_stop;
-+		priv->rf_set_chan = sa2400_rf_set_channel;
++	case 3:	priv->rf = &sa2400_rf_ops;
 +		break;
-+	case 4:
-+		rf_name = "Maxim";
-+		priv->rf_init = max2820_rf_init;
-+		priv->rf_stop = max2820_rf_stop;
-+		priv->rf_set_chan = max2820_rf_set_channel;
++	case 4:	priv->rf = &max2820_rf_ops;
 +		break;
-+	case 5:
-+		rf_name = "GCT";
-+		priv->rf_init = grf5101_rf_init;
-+		priv->rf_stop = grf5101_rf_stop;
-+		priv->rf_set_chan = grf5101_rf_set_channel;
++	case 5:	priv->rf = &grf5101_rf_ops;
 +		break;
-+	case 9:
-+		if (rtl8180_rtl8225_is_z2(dev)) {
-+			rf_name = "RTL8225z2";
-+			priv->rf_init = rtl8180_rtl8225z2_rf_init;
-+		} else {
-+			rf_name = "RTL8225";
-+			priv->rf_init = rtl8180_rtl8225_rf_init;
-+		}
-+		priv->rf_stop = rtl8180_rtl8225_rf_stop;
-+		priv->rf_set_chan = rtl8180_rtl8225_rf_set_channel;
++	case 9:	priv->rf = rtl8180_detect_rf(dev);
 +		break;
 +	case 10:
 +		rf_name = "RTL8255";
@@ -2565,7 +2849,7 @@
 +		goto err_iounmap;
 +	}
 +
-+	if (eeprom_val < 3) {
++	if (!priv->rf) {
 +		printk(KERN_ERR "%s (rtl8180): %s RF frontend not supported!\n",
 +		       pci_name(pdev), rf_name);
 +		goto err_iounmap;
@@ -2618,7 +2902,7 @@
 +
 +	printk(KERN_INFO "%s: hwaddr " MAC_FMT ", %s + %s\n",
 +	       wiphy_name(dev->wiphy), MAC_ARG(dev->wiphy->perm_addr),
-+	       chip_name, rf_name);
++	       chip_name, priv->rf->name);
 +
 +	return 0;
 +
@@ -2694,9 +2978,9 @@
 +module_init(rtl8180_init);
 +module_exit(rtl8180_exit);
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180.h	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,153 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180.h	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,151 @@
 +#ifndef RTL8180_H
 +#define RTL8180_H
 +
@@ -2788,9 +3072,7 @@
 +struct rtl8180_priv {
 +	/* common between rtl818x drivers */
 +	struct rtl818x_csr __iomem *map;
-+	void (*rf_init)(struct ieee80211_hw *);
-+	void (*rf_stop)(struct ieee80211_hw *);
-+	void (*rf_set_chan)(struct ieee80211_hw *, struct ieee80211_conf *);
++	const struct rtl818x_rf_ops *rf;
 +	int mode;
 +	int if_id;
 +
@@ -2851,24 +3133,75 @@
 +
 +#endif /* RTL8180_H */
 diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig	2008-01-04 15:37:40.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-04 15:38:22.000000000 -0500
-@@ -547,6 +547,11 @@ config USB_ZD1201
+--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig	2008-01-09 16:23:23.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-09 16:24:39.000000000 -0500
+@@ -547,6 +547,62 @@ config USB_ZD1201
  	  To compile this driver as a module, choose M here: the
  	  module will be called zd1201.
  
 +config RTL8180
-+	tristate "Realtek 8185 PCI support"
++	tristate "Realtek 8180/8185 PCI support"
 +	depends on MAC80211 && PCI && WLAN_80211 && EXPERIMENTAL
 +	select EEPROM_93CX6
++	---help---
++	  This is a driver for RTL8180 and RTL8185 based cards.
++	  These are PCI based chips found in cards such as:
++
++	  (RTL8185 802.11g)
++	  A-Link WL54PC
++
++	  (RTL8180 802.11b)
++	  Belkin F5D6020 v3
++	  Belkin F5D6020 v3
++	  Dlink DWL-610
++	  Dlink DWL-510
++	  Netgear MA521
++	  Level-One WPC-0101
++	  Acer Aspire 1357 LMi
++	  VCTnet PC-11B1
++	  Ovislink AirLive WL-1120PCM
++	  Mentor WL-PCI
++	  Linksys WPC11 v4
++	  TrendNET TEW-288PI
++	  D-Link DWL-520 Rev D
++	  Repotec RP-WP7126
++	  TP-Link TL-WN250/251
++	  Zonet ZEW1000
++	  Longshine LCS-8031-R
++	  HomeLine HLW-PCC200
++	  GigaFast WF721-AEX
++	  Planet WL-3553
++	  Encore ENLWI-PCI1-NT
++	  TrendNET TEW-266PC
++	  Gigabyte GN-WLMR101
++	  Siemens-fujitsu Amilo D1840W
++	  Edimax EW-7126
++	  PheeNet WL-11PCIR
++	  Tonze PC-2100T
++	  Planet WL-8303
++	  Dlink DWL-650 v M1
++	  Edimax EW-7106
++	  Q-Tec 770WC
++	  Topcom Skyr at cer 4011b
++	  Roper FreeLan 802.11b (edition 2004)
++	  Wistron Neweb Corp CB-200B
++	  Pentagram HorNET
++	  QTec 775WC
++	  TwinMOS Booming B Series
++	  Micronet SP906BB
++	  Sweex LC700010
++	  Surecom EP-9428
++	  Safecom SWLCR-1100
++
++	  Thanks to Realtek for their support!
 +
  config RTL8187
  	tristate "Realtek 8187 USB support"
  	depends on MAC80211 && USB && WLAN_80211 && EXPERIMENTAL
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.h	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,28 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_rtl8225.h	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,23 @@
 +#ifndef RTL8180_RTL8225_H
 +#define RTL8180_RTL8225_H
 +
@@ -2877,20 +3210,15 @@
 +#define RTL8225_ANAPARAM_OFF	0xa00beb59
 +#define RTL8225_ANAPARAM2_OFF	0x840dec11
 +
-+int rtl8180_rtl8225_is_z2(struct ieee80211_hw *dev);
++const struct rtl818x_rf_ops * rtl8180_detect_rf(struct ieee80211_hw *);
 +
-+void rtl8180_rtl8225_rf_init(struct ieee80211_hw *);
-+void rtl8180_rtl8225z2_rf_init(struct ieee80211_hw *);
-+void rtl8180_rtl8225_rf_stop(struct ieee80211_hw *);
-+void rtl8180_rtl8225_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
-+
-+static inline void rtl8180_rtl8225_write_phy_ofdm(struct ieee80211_hw *dev,
++static inline void rtl8225_write_phy_ofdm(struct ieee80211_hw *dev,
 +					  u8 addr, u8 data)
 +{
 +	rtl8180_write_phy(dev, addr, data);
 +}
 +
-+static inline void rtl8180_rtl8225_write_phy_cck(struct ieee80211_hw *dev,
++static inline void rtl8225_write_phy_cck(struct ieee80211_hw *dev,
 +					 u8 addr, u8 data)
 +{
 +	rtl8180_write_phy(dev, addr, data | 0x10000);
@@ -2898,9 +3226,9 @@
 +
 +#endif /* RTL8180_RTL8225_H */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.h	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,30 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_grf5101.h	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,28 @@
 +#ifndef RTL8180_GRF5101_H
 +#define RTL8180_GRF5101_H
 +
@@ -2926,15 +3254,13 @@
 +
 +#define GRF5101_ANTENNA 0xA3
 +
-+void grf5101_rf_init(struct ieee80211_hw *);
-+void grf5101_rf_stop(struct ieee80211_hw *);
-+void grf5101_rf_set_channel(struct ieee80211_hw *, struct ieee80211_conf *);
++extern const struct rtl818x_rf_ops grf5101_rf_ops;
 +
 +#endif /* RTL8180_GRF5101_H */
 diff -up /dev/null linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-01-04 15:38:22.000000000 -0500
-@@ -0,0 +1,142 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-01-09 16:24:39.000000000 -0500
+@@ -0,0 +1,150 @@
 +/*
 + * Radio tuning for Maxim max2820 on RTL8180
 + *
@@ -2963,7 +3289,7 @@
 +#include "rtl8180.h"
 +#include "rtl8180_max2820.h"
 +
-+u32 max2820_chan[] = {
++static const u32 max2820_chan[] = {
 +	12, /* CH 1 */
 +	17,
 +	22,
@@ -3011,7 +3337,8 @@
 +	rtl8180_write_phy(dev, 0x10, ant);
 +}
 +
-+void max2820_rf_set_channel(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
++static void max2820_rf_set_channel(struct ieee80211_hw *dev,
++				   struct ieee80211_conf *conf)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +	unsigned int chan_idx = conf ? conf->channel - 1 : 0;
@@ -3026,14 +3353,14 @@
 +	write_max2820(dev, 3, chan);
 +}
 +
-+void max2820_rf_stop(struct ieee80211_hw *dev)
++static void max2820_rf_stop(struct ieee80211_hw *dev)
 +{
 +	rtl8180_write_phy(dev, 3, 0x8);
 +	write_max2820(dev, 1, 0);
 +}
 +
 +
-+void max2820_rf_init(struct ieee80211_hw *dev)
++static void max2820_rf_init(struct ieee80211_hw *dev)
 +{
 +	struct rtl8180_priv *priv = dev->priv;
 +
@@ -3077,3 +3404,10 @@
 +
 +	max2820_rf_set_channel(dev, NULL);
 +}
++
++const struct rtl818x_rf_ops max2820_rf_ops = {
++	.name		= "Maxim",
++	.init		= max2820_rf_init,
++	.stop		= max2820_rf_stop,
++	.set_chan	= max2820_rf_set_channel
++};

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/F-8/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	4 Jan 2008 21:47:39 -0000	1.21
+++ linux-2.6-wireless-pending.patch	9 Jan 2008 21:49:04 -0000	1.22
@@ -1,3 +1,1107 @@
+commit deb27641a93290475f6c66b99d2fceabbc28d6fb
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sat Dec 29 17:24:23 2007 +0100
+
+    zd1211rw: fix alignment for QOS and WDS frames
+    
+    This patch fixes RX packet alignment issues in the zd1211rw driver.
+    This is based on a patch by Johannes Berg.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 07288d2f0c85e5eae72f2ef68c79f69bec13cbed
+Author: Miguel Botón <mboton.lkml at gmail.com>
+Date:   Fri Jan 4 23:34:35 2008 +0100
+
+    iwlwifi: fix compilation warning in 'iwl-4965.c'
+    
+    This patch fixes a compilation warning in 'iwl-4965.c'.
+    
+    "warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’"
+    
+    Signed-off-by: Miguel Botón <mboton at gmail.com
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 7dfba0e595091c5b044b061eecea3de001847947
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:42:21 2008 +0100
+
+    rt2x00: Release rt2x00 2.0.14
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1628ebd3abb942834fdea6476670382c0bc62153
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:42:04 2008 +0100
+
+    rt2x00: Correctly initialize data and desc pointer
+    
+    rt2500usb and rt73usb store the descriptor in different
+    places. This means we should move the initialization of
+    the 2 pointers to the driver callback function fill_rxdone().
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4afbe5df21bc46838cd40c22542cd9072de90354
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:41:45 2008 +0100
+
+    rt2x00: Move init_txring and init_rxring into rt2x00lib
+    
+    Prior to enabling the radio rt2x00lib should go through all
+    rings and for each entry should call the callback function
+    init_txentry() and init_rxentry().
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ac414cf88cd5beac07225284bb99fe4fb30552f1
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:41:28 2008 +0100
+
+    rt2x00: Determine MY_BSS from descriptor
+    
+    Use the MY_BSS descriptor field to determine if the
+    received frame belongs to the same BSS as the interface.
+    This can be used by rxdone to determine if the frame
+    should be updated or not.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 2cd08a2a56ba0b160f7ccc3ccbdf7922456746de
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:41:10 2008 +0100
+
+    rt2x00: Cleanup write_tx_desc() arguments
+    
+    Send the skb structure with write_tx_desc() and use
+    the skbdesc structure to read all information about
+    the frame. This saves several arguments in the function
+    definition and it is easier to send more information
+    later as well.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f360a87db8c2fc8aaf64af05e5cf0556ecf07e67
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:40:49 2008 +0100
+
+    rt2x00: Move packet filter flags
+    
+    The packet filter flags don't belong in the interface structure
+    because they are device based instead of interface based.
+    So move the filter fields out of struct interface and into rt2x00_dev.
+    
+    Additionally we shouldn't change the filter based on the working
+    mode, if such a thing is needed than mac80211 should have done that.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c522fc8291dcb5a67a1c526bd8fc7832f4b618a7
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:40:27 2008 +0100
+
+    rt2x00: Put 802.11 data on 4 byte boundary
+    
+    Check the size of the ieee80211 header during rxdone
+    and make sure the data behind the ieee80211 header
+    is placed on a 4 byte boundary.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 22d2829c9fd338e3a8ec94f96bff58e462f65f00
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:40:07 2008 +0100
+
+    rt2x00: Move start() and stop() handlers into rt2x00lib.c
+    
+    suspend & resume was broken since it called rt2x00mac_start()
+    and rt2x00mac_stop() which would fail to execute because the
+    DEVICE_PRESENT flag was not set.
+    
+    Move the start and stop handlers into rt2x00lib.c which are called
+    from rt2x00mac_start() and rt2x00mac_stop() after they have checked
+    the DEVICE_PRESENT flag, while suspend and resume handlers can
+    directly call those functions.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 3dec0dfbb7408cdb737e789bc4015295ec5ece7b
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:39:25 2008 +0100
+
+    rt2x00: Store queue idx and entry idx in data_ring and data_entry
+    
+    Store the queue idx inside structure data_ring
+    Store the entry idx inside structure data_entry
+    This saves us a few calls to ARRAY_INDEX() which is now unused.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 99d87865e5ef66ed716f0d2dd367327fb2728430
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:38:58 2008 +0100
+
+    rt2x00: Only set the TBCN flag when the interface is configured to send beacons.
+    
+    These flags used to be fixed to one in rt2500pci_config_type, which
+    caused the beacon timer interrupt to fire. This would lead to
+    rt2x00lib_beacondone adding work which called
+    rt2x00lib_beacondone_scheduled which called ieee80211_beacon_get which
+    printed an error about not having any beacon data.
+    
+    With this patch, these interrupts are only generated when the interface
+    is configured to send beacons.
+    
+    Signed-off-by: Matthijs Kooijman <matthijs at stdin.nl>
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9ab6d159eeaebd2105a2dda6b2a85f9d1fa1aaad
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:38:34 2008 +0100
+
+    rt2x00: Always call ieee80211_stop_queue() when return NETDEV_TX_BUSY
+    
+    Apparently it was possible that ieee80211_stop_queue() was not full while
+    NETDEV_TX_BUSY was being reported back. I think that is what causing the WARN_ON().
+    This moves all calls to ieee80211_stop_queue() in rt2x00mac.c where it is easier
+    to determine if the queue should be halted.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a3cc1f0b560c96a7b456d4154683ba96a2ef54cb
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 6 23:38:10 2008 +0100
+
+    rt2x00: Fix chipset debugfs file
+    
+    Initialize blob->data before moving the data pointer
+    Initialize blob->size based on blob->data size
+    
[...16530 lines suppressed...]
  
 -	SPEX(pci_spid, SSB_SPROM1_SPID, 0xFFFF, 0);
@@ -77781,28 +88429,45 @@
  		*(((__be16 *)out->et1mac) + i) = cpu_to_be16(v);
  	}
  	SPEX(et0phyaddr, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET0A, 0);
- 	SPEX(et1phyaddr, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET1A,
- 	     SSB_SPROM1_ETHPHY_ET1A_SHIFT);
--	SPEX(et0mdcport, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET0M, 14);
--	SPEX(et1mdcport, SSB_SPROM1_ETHPHY, SSB_SPROM1_ETHPHY_ET1M, 15);
--	SPEX(board_rev, SSB_SPROM1_BINF, SSB_SPROM1_BINF_BREV, 0);
+@@ -324,9 +354,9 @@ static void sprom_extract_r1(struct ssb_
+ 	SPEX(board_rev, SSB_SPROM1_BINF, SSB_SPROM1_BINF_BREV, 0);
  	SPEX(country_code, SSB_SPROM1_BINF, SSB_SPROM1_BINF_CCODE,
  	     SSB_SPROM1_BINF_CCODE_SHIFT);
 -	SPEX(antenna_a, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTA,
--	     SSB_SPROM1_BINF_ANTA_SHIFT);
++	SPEX(ant_available_a, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTA,
+ 	     SSB_SPROM1_BINF_ANTA_SHIFT);
 -	SPEX(antenna_bg, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTBG,
--	     SSB_SPROM1_BINF_ANTBG_SHIFT);
++	SPEX(ant_available_bg, SSB_SPROM1_BINF, SSB_SPROM1_BINF_ANTBG,
+ 	     SSB_SPROM1_BINF_ANTBG_SHIFT);
  	SPEX(pa0b0, SSB_SPROM1_PA0B0, 0xFFFF, 0);
  	SPEX(pa0b1, SSB_SPROM1_PA0B1, 0xFFFF, 0);
- 	SPEX(pa0b2, SSB_SPROM1_PA0B2, 0xFFFF, 0);
-@@ -350,97 +351,75 @@ static void sprom_extract_r1(struct ssb_
- 	SPEX(antenna_gain_a, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_A, 0);
- 	SPEX(antenna_gain_bg, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_BG,
- 	     SSB_SPROM1_AGAIN_BG_SHIFT);
+@@ -347,100 +377,105 @@ static void sprom_extract_r1(struct ssb_
+ 	     SSB_SPROM1_ITSSI_A_SHIFT);
+ 	SPEX(itssi_bg, SSB_SPROM1_ITSSI, SSB_SPROM1_ITSSI_BG, 0);
+ 	SPEX(boardflags_lo, SSB_SPROM1_BFLLO, 0xFFFF, 0);
+-	SPEX(antenna_gain_a, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_A, 0);
+-	SPEX(antenna_gain_bg, SSB_SPROM1_AGAIN, SSB_SPROM1_AGAIN_BG,
+-	     SSB_SPROM1_AGAIN_BG_SHIFT);
 -	for (i = 0; i < 4; i++) {
 -		v = in[SPOFF(SSB_SPROM1_OEM) + i];
 -		*(((__le16 *)out->oem) + i) = cpu_to_le16(v);
 -	}
++
++	/* Extract the antenna gain values. */
++	gain = r123_extract_antgain(out->revision, in,
++				    SSB_SPROM1_AGAIN_BG,
++				    SSB_SPROM1_AGAIN_BG_SHIFT);
++	out->antenna_gain.ghz24.a0 = gain;
++	out->antenna_gain.ghz24.a1 = gain;
++	out->antenna_gain.ghz24.a2 = gain;
++	out->antenna_gain.ghz24.a3 = gain;
++	gain = r123_extract_antgain(out->revision, in,
++				    SSB_SPROM1_AGAIN_A,
++				    SSB_SPROM1_AGAIN_A_SHIFT);
++	out->antenna_gain.ghz5.a0 = gain;
++	out->antenna_gain.ghz5.a1 = gain;
++	out->antenna_gain.ghz5.a2 = gain;
++	out->antenna_gain.ghz5.a3 = gain;
  }
  
 -static void sprom_extract_r2(struct ssb_sprom_r2 *out, const u16 *in)
@@ -77830,6 +88495,7 @@
 +		v = in[SPOFF(SSB_SPROM4_IL0MAC) + i];
 +		*(((__be16 *)out->il0mac) + i) = cpu_to_be16(v);
  	}
+-}
 +	for (i = 0; i < 3; i++) {
 +		v = in[SPOFF(SSB_SPROM4_ET0MAC) + i];
 +		*(((__be16 *)out->et0mac) + i) = cpu_to_be16(v);
@@ -77843,9 +88509,10 @@
 +	     SSB_SPROM4_ETHPHY_ET1A_SHIFT);
 +	SPEX(country_code, SSB_SPROM4_CCODE, 0xFFFF, 0);
 +	SPEX(boardflags_lo, SSB_SPROM4_BFLLO, 0xFFFF, 0);
-+	SPEX(antenna_gain_a, SSB_SPROM4_AGAIN, SSB_SPROM4_AGAIN_0, 0);
-+	SPEX(antenna_gain_bg, SSB_SPROM4_AGAIN, SSB_SPROM4_AGAIN_1,
-+	     SSB_SPROM4_AGAIN_1_SHIFT);
++	SPEX(ant_available_a, SSB_SPROM4_ANTAVAIL, SSB_SPROM4_ANTAVAIL_A,
++	     SSB_SPROM4_ANTAVAIL_A_SHIFT);
++	SPEX(ant_available_bg, SSB_SPROM4_ANTAVAIL, SSB_SPROM4_ANTAVAIL_BG,
++	     SSB_SPROM4_ANTAVAIL_BG_SHIFT);
 +	SPEX(maxpwr_bg, SSB_SPROM4_MAXP_BG, SSB_SPROM4_MAXP_BG_MASK, 0);
 +	SPEX(itssi_bg, SSB_SPROM4_MAXP_BG, SSB_SPROM4_ITSSI_BG,
 +	     SSB_SPROM4_ITSSI_BG_SHIFT);
@@ -77858,8 +88525,18 @@
 +	SPEX(gpio2, SSB_SPROM4_GPIOB, SSB_SPROM4_GPIOB_P2, 0);
 +	SPEX(gpio3, SSB_SPROM4_GPIOB, SSB_SPROM4_GPIOB_P3,
 +	     SSB_SPROM4_GPIOB_P3_SHIFT);
-+	/* TODO - get remaining rev 4 stuff needed */
- }
++
++	/* Extract the antenna gain values. */
++	SPEX(antenna_gain.ghz24.a0, SSB_SPROM4_AGAIN01,
++	     SSB_SPROM4_AGAIN0, SSB_SPROM4_AGAIN0_SHIFT);
++	SPEX(antenna_gain.ghz24.a1, SSB_SPROM4_AGAIN01,
++	     SSB_SPROM4_AGAIN1, SSB_SPROM4_AGAIN1_SHIFT);
++	SPEX(antenna_gain.ghz24.a2, SSB_SPROM4_AGAIN23,
++	     SSB_SPROM4_AGAIN2, SSB_SPROM4_AGAIN2_SHIFT);
++	SPEX(antenna_gain.ghz24.a3, SSB_SPROM4_AGAIN23,
++	     SSB_SPROM4_AGAIN3, SSB_SPROM4_AGAIN3_SHIFT);
++	memcpy(&out->antenna_gain.ghz5, &out->antenna_gain.ghz24,
++	       sizeof(out->antenna_gain.ghz5));
  
 -static void sprom_extract_r3(struct ssb_sprom_r3 *out, const u16 *in)
 -{
@@ -77898,8 +88575,9 @@
 -	out->ofdmgpo <<= 16;
 -	out->ofdmgpo |= (in[SPOFF(SSB_SPROM3_OFDMGPO) + 1] & 0xFF00) >> 8;
 -	out->ofdmgpo |= (in[SPOFF(SSB_SPROM3_OFDMGPO) + 1] & 0x00FF) << 8;
--}
--
++	/* TODO - get remaining rev 4 stuff needed */
+ }
+ 
 -static int sprom_extract(struct ssb_bus *bus,
 -			 struct ssb_sprom *out, const u16 *in)
 +static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
@@ -77912,7 +88590,7 @@
 -	     SSB_SPROM_REVISION_CRC_SHIFT);
 -
 +	out->revision = in[size - 1] & 0x00FF;
-+	ssb_printk(KERN_INFO PFX "SPROM revision %d detected.\n", out->revision);
++	ssb_dprintk(KERN_DEBUG PFX "SPROM revision %d detected.\n", out->revision);
  	if ((bus->chip_id & 0xFF00) == 0x4400) {
  		/* Workaround: The BCM44XX chip has a stupid revision
  		 * number stored in the SPROM.
@@ -77943,7 +88621,7 @@
  			goto unsupported;
  	}
  
-@@ -448,7 +427,7 @@ static int sprom_extract(struct ssb_bus 
+@@ -448,7 +483,7 @@ static int sprom_extract(struct ssb_bus 
  unsupported:
  	ssb_printk(KERN_WARNING PFX "Unsupported SPROM revision %d "
  		   "detected. Will extract v1\n", out->revision);
@@ -77952,7 +88630,7 @@
  	return 0;
  }
  
-@@ -458,16 +437,31 @@ static int ssb_pci_sprom_get(struct ssb_
+@@ -458,16 +493,29 @@ static int ssb_pci_sprom_get(struct ssb_
  	int err = -ENOMEM;
  	u16 *buf;
  
@@ -77968,9 +88646,7 @@
 -		ssb_printk(KERN_WARNING PFX
 -			   "WARNING: Invalid SPROM CRC (corrupt SPROM)\n");
 +		/* check for rev 4 sprom - has special signature */
-+		if (buf [32] == 0x5372) {
-+			ssb_printk(KERN_WARNING PFX "Extracting a rev 4"
-+				   " SPROM\n");
++		if (buf[32] == 0x5372) {
 +			kfree(buf);
 +			buf = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
 +				      GFP_KERNEL);
@@ -77989,7 +88665,7 @@
  
  	kfree(buf);
  out:
-@@ -581,29 +575,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
+@@ -581,29 +629,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
  	.write32	= ssb_pci_write32,
  };
  
@@ -78024,7 +88700,7 @@
  		memcpy(tmp, dump, 4);
  		dump += 4;
  		parsed = simple_strtoul(tmp, NULL, 16);
-@@ -627,7 +620,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+@@ -627,7 +674,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
  	if (!bus)
  		goto out;
  	err = -ENOMEM;
@@ -78033,7 +88709,7 @@
  	if (!sprom)
  		goto out;
  
-@@ -640,7 +633,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+@@ -640,7 +687,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
  	sprom_do_read(bus, sprom);
  	mutex_unlock(&bus->pci_sprom_mutex);
  
@@ -78042,7 +88718,7 @@
  	err = 0;
  
  out_kfree:
-@@ -662,15 +655,15 @@ static ssize_t ssb_pci_attr_sprom_store(
+@@ -662,15 +709,15 @@ static ssize_t ssb_pci_attr_sprom_store(
  	if (!bus)
  		goto out;
  	err = -ENOMEM;
@@ -78062,8 +88738,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-04 14:04:11.000000000 -0500
-+++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-04 14:43:19.000000000 -0500
+--- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-09 14:18:18.000000000 -0500
++++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-09 14:18:29.000000000 -0500
 @@ -316,3 +316,28 @@ Why:	powermac supports proper generic pm
  Who:	Johannes Berg <johannes at sipsolutions.net>
  

linux-2.6-wireless.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.17 -r 1.18 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-wireless.patch,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- linux-2.6-wireless.patch	4 Jan 2008 21:47:39 -0000	1.17
+++ linux-2.6-wireless.patch	9 Jan 2008 21:49:05 -0000	1.18
@@ -2,6 +2,46 @@
 better in the future...FWIW, it is safe to presume that any wireless
 patch between 2.6.23 and 2.6.24-rc5 is included as well... -- JWL
 
+commit 85ae82313303ded51b3d49ae8b586224476abd33
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 2 18:55:53 2008 +0100
+
+    b43: Fix rxheader channel parsing
+    
+    This patch fixes the parsing of the RX data header channel field.
+    
+    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: 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>
+
 commit 412e9e7800360ec93b6ba319b30666f6bfc721bd
 Author: Reinette Chatre <reinette.chatre at intel.com>
 Date:   Tue Dec 18 22:01:02 2007 -0800
@@ -267,8 +307,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 diff -up linux-2.6.23.noarch/CREDITS.orig linux-2.6.23.noarch/CREDITS
---- linux-2.6.23.noarch/CREDITS.orig	2008-01-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/CREDITS	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/CREDITS.orig	2008-01-09 12:18:41.000000000 -0500
++++ linux-2.6.23.noarch/CREDITS	2008-01-09 12:22:11.000000000 -0500
 @@ -665,6 +665,11 @@ D: Minor updates to SCSI types, added /p
  S: (ask for current address)
  S: USA
@@ -336,8 +376,8 @@
  E: liw at iki.fi
  D: Linux System Administrator's Guide, author, former maintainer
 diff -up linux-2.6.23.noarch/include/linux/nl80211.h.orig linux-2.6.23.noarch/include/linux/nl80211.h
---- linux-2.6.23.noarch/include/linux/nl80211.h.orig	2008-01-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/nl80211.h	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/nl80211.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/linux/nl80211.h	2008-01-09 12:22:11.000000000 -0500
 @@ -7,7 +7,97 @@
   */
  
@@ -460,8 +500,8 @@
  
  #endif /* __LINUX_NL80211_H */
 diff -up linux-2.6.23.noarch/include/linux/mod_devicetable.h.orig linux-2.6.23.noarch/include/linux/mod_devicetable.h
---- linux-2.6.23.noarch/include/linux/mod_devicetable.h.orig	2008-01-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/mod_devicetable.h	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/mod_devicetable.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/linux/mod_devicetable.h	2008-01-09 12:22:11.000000000 -0500
 @@ -340,4 +340,19 @@ struct parisc_device_id {
  #define PA_HVERSION_ANY_ID	0xffff
  #define PA_SVERSION_ANY_ID	0xffffffff
@@ -483,8 +523,8 @@
 +
  #endif /* LINUX_MOD_DEVICETABLE_H */
 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-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/ieee80211.h	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/ieee80211.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/linux/ieee80211.h	2008-01-09 12:22:11.000000000 -0500
 @@ -16,6 +16,7 @@
  #define IEEE80211_H
  
@@ -559,8 +599,8 @@
 +
  #endif /* IEEE80211_H */
 diff -up linux-2.6.23.noarch/include/linux/rfkill.h.orig linux-2.6.23.noarch/include/linux/rfkill.h
---- linux-2.6.23.noarch/include/linux/rfkill.h.orig	2008-01-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/include/linux/rfkill.h	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/include/linux/rfkill.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/linux/rfkill.h	2008-01-09 12:22:11.000000000 -0500
 @@ -2,7 +2,7 @@
  #define __RFKILL_H
  
@@ -643,8 +683,8 @@
  
  #endif /* RFKILL_H */
 diff -up /dev/null linux-2.6.23.noarch/include/linux/ssb/ssb_driver_chipcommon.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2008-01-04 13:54:57.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,396 @@
 +#ifndef LINUX_SSB_CHIPCO_H_
 +#define LINUX_SSB_CHIPCO_H_
@@ -1043,8 +1083,8 @@
 +
 +#endif /* LINUX_SSB_CHIPCO_H_ */
 diff -up /dev/null linux-2.6.23.noarch/include/linux/ssb/ssb_driver_extif.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_extif.h	2008-01-04 13:54:57.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_extif.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,204 @@
 +/*
 + * Hardware-specific External Interface I/O core definitions
@@ -1251,8 +1291,8 @@
 +#endif /* CONFIG_SSB_DRIVER_EXTIF */
 +#endif /* LINUX_SSB_EXTIFCORE_H_ */
 diff -up /dev/null linux-2.6.23.noarch/include/linux/ssb/ssb_driver_mips.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_mips.h	2008-01-04 13:54:57.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_mips.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,46 @@
 +#ifndef LINUX_SSB_MIPSCORE_H_
 +#define LINUX_SSB_MIPSCORE_H_
@@ -1301,8 +1341,8 @@
 +
 +#endif /* LINUX_SSB_MIPSCORE_H_ */
 diff -up /dev/null linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h	2008-01-04 13:54:57.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb_regs.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,292 @@
 +#ifndef LINUX_SSB_REGS_H_
 +#define LINUX_SSB_REGS_H_
@@ -1597,8 +1637,8 @@
 +
 +#endif /* LINUX_SSB_REGS_H_ */
 diff -up /dev/null linux-2.6.23.noarch/include/linux/ssb/ssb_driver_pci.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_pci.h	2008-01-04 13:54:57.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb_driver_pci.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,106 @@
 +#ifndef LINUX_SSB_PCICORE_H_
 +#define LINUX_SSB_PCICORE_H_
@@ -1707,8 +1747,8 @@
 +#endif /* CONFIG_SSB_DRIVER_PCICORE */
 +#endif /* LINUX_SSB_PCICORE_H_ */
 diff -up /dev/null linux-2.6.23.noarch/include/linux/ssb/ssb.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/include/linux/ssb/ssb.h	2008-01-04 13:54:57.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/include/linux/ssb/ssb.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,424 @@
 +#ifndef LINUX_SSB_H_
 +#define LINUX_SSB_H_
@@ -2135,8 +2175,8 @@
 +
 +#endif /* LINUX_SSB_H_ */
 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-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/include/net/cfg80211.h	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/include/net/cfg80211.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/net/cfg80211.h	2008-01-09 12:22:11.000000000 -0500
 @@ -3,15 +3,15 @@
  
  #include <linux/netlink.h>
@@ -2174,8 +2214,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-04 13:54:52.000000000 -0500
-+++ linux-2.6.23.noarch/include/net/ieee80211.h	2008-01-04 13:54:57.000000000 -0500
+--- linux-2.6.23.noarch/include/net/ieee80211.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/include/net/ieee80211.h	2008-01-09 12:22:11.000000000 -0500
 @@ -115,8 +115,16 @@ extern u32 ieee80211_debug_level;
  do { if (ieee80211_debug_level & (level)) \
    printk(KERN_DEBUG "ieee80211: %c %s " fmt, \
@@ -2194,8 +2234,8 @@
  
[...2867 lines suppressed...]
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_main.c	2008-01-09 12:22:11.000000000 -0500
 @@ -72,7 +72,7 @@ struct net_device * hostap_add_interface
  	dev->mem_start = mdev->mem_start;
  	dev->mem_end = mdev->mem_end;
@@ -131675,8 +131738,8 @@
  }
  
 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-04 13:54:53.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2008-01-04 13:54:58.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2008-01-09 12:22:11.000000000 -0500
 @@ -3088,7 +3088,7 @@ static int prism2_ioctl_priv_download(lo
  static int prism2_set_genericelement(struct net_device *dev, u8 *elem,
  				     size_t len)
@@ -131741,8 +131804,8 @@
  	struct iw_mlme *mlme = (struct iw_mlme *) extra;
  	u16 reason;
 diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap.h.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap.h
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap.h.orig	2008-01-04 13:54:53.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap.h	2008-01-04 13:54:58.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap.h.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap.h	2008-01-09 12:22:11.000000000 -0500
 @@ -35,7 +35,7 @@ int hostap_80211_prism_header_parse(stru
  int hostap_80211_get_hdrlen(u16 fc);
  struct net_device_stats *hostap_get_stats(struct net_device *dev);
@@ -131753,8 +131816,8 @@
  int hostap_set_hostapd(local_info_t *local, int val, int rtnl_locked);
  int hostap_set_hostapd_sta(local_info_t *local, int val, int rtnl_locked);
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/b43_pci_bridge.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,48 @@
 +/*
 + * Broadcom 43xx PCI-SSB bridge module
@@ -131805,8 +131868,8 @@
 +	ssb_pcihost_unregister(&b43_pci_bridge_driver);
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/Makefile
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/Makefile	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/Makefile	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,18 @@
 +# core
 +ssb-y					+= main.o scan.o
@@ -131827,8 +131890,8 @@
 +
 +obj-$(CONFIG_SSB)			+= ssb.o
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/pcmcia.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/pcmcia.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/pcmcia.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,271 @@
 +/*
 + * Sonics Silicon Backplane
@@ -132102,8 +132165,8 @@
 +	return -ENODEV;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/main.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/main.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/main.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,1166 @@
 +/*
 + * Sonics Silicon Backplane
@@ -133272,8 +133335,8 @@
 +}
 +module_exit(ssb_modexit)
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/pcihost_wrapper.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/pcihost_wrapper.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/pcihost_wrapper.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,104 @@
 +/*
 + * Sonics Silicon Backplane
@@ -133380,8 +133443,8 @@
 +}
 +EXPORT_SYMBOL(ssb_pcihost_register);
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/driver_mipscore.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/driver_mipscore.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/driver_mipscore.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,224 @@
 +/*
 + * Sonics Silicon Backplane
@@ -133608,8 +133671,8 @@
 +	ssb_mips_flash_detect(mcore);
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/ssb_private.h
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/ssb_private.h	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/ssb_private.h	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,136 @@
 +#ifndef LINUX_SSB_PRIVATE_H_
 +#define LINUX_SSB_PRIVATE_H_
@@ -133748,8 +133811,8 @@
 +
 +#endif /* LINUX_SSB_PRIVATE_H_ */
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/pci.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/pci.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/pci.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,740 @@
 +/*
 + * Sonics Silicon Backplane PCI-Hostbus related functions.
@@ -134492,8 +134555,8 @@
 +	return err;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/driver_chipcommon.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/driver_chipcommon.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/driver_chipcommon.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,445 @@
 +/*
 + * Sonics Silicon Backplane
@@ -134941,8 +135004,8 @@
 +}
 +#endif /* CONFIG_SSB_SERIAL */
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/Kconfig
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/Kconfig	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/Kconfig	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,117 @@
 +menu "Sonics Silicon Backplane"
 +
@@ -135062,9 +135125,9 @@
 +
 +endmenu
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/scan.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/scan.c	2008-01-04 13:54:58.000000000 -0500
-@@ -0,0 +1,413 @@
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/scan.c	2008-01-09 12:25:58.000000000 -0500
+@@ -0,0 +1,424 @@
 +/*
 + * Sonics Silicon Backplane
 + * Bus scanning
@@ -135455,6 +135518,17 @@
 +		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");
@@ -135479,8 +135553,8 @@
 +	goto out;
 +}
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/driver_extif.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/driver_extif.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/driver_extif.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,129 @@
 +/*
 + * Sonics Silicon Backplane
@@ -135612,8 +135686,8 @@
 +}
 +
 diff -up /dev/null linux-2.6.23.noarch/drivers/ssb/driver_pcicore.c
---- /dev/null	2008-01-04 08:33:07.585415225 -0500
-+++ linux-2.6.23.noarch/drivers/ssb/driver_pcicore.c	2008-01-04 13:54:58.000000000 -0500
+--- /dev/null	2008-01-09 08:24:16.586202496 -0500
++++ linux-2.6.23.noarch/drivers/ssb/driver_pcicore.c	2008-01-09 12:22:11.000000000 -0500
 @@ -0,0 +1,576 @@
 +/*
 + * Sonics Silicon Backplane
@@ -136192,8 +136266,8 @@
 +}
 +EXPORT_SYMBOL(ssb_pcicore_dev_irqvecs_enable);
 diff -up linux-2.6.23.noarch/Documentation/networking/mac80211-injection.txt.orig linux-2.6.23.noarch/Documentation/networking/mac80211-injection.txt
---- linux-2.6.23.noarch/Documentation/networking/mac80211-injection.txt.orig	2008-01-04 13:54:53.000000000 -0500
-+++ linux-2.6.23.noarch/Documentation/networking/mac80211-injection.txt	2008-01-04 13:54:58.000000000 -0500
+--- linux-2.6.23.noarch/Documentation/networking/mac80211-injection.txt.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/Documentation/networking/mac80211-injection.txt	2008-01-09 12:22:11.000000000 -0500
 @@ -13,15 +13,35 @@ The radiotap format is discussed in
  ./Documentation/networking/radiotap-headers.txt.
  




More information about the fedora-extras-commits mailing list