rpms/kernel/devel kernel.spec, 1.503, 1.504 linux-2.6-wireless-pending.patch, 1.35, 1.36 linux-2.6-wireless.patch, 1.28, 1.29

John W. Linville (linville) fedora-extras-commits at redhat.com
Fri Mar 14 21:26:50 UTC 2008


Author: linville

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

Modified Files:
	kernel.spec linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Log Message:
wireless fixes from 2008-03-13


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.503
retrieving revision 1.504
diff -u -r1.503 -r1.504
--- kernel.spec	14 Mar 2008 18:15:31 -0000	1.503
+++ kernel.spec	14 Mar 2008 21:25:58 -0000	1.504
@@ -1115,7 +1115,7 @@
 ApplyPatch linux-2.6-ata-quirk.patch
 
 # wireless patches headed for 2.6.25
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
 ApplyPatch linux-2.6-wireless-fixups.patch
@@ -1756,6 +1756,15 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Fri Mar 14 2008 John W. Linville <linville at redhat.com>
+- b43: phy.c fix typo in register write
+- prism54: support for 124a:4025 - another version of IOGear GWU513 802.11g
+- PS3: gelic: change the prefix of the net interface for wireless
+- ath5k: disable irq handling in ath5k_hw_detach()
+- revert "tkip: remove unused function, other cleanups"
+- revert "mac80211: remove Hi16, Lo16 helpers"
+- revert "mac80211: remove Hi8/Lo8 helpers, add initialization vector helpers"
+
 * Fri Mar 14 2008 Jarod Wilson <jwilson at redhat.com>
 - Resync firewire patches w/linux1394-2.6.git
 - Update firewire selfID/AT/AR debug patch to version

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.35 -r 1.36 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- linux-2.6-wireless-pending.patch	12 Mar 2008 01:52:59 -0000	1.35
+++ linux-2.6-wireless-pending.patch	14 Mar 2008 21:25:58 -0000	1.36
@@ -78,22 +78,6 @@
     Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 068764eebb1711399bafac301eebe3da0d15f154
-Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-Date:   Tue Mar 11 13:15:44 2008 +0900
-
-    PS3: gelic: ignore scan info from zero SSID beacons
-    
-    Some implementations of the hidden SSID APs emit beacons which have the zero
-    length SSID information element instead of SSID padded by null (\0) characters.
-    If the firmware of the PS3 wireless hardware meets these beacons, it abandons parsing
-    IEs. Thus guest OSes get the invalid scan information for the AP.
-    
-    To work around this, ignore these scan informations from the list.
-    
-    Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
 commit a968fa909c2a245ed4c4175de704fc184dbc6ba8
 Author: Michael Buesch <mb at bu3sch.de>
 Date:   Mon Mar 10 17:26:32 2008 +0100
@@ -180,18 +164,6 @@
     Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit cc7de4a3067b706c06ec48bf47a8f432042dd997
-Author: Ivo van Doorn <ivdoorn at gmail.com>
-Date:   Sun Mar 9 22:48:28 2008 +0100
-
-    rt2x00: Fix compile error when rfkill is disabled
-    
-    Fix obvious error that prevented compilation while rfkill
-    was disabled.
-    
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
 commit 8d4e8648eb868e2c37797060953c4e3fbdc2d7bf
 Author: Ivo van Doorn <ivdoorn at gmail.com>
 Date:   Sun Mar 9 22:48:08 2008 +0100
@@ -235,25 +207,6 @@
     Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit c4ecf566fd80c81d5a3372c2d633c18da6d6f5c6
-Author: Ivo van Doorn <ivdoorn at gmail.com>
-Date:   Sun Mar 9 22:46:45 2008 +0100
-
-    rt2x00: Add suspend/resume handlers to rt2x00rfkill
-    
-    Add suspend/resume handlers to rt2x00rfkill to have it stop
-    the input-polldev and prevent it from calling rt2x00 during
-    suspend period. This could lead to a NULL pointer fault when
-    rt2x00 suspended, but polldev send a request, because
-    the csr_addr is NULL.
-    
-    Also don't let the rfkill allocation/registration block
-    the initialization of the entire device. Just print a warning
-    and continue as if nothing happened.
-    
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
 commit aae7c1758b6e4e7bad2f86ef3b378df61f2b1529
 Author: Ivo van Doorn <ivdoorn at gmail.com>
 Date:   Sun Mar 9 22:46:18 2008 +0100
@@ -530,39 +483,6 @@
     Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 86d516b97f73dab7808ed493b61d4b2724917f3e
-Author: Harvey Harrison <harvey.harrison at gmail.com>
-Date:   Sat Mar 8 01:23:08 2008 -0800
-
-    mac80211: remove Hi8/Lo8 helpers, add initialization vector helpers
-    
-    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 998dd3ec11edb5aeda2a4a79251989847464f41c
-Author: Harvey Harrison <harvey.harrison at gmail.com>
-Date:   Sat Mar 8 01:23:08 2008 -0800
-
-    mac80211: remove Hi16, Lo16 helpers
-    
-    They were only used in one place, just open-code it there.
-    
-    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 730791b5d754fd0a2c7f7489c1284e23be0c076e
-Author: Harvey Harrison <harvey.harrison at gmail.com>
-Date:   Sat Mar 8 01:23:04 2008 -0800
-
-    tkip: remove unused function, other cleanups
-    
-    tkip_S had an opencoded swab16
-    make ieee80211_tkip_gen_rc4key() static
-    remove the unused ieee80211_tkip_gen_phase1key()
-    
-    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
 commit da8eb865e8b65fe9a9c84251bc3cfd9e6e245414
 Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
 Date:   Sat Mar 8 01:23:25 2008 +0200
@@ -4287,8 +4207,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 diff -up linux-2.6.24.noarch/include/linux/nl80211.h.orig linux-2.6.24.noarch/include/linux/nl80211.h
---- linux-2.6.24.noarch/include/linux/nl80211.h.orig	2008-03-11 21:13:26.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/nl80211.h	2008-03-11 21:18:11.000000000 -0400
+--- linux-2.6.24.noarch/include/linux/nl80211.h.orig	2008-03-14 13:27:31.000000000 -0400
++++ linux-2.6.24.noarch/include/linux/nl80211.h	2008-03-14 16:40:54.000000000 -0400
 @@ -78,6 +78,18 @@
   *	or, if no MAC address given, all stations, on the interface identified
   *	by %NL80211_ATTR_IFINDEX.
@@ -4568,8 +4488,8 @@
  
  #endif /* __LINUX_NL80211_H */
 diff -up linux-2.6.24.noarch/include/linux/wireless.h.orig linux-2.6.24.noarch/include/linux/wireless.h
---- linux-2.6.24.noarch/include/linux/wireless.h.orig	2008-03-11 21:13:27.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/wireless.h	2008-03-11 21:18:11.000000000 -0400
+--- linux-2.6.24.noarch/include/linux/wireless.h.orig	2008-03-14 13:27:31.000000000 -0400
++++ linux-2.6.24.noarch/include/linux/wireless.h	2008-03-14 16:40:54.000000000 -0400
 @@ -455,6 +455,7 @@
  #define IW_MODE_REPEAT	4	/* Wireless Repeater (forwarder) */
  #define IW_MODE_SECOND	5	/* Secondary master/repeater (backup) */
@@ -4579,8 +4499,8 @@
  /* Statistics flags (bitmask in updated) */
  #define IW_QUAL_QUAL_UPDATED	0x01	/* Value was updated since last read */
 diff -up linux-2.6.24.noarch/include/linux/ieee80211.h.orig linux-2.6.24.noarch/include/linux/ieee80211.h
---- linux-2.6.24.noarch/include/linux/ieee80211.h.orig	2008-03-11 21:13:25.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/ieee80211.h	2008-03-11 21:18:11.000000000 -0400
+--- linux-2.6.24.noarch/include/linux/ieee80211.h.orig	2008-03-14 13:27:31.000000000 -0400
++++ linux-2.6.24.noarch/include/linux/ieee80211.h	2008-03-14 16:40:54.000000000 -0400
 @@ -97,6 +97,7 @@
  #define IEEE80211_MAX_FRAME_LEN		2352
  
@@ -4645,8 +4565,8 @@
  	WLAN_EID_PWR_CONSTRAINT = 32,
  	WLAN_EID_PWR_CAPABILITY = 33,
 diff -up linux-2.6.24.noarch/include/linux/ssb/ssb_driver_chipcommon.h.orig linux-2.6.24.noarch/include/linux/ssb/ssb_driver_chipcommon.h
---- linux-2.6.24.noarch/include/linux/ssb/ssb_driver_chipcommon.h.orig	2008-03-11 21:13:26.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2008-03-11 21:18:11.000000000 -0400
+--- linux-2.6.24.noarch/include/linux/ssb/ssb_driver_chipcommon.h.orig	2008-03-14 13:27:31.000000000 -0400
++++ linux-2.6.24.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2008-03-14 16:40:54.000000000 -0400
 @@ -390,6 +390,10 @@ extern void ssb_chipco_set_clockmode(str
  extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc,
  					  u32 ticks);
@@ -4659,8 +4579,8 @@
  u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask);
  u32 ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value);
 diff -up /dev/null linux-2.6.24.noarch/include/linux/ssb/ssb_driver_gige.h
---- /dev/null	2008-03-11 08:47:01.722073547 -0400
-+++ linux-2.6.24.noarch/include/linux/ssb/ssb_driver_gige.h	2008-03-11 21:18:11.000000000 -0400
+--- /dev/null	2008-03-14 08:48:03.721890422 -0400
++++ linux-2.6.24.noarch/include/linux/ssb/ssb_driver_gige.h	2008-03-14 16:40:54.000000000 -0400
 @@ -0,0 +1,174 @@
 +#ifndef LINUX_SSB_DRIVER_GIGE_H_
 +#define LINUX_SSB_DRIVER_GIGE_H_
@@ -4837,8 +4757,8 @@
 +#endif /* CONFIG_SSB_DRIVER_GIGE */
 +#endif /* LINUX_SSB_DRIVER_GIGE_H_ */
 diff -up linux-2.6.24.noarch/include/linux/ssb/ssb_driver_pci.h.orig linux-2.6.24.noarch/include/linux/ssb/ssb_driver_pci.h
---- linux-2.6.24.noarch/include/linux/ssb/ssb_driver_pci.h.orig	2008-03-11 21:13:26.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/ssb/ssb_driver_pci.h	2008-03-11 21:18:11.000000000 -0400
+--- linux-2.6.24.noarch/include/linux/ssb/ssb_driver_pci.h.orig	2008-03-14 13:27:31.000000000 -0400
++++ linux-2.6.24.noarch/include/linux/ssb/ssb_driver_pci.h	2008-03-14 16:40:54.000000000 -0400
 @@ -1,6 +1,11 @@
  #ifndef LINUX_SSB_PCICORE_H_
  #define LINUX_SSB_PCICORE_H_
@@ -4879,8 +4799,8 @@
  #endif /* CONFIG_SSB_DRIVER_PCICORE */
  #endif /* LINUX_SSB_PCICORE_H_ */
 diff -up linux-2.6.24.noarch/include/linux/ssb/ssb.h.orig linux-2.6.24.noarch/include/linux/ssb/ssb.h
---- linux-2.6.24.noarch/include/linux/ssb/ssb.h.orig	2008-03-11 21:13:26.000000000 -0400
-+++ linux-2.6.24.noarch/include/linux/ssb/ssb.h	2008-03-11 21:19:43.000000000 -0400
+--- linux-2.6.24.noarch/include/linux/ssb/ssb.h.orig	2008-03-14 13:27:31.000000000 -0400
++++ linux-2.6.24.noarch/include/linux/ssb/ssb.h	2008-03-14 16:40:54.000000000 -0400
 @@ -72,8 +72,10 @@ struct ssb_device;
  /* Lowlevel read/write operations on the device MMIO.
   * Internal, don't use that outside of ssb. */
@@ -4941,7 +4861,7 @@
  #endif /* LINUX_SSB_H_ */
 diff -up linux-2.6.24.noarch/include/net/wireless.h.orig linux-2.6.24.noarch/include/net/wireless.h
 --- linux-2.6.24.noarch/include/net/wireless.h.orig	2008-01-24 17:58:37.000000000 -0500
-+++ linux-2.6.24.noarch/include/net/wireless.h	2008-03-11 21:18:11.000000000 -0400
++++ linux-2.6.24.noarch/include/net/wireless.h	2008-03-14 16:40:54.000000000 -0400
 @@ -13,6 +13,162 @@
[...3770 lines suppressed...]
-+++ linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-03-11 21:18:18.000000000 -0400
+--- linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-03-14 16:40:55.000000000 -0400
 @@ -78,8 +78,9 @@ static void max2820_rf_set_channel(struc
  				   struct ieee80211_conf *conf)
  {
@@ -78203,8 +77615,8 @@
  
  	/* While philips SA2400 drive the PA bias from
 diff -up linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.24.noarch/drivers/net/wireless/adm8211.c
---- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-03-11 21:13:02.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-03-11 21:18:18.000000000 -0400
+--- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-03-14 16:40:55.000000000 -0400
 @@ -48,6 +48,32 @@ static struct pci_device_id adm8211_pci_
  	{ 0 }
  };
@@ -78374,8 +77786,8 @@
  	err = ieee80211_register_hw(dev);
  	if (err) {
 diff -up linux-2.6.24.noarch/drivers/ssb/Makefile.orig linux-2.6.24.noarch/drivers/ssb/Makefile
---- linux-2.6.24.noarch/drivers/ssb/Makefile.orig	2008-03-11 21:13:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/Makefile	2008-03-11 21:19:43.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/Makefile.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/Makefile	2008-03-14 16:40:55.000000000 -0400
 @@ -1,6 +1,7 @@
  # core
  ssb-y					+= main.o scan.o
@@ -78393,8 +77805,8 @@
  # b43 pci-ssb-bridge driver
  # Not strictly a part of SSB, but kept here for convenience
 diff -up linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig linux-2.6.24.noarch/drivers/ssb/pcmcia.c
---- linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig	2008-03-11 21:13:10.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/pcmcia.c	2008-03-11 21:19:43.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/pcmcia.c	2008-03-14 16:40:55.000000000 -0400
 @@ -3,7 +3,7 @@
   * PCMCIA-Hostbus related functions
   *
@@ -79067,8 +78479,8 @@
 +	return err;
  }
 diff -up linux-2.6.24.noarch/drivers/ssb/main.c.orig linux-2.6.24.noarch/drivers/ssb/main.c
---- linux-2.6.24.noarch/drivers/ssb/main.c.orig	2008-03-11 21:13:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/main.c	2008-03-11 21:19:43.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/main.c.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/main.c	2008-03-14 16:40:55.000000000 -0400
 @@ -14,6 +14,7 @@
  #include <linux/io.h>
  #include <linux/ssb/ssb.h>
@@ -79207,7 +78619,7 @@
  }
 diff -up linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c.orig linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c
 --- linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c.orig	2008-01-24 17:58:37.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c	2008-03-11 21:18:18.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c	2008-03-14 16:40:55.000000000 -0400
 @@ -209,6 +209,7 @@ void ssb_mipscore_init(struct ssb_mipsco
  			/* fallthrough */
  		case SSB_DEV_PCI:
@@ -79217,8 +78629,8 @@
  		case SSB_DEV_USB20_HOST:
  			/* These devices get their own IRQ line if available, the rest goes on IRQ0 */
 diff -up linux-2.6.24.noarch/drivers/ssb/ssb_private.h.orig linux-2.6.24.noarch/drivers/ssb/ssb_private.h
---- linux-2.6.24.noarch/drivers/ssb/ssb_private.h.orig	2008-03-11 21:13:10.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/ssb_private.h	2008-03-11 21:19:43.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/ssb_private.h.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/ssb_private.h	2008-03-14 16:40:55.000000000 -0400
 @@ -81,6 +81,7 @@ extern int ssb_pcmcia_switch_segment(str
  				     u8 seg);
  extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus,
@@ -79265,8 +78677,8 @@
  /* b43_pci_bridge.c */
  #ifdef CONFIG_SSB_B43_PCI_BRIDGE
 diff -up /dev/null linux-2.6.24.noarch/drivers/ssb/driver_gige.c
---- /dev/null	2008-03-11 08:47:01.722073547 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_gige.c	2008-03-11 21:18:18.000000000 -0400
+--- /dev/null	2008-03-14 08:48:03.721890422 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_gige.c	2008-03-14 16:40:55.000000000 -0400
 @@ -0,0 +1,294 @@
 +/*
 + * Sonics Silicon Backplane
@@ -79563,8 +78975,8 @@
 +	return ssb_driver_register(&ssb_gige_driver);
 +}
 diff -up linux-2.6.24.noarch/drivers/ssb/pci.c.orig linux-2.6.24.noarch/drivers/ssb/pci.c
---- linux-2.6.24.noarch/drivers/ssb/pci.c.orig	2008-03-11 21:13:10.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/pci.c	2008-03-11 21:19:43.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/pci.c.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/pci.c	2008-03-14 16:40:55.000000000 -0400
 @@ -227,7 +227,7 @@ static u8 ssb_sprom_crc(const u16 *sprom
  	return crc;
  }
@@ -79781,8 +79193,8 @@
  	if (err)
  		goto out;
 diff -up linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c
---- linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig	2008-03-11 21:13:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c	2008-03-11 21:18:18.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c	2008-03-14 16:40:55.000000000 -0400
 @@ -353,6 +353,16 @@ void ssb_chipco_watchdog_timer_set(struc
  	chipco_write32(cc, SSB_CHIPCO_WATCHDOG, ticks);
  }
@@ -79801,8 +79213,8 @@
  {
  	return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask;
 diff -up linux-2.6.24.noarch/drivers/ssb/Kconfig.orig linux-2.6.24.noarch/drivers/ssb/Kconfig
---- linux-2.6.24.noarch/drivers/ssb/Kconfig.orig	2008-03-11 21:13:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/Kconfig	2008-03-11 21:19:42.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/Kconfig.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/Kconfig	2008-03-14 16:40:55.000000000 -0400
 @@ -20,6 +20,10 @@ config SSB
  
  	  If unsure, say N.
@@ -79845,8 +79257,8 @@
 +
  endmenu
 diff -up linux-2.6.24.noarch/drivers/ssb/embedded.c.orig linux-2.6.24.noarch/drivers/ssb/embedded.c
---- linux-2.6.24.noarch/drivers/ssb/embedded.c.orig	2008-03-11 21:13:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/embedded.c	2008-03-11 21:18:18.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/embedded.c.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/embedded.c	2008-03-14 16:40:55.000000000 -0400
 @@ -10,6 +10,9 @@
  
  #include <linux/ssb/ssb.h>
@@ -79949,8 +79361,8 @@
 +	return -ENODEV;
 +}
 diff -up linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c
---- linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig	2008-03-11 21:13:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c	2008-03-11 21:18:18.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig	2008-03-14 13:27:24.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c	2008-03-14 16:40:55.000000000 -0400
 @@ -60,77 +60,6 @@ static DEFINE_SPINLOCK(cfgspace_lock);
  /* Core to access the external PCI config space. Can only have one. */
  static struct ssb_pcicore *extpci_core;
@@ -80126,8 +79538,8 @@
  {
  	u32 val;
 diff -up /dev/null linux-2.6.24.noarch/drivers/ssb/sprom.c
---- /dev/null	2008-03-11 08:47:01.722073547 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/sprom.c	2008-03-11 21:19:43.000000000 -0400
+--- /dev/null	2008-03-14 08:48:03.721890422 -0400
++++ linux-2.6.24.noarch/drivers/ssb/sprom.c	2008-03-14 16:40:55.000000000 -0400
 @@ -0,0 +1,133 @@
 +/*
 + * Sonics Silicon Backplane
@@ -80263,8 +79675,8 @@
 +	return err ? err : count;
 +}
 diff -up linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt.orig linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt
---- linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt.orig	2008-03-11 21:11:57.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt	2008-03-11 21:19:41.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt.orig	2008-03-14 13:26:55.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt	2008-03-14 16:40:55.000000000 -0400
 @@ -80,7 +80,7 @@ once you enable the radio, will depend o
  e.g. With the BCM4318 on the Acer Aspire 5020 series:
  
@@ -80276,7 +79688,7 @@
  acer-wmi come with built-in wireless. However, should you feel so inclined to
 diff -up linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt.orig linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt
 --- linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt.orig	2008-01-24 17:58:37.000000000 -0500
-+++ linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt	2008-03-11 21:21:56.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt	2008-03-14 16:40:55.000000000 -0400
 @@ -1,89 +0,0 @@
 -
 -			BCM43xx Linux Driver Project
@@ -80368,8 +79780,8 @@
 -and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
 -essential for solving any problems.
 diff -up /dev/null linux-2.6.24.noarch/Documentation/DocBook/mac80211.tmpl
---- /dev/null	2008-03-11 08:47:01.722073547 -0400
-+++ linux-2.6.24.noarch/Documentation/DocBook/mac80211.tmpl	2008-03-11 21:18:18.000000000 -0400
+--- /dev/null	2008-03-14 08:48:03.721890422 -0400
++++ linux-2.6.24.noarch/Documentation/DocBook/mac80211.tmpl	2008-03-14 16:40:55.000000000 -0400
 @@ -0,0 +1,335 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
@@ -80707,8 +80119,8 @@
 +  </part>
 +</book>
 diff -up linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig linux-2.6.24.noarch/Documentation/DocBook/Makefile
---- linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig	2008-03-11 21:11:53.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/DocBook/Makefile	2008-03-11 21:18:18.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig	2008-03-14 13:26:52.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/DocBook/Makefile	2008-03-14 16:40:55.000000000 -0400
 @@ -11,7 +11,8 @@ DOCBOOKS := wanbook.xml z8530book.xml mc
  	    procfs-guide.xml writing_usb_driver.xml networking.xml \
  	    kernel-api.xml filesystems.xml lsm.xml usb.xml \
@@ -80720,8 +80132,8 @@
  ###
  # The build process is as follows (targets):
 diff -up linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt
---- linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig	2008-03-11 21:11:55.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-03-11 21:19:41.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig	2008-03-14 13:26:54.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-03-14 16:40:55.000000000 -0400
 @@ -240,33 +240,6 @@ Who:	Jean Delvare <khali at linux-fr.org>
  
  ---------------------------

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- linux-2.6-wireless.patch	12 Mar 2008 01:52:59 -0000	1.28
+++ linux-2.6-wireless.patch	14 Mar 2008 21:25:59 -0000	1.29
@@ -1,104 +1,176 @@
-commit e1a2c8702f9126bd1eaa2b0f3967931b116a735f
-Author: Jan Slupski <jslupski at juljas.net>
-Date:   Mon Mar 10 22:41:18 2008 -0700
+commit 1682fe6de206bd1e937529cbb393915e5ea40b2c
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Thu Mar 13 15:38:03 2008 +0100
 
-    prism54: support for 124a:4025 - another version of IOGear GWU513 802.11g
+    rt2x00: Add suspend/resume handlers to rt2x00rfkill
     
-    Add support to p54usb driver for apparently another version of IOGear GWU513
-    802.11g USB network card that uses GW3887IK chipset and is recognized as
-    "124a:4025 AirVast" by lsusb.
+    Add suspend/resume handlers to rt2x00rfkill to have it stop
+    the input-polldev and prevent it from calling rt2x00 during
+    suspend period. This could lead to a NULL pointer fault when
+    rt2x00 suspended, but polldev send a request, because
+    the csr_addr is NULL.
     
-    Cc: Michael Wu <flamingice at sourmilk.net>
-    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Also don't let the rfkill allocation/registration block
+    the initialization of the entire device. Just print a warning
+    and continue as if nothing happened.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 445815d7ea4f59baf103f28b45f7dd45f21ff75d
-Author: Ivo van Doorn <ivdoorn at gmail.com>
-Date:   Sun Mar 9 22:42:32 2008 +0100
+commit f50e4a8494a74bdbc0f86f1430a4cca2a4f28799
+Author: Pavel Roskin <proski at gnu.org>
+Date:   Wed Mar 12 16:13:31 2008 -0400
 
-    rt2x00: Add new D-Link USB ID
+    ath5k: disable irq handling in ath5k_hw_detach()
     
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Once ah has been freed, it may not be accessed.  Set ATH_STAT_INVALID
+    bit to make the interrupt handler return IRQ_NONE without accessing ah.
+    
+    This fixes oops on unload with CONFIG_DEBUG_SHIRQ enabled.
+    
+    Signed-off-by: Pavel Roskin <proski at gnu.org>
+    Acked-by: Nick Kossifidis <mickflemm at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit fbb0a27a8ad56f822f479ee85446d9c29483a3d1
-Author: Adam Baker <linux at baker-net.org.uk>
-Date:   Sun Mar 9 22:40:40 2008 +0100
+commit 5abdc49d6e521126ed4c15e913a5c30f6dd95e6b
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Mar 12 17:51:04 2008 +0100
 
-    rt2x00: never disable multicast because it disables broadcast too
+    b43: phy.c fix typo in register write
     
-    On rt73 and rt61 disabling reception of multicast packets also disables
-    broadcast traffic which we never want to do. Therefore we should never
-    disable multicast.
+    Commit 61bca6eb85c863603d6054530e2f65c3b9aba85b b43: rewrite A PHY initialization
+    has a typo, the result of the register read should be masked, not the
+    register offset.
     
-    Signed-off-by: Adam Baker <linux at baker-net.org.uk>
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c1e889be18aff97e20853231531b79d79a984369
+Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+Date:   Wed Mar 12 16:41:11 2008 +0900
+
+    PS3: gelic: change the prefix of the net interface for wireless
+    
+    The gelic driver uses two net interfaces, one for ethernet and the
+    other for wireless. They share same MAC address and use 'eth' prefix
+    for the name.
+    As udev uses the MAC address to check uniqueness, this is
+    somewhat problematic.  So change the prefix of the network interface
+    name for the wireless so that udev can have an easy way to distinguish
+    interfaces.
+    
+    Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit aad4c7d3a641315519add159a80f73cce554e7cd
+Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+Date:   Tue Mar 11 13:15:44 2008 +0900
+
+    PS3: gelic: ignore scan info from zero SSID beacons
+    
+    Some implementations of the hidden SSID APs emit beacons which have the zero
+    length SSID information element instead of SSID padded by null (\0) characters.
+    If the firmware of the PS3 wireless hardware meets these beacons, it abandons parsing
+    IEs. Thus guest OSes get the invalid scan information for the AP.
+    
+    To work around this, ignore these scan informations from the list.
+    
+    Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 5f0547c2813d4677908fa6de02f9911d25996515
-Author: Sebastian Siewior <bigeasy at tglx.de>
-Date:   Thu Mar 6 10:30:21 2008 +0100
-
-    libertas: fix the 'compare command with itself' properly
-    
-    |libertas: Invalid CMD_RESP 8012 to command 50!
-    
-    The special case got mixed up in 8a96df80b3.
-    
-    Signed-off-by: Sebastian Siewior <bigeasy at linutronix.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 97ed83905e5f8547a94a8066441351c6920728a1
-Author: John W. Linville <linville at tuxdriver.com>
-Date:   Thu Mar 6 13:08:09 2008 -0500
-
-    drivers/net/Kconfig: fix whitespace for GELIC_WIRELESS entry
+commit 43557e15c22701f0b94e5f14a874fe02e814574e
+Author: Jan Slupski <jslupski at juljas.net>
+Date:   Mon Mar 10 22:41:18 2008 -0700
+
+    prism54: support for 124a:4025 - another version of IOGear GWU513 802.11g
+    
+    Add support to p54usb driver for apparently another version of IOGear GWU513
+    802.11g USB network card that uses GW3887IK chipset and is recognized as
+    "124a:4025 AirVast" by lsusb.
     
+    Cc: Michael Wu <flamingice at sourmilk.net>
+    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-diff -up linux-2.6.24.noarch/drivers/net/Kconfig.orig linux-2.6.24.noarch/drivers/net/Kconfig
---- linux-2.6.24.noarch/drivers/net/Kconfig.orig	2008-03-11 21:35:53.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/Kconfig	2008-03-11 21:39:02.000000000 -0400
-@@ -2377,15 +2377,15 @@ config GELIC_NET
- 	  module will be called ps3_gelic.
- 
- config GELIC_WIRELESS
--       bool "PS3 Wireless support"
--       depends on GELIC_NET
--       select WIRELESS_EXT
--       help
--        This option adds the support for the wireless feature of PS3.
--        If you have the wireless-less model of PS3 or have no plan to
--        use wireless feature, disabling this option saves memory.  As
--        the driver automatically distinguishes the models, you can
--        safely enable this option even if you have a wireless-less model.
-+	bool "PS3 Wireless support"
-+	depends on GELIC_NET
-+	select WIRELESS_EXT
-+	help
-+	  This option adds the support for the wireless feature of PS3.
-+	  If you have the wireless-less model of PS3 or have no plan to
-+	  use wireless feature, disabling this option saves memory.  As
-+	  the driver automatically distinguishes the models, you can
-+	  safely enable this option even if you have a wireless-less model.
- 
- config GIANFAR
- 	tristate "Gianfar Ethernet"
-diff -up linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c.orig linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c
---- linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c.orig	2008-03-11 21:35:09.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/libertas/cmdresp.c	2008-03-11 21:39:02.000000000 -0400
-@@ -578,7 +578,7 @@ int lbs_process_rx_command(struct lbs_pr
- 		goto done;
- 	}
- 	if (respcmd != CMD_RET(curcmd) &&
--	    respcmd != CMD_802_11_ASSOCIATE && curcmd != CMD_RET_802_11_ASSOCIATE) {
-+	    respcmd != CMD_RET_802_11_ASSOCIATE && curcmd != CMD_802_11_ASSOCIATE) {
- 		lbs_pr_info("Invalid CMD_RESP %x to command %x!\n", respcmd, curcmd);
- 		spin_unlock_irqrestore(&priv->driver_lock, flags);
- 		ret = -1;
+diff -up linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c.orig linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c
+--- linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c.orig	2008-03-14 13:27:22.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c	2008-03-14 15:03:38.000000000 -0400
+@@ -1644,13 +1644,24 @@ static void gelic_wl_scan_complete_event
+ 	}
+ 
+ 	/* put them in the newtork_list */
+-	scan_info = wl->buf;
+-	scan_info_size = 0;
+-	i = 0;
+-	while (scan_info_size < data_len) {
++	for (i = 0, scan_info_size = 0, scan_info = wl->buf;
++	     scan_info_size < data_len;
++	     i++, scan_info_size += be16_to_cpu(scan_info->size),
++	     scan_info = (void *)scan_info + be16_to_cpu(scan_info->size)) {
+ 		pr_debug("%s:size=%d bssid=%s scan_info=%p\n", __func__,
+ 			 be16_to_cpu(scan_info->size),
+ 			 print_mac(mac, &scan_info->bssid[2]), scan_info);
++
++		/*
++		 * The wireless firmware may return invalid channel 0 and/or
++		 * invalid rate if the AP emits zero length SSID ie. As this
++		 * scan information is useless, ignore it
++		 */
++		if (!be16_to_cpu(scan_info->channel) || !scan_info->rate[0]) {
++			pr_debug("%s: invalid scan info\n", __func__);
++			continue;
++		}
++
+ 		found = 0;
+ 		oldest = NULL;
+ 		list_for_each_entry(target, &wl->network_list, list) {
+@@ -1687,10 +1698,6 @@ static void gelic_wl_scan_complete_event
+ 					 GFP_KERNEL);
+ 		if (!target->hwinfo) {
+ 			pr_info("%s: kzalloc failed\n", __func__);
+-			i++;
+-			scan_info_size += be16_to_cpu(scan_info->size);
+-			scan_info = (void *)scan_info +
+-				be16_to_cpu(scan_info->size);
+ 			continue;
+ 		}
+ 		/* copy hw scan info */
+@@ -1709,10 +1716,6 @@ static void gelic_wl_scan_complete_event
+ 			if (scan_info->ext_rate[r])
+ 				target->rate_ext_len++;
+ 		list_move_tail(&target->list, &wl->network_list);
+-		/* bump pointer */
+-		i++;
+-		scan_info_size += be16_to_cpu(scan_info->size);
+-		scan_info = (void *)scan_info + be16_to_cpu(scan_info->size);
+ 	}
+ 	memset(&data, 0, sizeof(data));
+ 	wireless_send_event(port_to_netdev(wl_port(wl)), SIOCGIWSCAN, &data,
+@@ -2389,6 +2392,8 @@ static struct net_device *gelic_wl_alloc
+ 	if (!netdev)
+ 		return NULL;
+ 
++	strcpy(netdev->name, "wlan%d");
++
+ 	port = netdev_priv(netdev);
+ 	port->netdev = netdev;
+ 	port->card = card;
+diff -up linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c.orig linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c
+--- linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c	2008-03-14 15:03:38.000000000 -0400
+@@ -860,7 +860,7 @@ static void b43_phy_ww(struct b43_wldev 
+ 	b43_phy_write(dev, B43_PHY_OFDM(0xBB),
+ 		(b43_phy_read(dev, B43_PHY_OFDM(0xBB)) & 0xF000) | 0x0053);
+ 	b43_phy_write(dev, B43_PHY_OFDM61,
+-		(b43_phy_read(dev, B43_PHY_OFDM61 & 0xFE1F)) | 0x0120);
++		(b43_phy_read(dev, B43_PHY_OFDM61) & 0xFE1F) | 0x0120);
+ 	b43_phy_write(dev, B43_PHY_OFDM(0x13),
+ 		(b43_phy_read(dev, B43_PHY_OFDM(0x13)) & 0x0FFF) | 0x3000);
+ 	b43_phy_write(dev, B43_PHY_OFDM(0x14),
 diff -up linux-2.6.24.noarch/drivers/net/wireless/p54usb.c.orig linux-2.6.24.noarch/drivers/net/wireless/p54usb.c
---- linux-2.6.24.noarch/drivers/net/wireless/p54usb.c.orig	2008-03-11 21:35:10.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/p54usb.c	2008-03-11 21:40:16.000000000 -0400
+--- linux-2.6.24.noarch/drivers/net/wireless/p54usb.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/p54usb.c	2008-03-14 15:03:38.000000000 -0400
 @@ -63,6 +63,7 @@ static struct usb_device_id p54u_table[]
  	{USB_DEVICE(0x0cde, 0x0008)},	/* Sagem XG703A */
  	{USB_DEVICE(0x0d8e, 0x3762)},	/* DLink DWL-G120 Cohiba */
@@ -107,41 +179,340 @@
  	{USB_DEVICE(0x13b1, 0x000a)},	/* Linksys WUSB54G ver 2 */
  	{USB_DEVICE(0x13B1, 0x000C)},	/* Linksys WUSB54AG */
  	{USB_DEVICE(0x1435, 0x0427)},	/* Inventel UR054G */
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c
---- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig	2008-03-11 21:35:11.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt61pci.c	2008-03-11 21:39:02.000000000 -0400
-@@ -2302,9 +2302,9 @@ static void rt61pci_configure_filter(str
- 	 * Apply some rules to the filters:
- 	 * - Some filters imply different filters to be set.
- 	 * - Some things we can't filter out at all.
-+	 * - Multicast filter seems to kill broadcast traffic so never use it.
- 	 */
--	if (mc_count)
--		*total_flags |= FIF_ALLMULTI;
-+	*total_flags |= FIF_ALLMULTI;
- 	if (*total_flags & FIF_OTHER_BSS ||
- 	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c
---- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-03-11 21:35:11.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-03-11 21:39:02.000000000 -0400
-@@ -1869,9 +1869,9 @@ static void rt73usb_configure_filter(str
- 	 * Apply some rules to the filters:
- 	 * - Some filters imply different filters to be set.
- 	 * - Some things we can't filter out at all.
-+	 * - Multicast filter seems to kill broadcast traffic so never use it.
- 	 */
--	if (mc_count)
--		*total_flags |= FIF_ALLMULTI;
-+	*total_flags |= FIF_ALLMULTI;
- 	if (*total_flags & FIF_OTHER_BSS ||
- 	    *total_flags & FIF_PROMISC_IN_BSS)
- 		*total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
-@@ -2098,6 +2098,7 @@ static struct usb_device_id rt73usb_devi
- 	/* D-Link */
- 	{ USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) },
- 	{ USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) },
-+	{ USB_DEVICE(0x07d1, 0x3c07), USB_DEVICE_DATA(&rt73usb_ops) },
- 	/* Gemtek */
- 	{ USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) },
- 	/* Gigabyte */
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h	2008-03-14 15:03:38.000000000 -0400
+@@ -620,6 +620,9 @@ struct rt2x00_dev {
+ 	 * This will only be compiled in when required.
+ 	 */
+ #ifdef CONFIG_RT2X00_LIB_RFKILL
++unsigned long rfkill_state;
++#define RFKILL_STATE_ALLOCATED		1
++#define RFKILL_STATE_REGISTERED		2
+ 	struct rfkill *rfkill;
+ 	struct input_polled_dev *poll_dev;
+ #endif /* CONFIG_RT2X00_LIB_RFKILL */
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c	2008-03-14 15:03:38.000000000 -0400
+@@ -1098,7 +1098,7 @@ static void rt2x00lib_uninitialize(struc
+ 		return;
+ 
+ 	/*
+-	 * Unregister rfkill.
++	 * Unregister extra components.
+ 	 */
+ 	rt2x00rfkill_unregister(rt2x00dev);
+ 
+@@ -1139,11 +1139,9 @@ static int rt2x00lib_initialize(struct r
+ 	__set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags);
+ 
+ 	/*
+-	 * Register the rfkill handler.
++	 * Register the extra components.
+ 	 */
+-	status = rt2x00rfkill_register(rt2x00dev);
+-	if (status)
+-		goto exit_unitialize;
++	rt2x00rfkill_register(rt2x00dev);
+ 
+ 	return 0;
+ 
+@@ -1313,15 +1311,9 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+ 	}
+ 
+ 	/*
+-	 * Allocatie rfkill.
+-	 */
+-	retval = rt2x00rfkill_allocate(rt2x00dev);
+-	if (retval)
+-		goto exit;
+-
+-	/*
+-	 * Open the debugfs entry.
++	 * Register extra components.
+ 	 */
++	rt2x00rfkill_allocate(rt2x00dev);
+ 	rt2x00debug_register(rt2x00dev);
+ 
+ 	__set_bit(DEVICE_PRESENT, &rt2x00dev->flags);
+@@ -1350,13 +1342,9 @@ void rt2x00lib_remove_dev(struct rt2x00_
+ 	rt2x00lib_uninitialize(rt2x00dev);
+ 
+ 	/*
+-	 * Close debugfs entry.
++	 * Free extra components
+ 	 */
+ 	rt2x00debug_deregister(rt2x00dev);
+-
+-	/*
+-	 * Free rfkill
+-	 */
+ 	rt2x00rfkill_free(rt2x00dev);
+ 
+ 	/*
+@@ -1395,11 +1383,15 @@ int rt2x00lib_suspend(struct rt2x00_dev 
+ 	__set_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags);
+ 
+ 	/*
+-	 * Disable radio and unitialize all items
+-	 * that must be recreated on resume.
++	 * Disable radio.
+ 	 */
+ 	rt2x00lib_stop(rt2x00dev);
+ 	rt2x00lib_uninitialize(rt2x00dev);
++
++	/*
++	 * Suspend/disable extra components.
++	 */
++	rt2x00rfkill_suspend(rt2x00dev);
+ 	rt2x00debug_deregister(rt2x00dev);
+ 
+ exit:
+@@ -1422,9 +1414,10 @@ int rt2x00lib_resume(struct rt2x00_dev *
+ 	NOTICE(rt2x00dev, "Waking up.\n");
+ 
+ 	/*
+-	 * Open the debugfs entry.
++	 * Restore/enable extra components.
+ 	 */
+ 	rt2x00debug_register(rt2x00dev);
++	rt2x00rfkill_resume(rt2x00dev);
+ 
+ 	/*
+ 	 * Only continue if mac80211 had open interfaces.
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h	2008-03-14 15:03:38.000000000 -0400
+@@ -100,28 +100,36 @@ static inline void rt2x00debug_dump_fram
+  * RFkill handlers.
+  */
+ #ifdef CONFIG_RT2X00_LIB_RFKILL
+-int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev);
++void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev);
+ void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev);
+-int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev);
++void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev);
+ void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev);
++void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev);
++void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev);
+ #else
+-static inline int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
++static inline void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
+ {
+-	return 0;
+ }
+ 
+ static inline void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev)
+ {
+ }
+ 
+-static inline int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
++static inline void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
+ {
+-	return 0;
+ }
+ 
+ static inline void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
+ {
+ }
++
++static inline void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev)
++{
++}
++
++static inline void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
++{
++}
+ #endif /* CONFIG_RT2X00_LIB_RFKILL */
+ 
+ #endif /* RT2X00LIB_H */
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c	2008-03-14 15:03:38.000000000 -0400
+@@ -69,56 +69,81 @@ static void rt2x00rfkill_poll(struct inp
+ 	}
+ }
+ 
+-int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
++void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
+ {
+-	int retval;
+-
+-	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
+-		return 0;
++	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
++	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
++		return;
+ 
+-	retval = rfkill_register(rt2x00dev->rfkill);
+-	if (retval) {
++	if (rfkill_register(rt2x00dev->rfkill)) {
+ 		ERROR(rt2x00dev, "Failed to register rfkill handler.\n");
+-		return retval;
++		return;
+ 	}
+ 
+-	retval = input_register_polled_device(rt2x00dev->poll_dev);
+-	if (retval) {
++	if (input_register_polled_device(rt2x00dev->poll_dev)) {
+ 		ERROR(rt2x00dev, "Failed to register polled device.\n");
+ 		rfkill_unregister(rt2x00dev->rfkill);
+-		return retval;
++		return;
+ 	}
+ 
++	__set_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state);
++
+ 	/*
+ 	 * Force initial poll which will detect the initial device state,
+ 	 * and correctly sends the signal to the rfkill layer about this
+ 	 * state.
+ 	 */
+ 	rt2x00rfkill_poll(rt2x00dev->poll_dev);
+-
+-	return 0;
+ }
+ 
+ void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev)
+ {
+-	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
++	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
++	    !test_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state))
+ 		return;
+ 
+ 	input_unregister_polled_device(rt2x00dev->poll_dev);
+ 	rfkill_unregister(rt2x00dev->rfkill);
++
++	__clear_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state);
+ }
+ 
+-int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
++static struct input_polled_dev *
++rt2x00rfkill_allocate_polldev(struct rt2x00_dev *rt2x00dev)
+ {
+-	struct device *device = wiphy_dev(rt2x00dev->hw->wiphy);
++	struct input_polled_dev *poll_dev;
+ 
++	poll_dev = input_allocate_polled_device();
++	if (!poll_dev)
++		return NULL;
++
++	poll_dev->private = rt2x00dev;
++	poll_dev->poll = rt2x00rfkill_poll;
++	poll_dev->poll_interval = RFKILL_POLL_INTERVAL;
++
++	poll_dev->input->name = rt2x00dev->ops->name;
++	poll_dev->input->phys = wiphy_name(rt2x00dev->hw->wiphy);
++	poll_dev->input->id.bustype = BUS_HOST;
++	poll_dev->input->id.vendor = 0x1814;
++	poll_dev->input->id.product = rt2x00dev->chip.rt;
++	poll_dev->input->id.version = rt2x00dev->chip.rev;
++	poll_dev->input->dev.parent = wiphy_dev(rt2x00dev->hw->wiphy);
++	poll_dev->input->evbit[0] = BIT(EV_KEY);
++	set_bit(KEY_WLAN, poll_dev->input->keybit);
++
++	return poll_dev;
++}
++
++void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
++{
+ 	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
+-		return 0;
++		return;
+ 
+-	rt2x00dev->rfkill = rfkill_allocate(device, RFKILL_TYPE_WLAN);
++	rt2x00dev->rfkill =
++	    rfkill_allocate(wiphy_dev(rt2x00dev->hw->wiphy), RFKILL_TYPE_WLAN);
+ 	if (!rt2x00dev->rfkill) {
+ 		ERROR(rt2x00dev, "Failed to allocate rfkill handler.\n");
+-		goto exit;
++		return;
+ 	}
+ 
+ 	rt2x00dev->rfkill->name = rt2x00dev->ops->name;
+@@ -126,40 +151,49 @@ int rt2x00rfkill_allocate(struct rt2x00_
+ 	rt2x00dev->rfkill->state = -1;
+ 	rt2x00dev->rfkill->toggle_radio = rt2x00rfkill_toggle_radio;
+ 
+-	rt2x00dev->poll_dev = input_allocate_polled_device();
++	rt2x00dev->poll_dev = rt2x00rfkill_allocate_polldev(rt2x00dev);
+ 	if (!rt2x00dev->poll_dev) {
+ 		ERROR(rt2x00dev, "Failed to allocate polled device.\n");
+-		goto exit_free_rfkill;
++		rfkill_free(rt2x00dev->rfkill);
++		rt2x00dev->rfkill = NULL;
++		return;
+ 	}
+ 
+-	rt2x00dev->poll_dev->private = rt2x00dev;
+-	rt2x00dev->poll_dev->poll = rt2x00rfkill_poll;
+-	rt2x00dev->poll_dev->poll_interval = RFKILL_POLL_INTERVAL;
+-
+-	rt2x00dev->poll_dev->input->name = rt2x00dev->ops->name;
+-	rt2x00dev->poll_dev->input->phys = wiphy_name(rt2x00dev->hw->wiphy);
+-	rt2x00dev->poll_dev->input->id.bustype = BUS_HOST;
+-	rt2x00dev->poll_dev->input->id.vendor = 0x1814;
+-	rt2x00dev->poll_dev->input->id.product = rt2x00dev->chip.rt;
+-	rt2x00dev->poll_dev->input->id.version = rt2x00dev->chip.rev;
+-	rt2x00dev->poll_dev->input->dev.parent = device;
+-	rt2x00dev->poll_dev->input->evbit[0] = BIT(EV_KEY);
+-	set_bit(KEY_WLAN, rt2x00dev->poll_dev->input->keybit);
++	return;
++}
+ 
+-	return 0;
++void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
++{
++	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
++	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
++		return;
+ 
+-exit_free_rfkill:
+-	rfkill_free(rt2x00dev->rfkill);
++	input_free_polled_device(rt2x00dev->poll_dev);
++	rt2x00dev->poll_dev = NULL;
+ 
+-exit:
+-	return -ENOMEM;
++	rfkill_free(rt2x00dev->rfkill);
++	rt2x00dev->rfkill = NULL;
+ }
+ 
+-void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
++void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev)
+ {
+-	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
++	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
++	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
+ 		return;
+ 
+ 	input_free_polled_device(rt2x00dev->poll_dev);
+-	rfkill_free(rt2x00dev->rfkill);
++	rt2x00dev->poll_dev = NULL;
++}
++
++void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
++{
++	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
++	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
++		return;
++
++	rt2x00dev->poll_dev = rt2x00rfkill_allocate_polldev(rt2x00dev);
++	if (!rt2x00dev->poll_dev) {
++		ERROR(rt2x00dev, "Failed to allocate polled device.\n");
++		return;
++	}
+ }
+diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c
+--- linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c.orig	2008-03-14 13:27:23.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c	2008-03-14 15:03:38.000000000 -0400
+@@ -427,6 +427,8 @@ void ath5k_hw_detach(struct ath5k_hw *ah
+ {
+ 	ATH5K_TRACE(ah->ah_sc);
+ 
++	__set_bit(ATH_STAT_INVALID, ah->ah_sc->status);
++
+ 	if (ah->ah_rf_banks != NULL)
+ 		kfree(ah->ah_rf_banks);
+ 




More information about the fedora-extras-commits mailing list