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