rpms/kernel/devel linux-2.6-rndis_wext.patch, NONE, 1.1 config-generic, 1.59, 1.60 kernel.spec, 1.375, 1.376 linux-2.6-wireless-pending.patch, 1.24, 1.25 linux-2.6-wireless.patch, 1.18, 1.19 linux-2.6-ath5k.patch, 1.12, NONE linux-2.6-rtl8180.patch, 1.6, NONE linux-2.6-wireless-fixes.patch, 1.1, NONE linux-2.6-wireless-pending-too.patch, 1.2, NONE linux-2.6-wireless-reverts.patch, 1.1, NONE

John W. Linville (linville) fedora-extras-commits at redhat.com
Wed Jan 23 03:36:00 UTC 2008


Author: linville

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

Modified Files:
	config-generic kernel.spec linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Added Files:
	linux-2.6-rndis_wext.patch 
Removed Files:
	linux-2.6-ath5k.patch linux-2.6-rtl8180.patch 
	linux-2.6-wireless-fixes.patch 
	linux-2.6-wireless-pending-too.patch 
	linux-2.6-wireless-reverts.patch 
Log Message:
Latest wireless updates from upstream ; Tidy-up wireless patches ; Remove obsolete ath5k and rtl8180 patches ; Add rndis_wext driver

linux-2.6-rndis_wext.patch:

--- NEW FILE linux-2.6-rndis_wext.patch ---
commit fd04e10fe459b29144fbdc793806b63e3333e637
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:15:01 2008 +0200

    Add new driver 'rndis_wext' for wireless RNDIS devices.
    
    New driver for wireless RNDIS devices. So far only known chip that uses
    wireless RNDIS is Broadcom 4320.
    
    List of devices detected by driver:
    
      Buffalo WLI-U2-KG125S
      U.S. Robotics USR5421
      Belkin F5D7051
      Linksys WUSB54GSv2
      Linksys WUSB54GSC
      Asus WL169gE
      Eminent EM4045
      BT Voyager 1055
      Linksys WUSB54GSv1
      U.S. Robotics USR5420
      BUFFALO WLI-USB-G54
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 1b4943804a6dbf4a20fe1f4fae587941dbc743ab
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:55 2008 +0200

    blacklist known wireless RNDIS devices
    
    Blacklist known wireless RNDIS devices that will be handled by
    rndis_wext module.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 9d5c84135a735716b3128d76b5e5ef88eceab95c
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:49 2008 +0200

    Move usbnet.h and rndis_host.h to include/linux/usb
    
    Move headers usbnet.h and rndis_host.h to include/linux/usb and fix includes
    for drivers/net/usb modules. Headers are moved because rndis_wext will be
    outside drivers/net/usb in drivers/net/wireless and yet need these headers.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 3fe7f2666a54f2fc07ee567fed8ee4128ba9a0ad
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:43 2008 +0200

    Add rndis_link_change function pointer to 'struct rndis_data'.
    
    Callback to signal link state changes to rndis_wext.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit fce84d86fad297bafe1a2cf76622c3f10ab60f3e
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:38 2008 +0200

    Add rndis_early_init function pointer to 'struct rndis_data'.
    
    Function pointer is for rndis minidrivers that need to do work on device right
    after RNDIS_INIT. For example setting device specific configuration parameters
    with OID_GEN_RNDIS_CONFIG_PARAMETER.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 119d8f029d0b9869514b2f431cdbd6a90ccd6a31
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:32 2008 +0200

    add driver_priv pointer to 'struct usbnet'
    
    Add a private data pointer to usbnet for rndis_wext module to use.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 8b6cf3153ed77644af5f91741ccdddb5105189f3
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:27 2008 +0200

    export functions
    
    Export rndis_host functions and also rename rndis_bind() to
    generic_rndis_bind() for modules using rndis_host as base.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 87e69173d279eefb6614b78ede1ad4cbea0ee454
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:21 2008 +0200

    Split up rndis_host.c
    
    Split up rndis_host.c into rndis_host.h and rndis_base.c. This is done so
    that rndis_wext can reuse common parts with rndis_host.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit df8e9266b28d40ca4033afdfbae5717e1e227d40
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:15 2008 +0200

    Use wlan device name for RNDIS wireless devices
    
    Use wlan device name for RNDIS wireless devices.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 6b687991ec552e7c241aaf62781393c530b2263b
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:10 2008 +0200

    Fix rndis packet filter flags.
    
    RNDIS packet filter flags are not exactly the same as CDC flags
    so we cannot reuse them.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit df9b9eaf1b96b78cc37f123782e8cbd9690261ab
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:14:04 2008 +0200

    Halt device if rndis_bind fails.
    
    When bind fails after device was initialized, shutdown device properly
    by sending RNDIS_MSG_HALT.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 446660085d310f03dce5f1a5ac3c0b8d4d58f703
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 20 02:13:59 2008 +0200

    Use 1KB buffer in rndis_unbind
    
    rndis_command requires the caller to pass in a buffer of at least 1KB.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit e121a4445e5294eb04ee4d29319ea78f7f4d4916
Author: Bjorge Dijkstra <bjd at jooz.net>
Date:   Sun Jan 20 02:13:53 2008 +0200

    Hardwire CDC descriptors when missing
    
    Just as ActiveSync devices, some regular RNDIS devices also lack
    the CDC descriptors (e.g. devices based on BCM4320 WLAN chip).
    This patch hardwires the CDC descriptors for all RNDIS style devices
    when they are missing.
    
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit a20904c10ae19c8d3c26908ea6d44173d0c20523
Author: Bjorge Dijkstra <bjd at jooz.net>
Date:   Sun Jan 20 02:13:48 2008 +0200

    Fix sparse warning: returning void-valued expression
    
    rndis_unbind and usbnet_cdc_unbind don't return anything.
    
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

diff -up /dev/null linux-2.6.23.noarch/include/linux/usb/usbnet.h
--- /dev/null	2008-01-22 08:21:03.535277026 -0500
+++ linux-2.6.23.noarch/include/linux/usb/usbnet.h	2008-01-22 21:56:38.000000000 -0500
@@ -0,0 +1,211 @@
+/*
+ * USB Networking Link Interface
+ *
+ * Copyright (C) 2000-2005 by David Brownell <dbrownell at users.sourceforge.net>
+ * Copyright (C) 2003-2005 David Hollis <dhollis at davehollis.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
[...3809 lines suppressed...]
+	destroy_workqueue(priv->workqueue);
+
+	if (priv && priv->wpa_ie_len)
+		kfree(priv->wpa_ie);
+	kfree(priv);
+
+	rndis_unbind(dev, intf);
+}
+
+
+static int rndis_wext_reset(struct usbnet *dev)
+{
+	return deauthenticate(dev);
+}
+
+
+static const struct driver_info	bcm4320_info = {
+	.description =	"Wireless RNDIS device, BCM4320 based",
+	.flags =	FLAG_WLAN | FLAG_FRAMING_RN | FLAG_NO_SETINT,
+	.bind =		rndis_wext_bind,
+	.unbind =	rndis_wext_unbind,
+	.status =	rndis_status,
+	.rx_fixup =	rndis_rx_fixup,
+	.tx_fixup =	rndis_tx_fixup,
+	.reset =	rndis_wext_reset,
+	.rndis_early_init =	bcm4320_early_init,
+	.rndis_link_change =	rndis_wext_link_change,
+};
+
+/*-------------------------------------------------------------------------*/
+
+static const struct usb_device_id products [] = {
+#define	RNDIS_MASTER_INTERFACE \
+	.bInterfaceClass	= USB_CLASS_COMM, \
+	.bInterfaceSubClass	= 2 /* ACM */, \
+	.bInterfaceProtocol	= 0x0ff
+
+/* When adding new entries, remember to add blacklist entry to rndis_host. */
+
+/* INF driver for these devices have DriverVer >= 4.xx.xx.xx and many custom
+ * parameters available. Chipset marked as 'BCM4320SKFBG' in NDISwrapper-wiki.
+ */
+{
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0411,
+	.idProduct		= 0x00bc,	/* Buffalo WLI-U2-KG125S */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0baf,
+	.idProduct		= 0x011b,	/* U.S. Robotics USR5421 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x050d,
+	.idProduct		= 0x011b,	/* Belkin F5D7051 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x1799,	/* Belkin has two vendor ids */
+	.idProduct		= 0x011b,	/* Belkin F5D7051 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x13b1,
+	.idProduct		= 0x0014,	/* Linksys WUSB54GSv2 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x13b1,
+	.idProduct		= 0x0026,	/* Linksys WUSB54GSC */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0b05,
+	.idProduct		= 0x1717,	/* Asus WL169gE */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0a5c,
+	.idProduct		= 0xd11b,	/* Eminent EM4045 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x1690,
+	.idProduct		= 0x0715,	/* BT Voyager 1055 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+},
+/* These devices have DriverVer < 4.xx.xx.xx and do not have any custom
+ * parameters available, hardware probably contain older firmware version with
+ * no way of updating. Chipset marked as 'BCM4320????' in NDISwrapper-wiki.
+ */
+{
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x13b1,
+	.idProduct		= 0x000e,	/* Linksys WUSB54GSv1 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0baf,
+	.idProduct		= 0x0111,	/* U.S. Robotics USR5420 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0411,
+	.idProduct		= 0x004b,	/* BUFFALO WLI-USB-G54 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320_info,
+},
+	{ },		// END
+};
+MODULE_DEVICE_TABLE(usb, products);
+
+static struct usb_driver rndis_wext_driver = {
+	.name =		"rndis_wext",
+	.id_table =	products,
+	.probe =	usbnet_probe,
+	.disconnect =	usbnet_disconnect,
+	.suspend =	usbnet_suspend,
+	.resume =	usbnet_resume,
+};
+
+static int __init rndis_wext_init(void)
+{
+	return usb_register(&rndis_wext_driver);
+}
+module_init(rndis_wext_init);
+
+static void __exit rndis_wext_exit(void)
+{
+	usb_deregister(&rndis_wext_driver);
+}
+module_exit(rndis_wext_exit);
+
+MODULE_AUTHOR("Bjorge Dijkstra");
+MODULE_AUTHOR("Jussi Kivilinna");
+MODULE_DESCRIPTION("Driver for RNDIS based USB Wireless adapters");
+MODULE_LICENSE("GPL");
+
diff -up linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.23.noarch/drivers/net/wireless/Kconfig
--- linux-2.6.23.noarch/drivers/net/wireless/Kconfig.orig	2008-01-22 21:44:47.000000000 -0500
+++ linux-2.6.23.noarch/drivers/net/wireless/Kconfig	2008-01-22 21:56:38.000000000 -0500
@@ -609,6 +609,34 @@ config RTL8180
 
 	  Thanks to Realtek for their support!
 
+config USB_NET_RNDIS_WEXT
+	tristate "Wireless RNDIS USB support"
+	depends on USB && WLAN_80211 && EXPERIMENTAL
+	select USB_USBNET
+	select USB_NET_CDCETHER
+	select USB_NET_RNDIS_HOST
+	select WIRELESS_EXT
+	---help---
+	  This is a driver for wireless RNDIS devices.
+	  These are USB based adapters found in devices such as:
+
+	  Buffalo WLI-U2-KG125S
+	  U.S. Robotics USR5421
+	  Belkin F5D7051
+	  Linksys WUSB54GSv2
+	  Linksys WUSB54GSC
+	  Asus WL169gE
+	  Eminent EM4045
+	  BT Voyager 1055
+	  Linksys WUSB54GSv1
+	  U.S. Robotics USR5420
+	  BUFFALO WLI-USB-G54
+
+	  All of these devices are based on Broadcom 4320 chip which is the
+	  only wireless RNDIS chip known to date.
+
+	  If you choose to build a module, it'll be called rndis_wext.
+
 config RTL8187
 	tristate "Realtek 8187 USB support"
 	depends on MAC80211 && USB && WLAN_80211 && EXPERIMENTAL


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- config-generic	21 Jan 2008 23:42:51 -0000	1.59
+++ config-generic	23 Jan 2008 03:35:14 -0000	1.60
@@ -1305,6 +1305,7 @@
 CONFIG_TMD_HERMES=m
 CONFIG_USB_ATMEL=m
 CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WEXT=m
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.375
retrieving revision 1.376
diff -u -r1.375 -r1.376
--- kernel.spec	23 Jan 2008 00:37:23 -0000	1.375
+++ kernel.spec	23 Jan 2008 03:35:14 -0000	1.376
@@ -620,15 +620,11 @@
 Patch610: linux-2.6-defaults-fat-utf8.patch
 Patch660: linux-2.6-libata-ali-atapi-dma.patch
 Patch670: linux-2.6-ata-quirk.patch
-Patch679: linux-2.6-wireless-reverts.patch
 Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
-Patch682: linux-2.6-wireless-pending-too.patch
-Patch683: linux-2.6-wireless-fixes.patch
 Patch690: linux-2.6-at76.patch
-Patch691: linux-2.6-ath5k.patch
-Patch692: linux-2.6-rtl8180.patch
-Patch693: linux-2.6-ath5k-use-soft-wep.patch
+Patch691: linux-2.6-rndis_wext.patch
+Patch692: linux-2.6-ath5k-use-soft-wep.patch
 Patch820: linux-2.6-compile-fixes.patch
 Patch1101: linux-2.6-default-mmf_dump_elf_headers.patch
 Patch1102: linux-2.6-i386-vdso-install-unstripped-copies-on-disk.patch
@@ -1125,8 +1121,6 @@
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
 
-# revert already-merged wireless patches
-ApplyPatch linux-2.6-wireless-reverts.patch -R
 # wireless patches headed for 2.6.24
 ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.25
@@ -1134,18 +1128,11 @@
 
 # Add misc wireless bits from upstream wireless tree
 ApplyPatch linux-2.6-at76.patch
-ApplyPatch linux-2.6-ath5k.patch
-ApplyPatch linux-2.6-rtl8180.patch
+ApplyPatch linux-2.6-rndis_wext.patch
 
 # Make ath5k use software WEP
 ApplyPatch linux-2.6-ath5k-use-soft-wep.patch
 
-# Some more 2.6.25 stuff, here due to upstream process anomalies...
-ApplyPatch linux-2.6-wireless-pending-too.patch
-
-# wireless build fixes
-ApplyPatch linux-2.6-wireless-fixes.patch
-
 # implement smarter atime updates support.
 ApplyPatch linux-2.6-smarter-relatime.patch
 
@@ -1760,6 +1747,12 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Tue Jan 22 2008 John W. Linville <linville at redhat.com>
+- Latest wireless updates from upstream
+- Tidy-up wireless patches
+- Remove obsolete ath5k and rtl8180 patches
+- Add rndis_wext driver
+
 * Tue Jan 22 2008 Chuck Ebbert <cebbert at redhat.com>
 - Disable the p4-clockmod driver -- it causes system hangs. (F8#428895)
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.24 -r 1.25 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.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- linux-2.6-wireless-pending.patch	14 Jan 2008 22:57:07 -0000	1.24
+++ linux-2.6-wireless-pending.patch	23 Jan 2008 03:35:14 -0000	1.25
@@ -1,3 +1,1033 @@
+commit 9fa8e14e585485cec9b2dfbee2c0922bac0841dd
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Mon Jan 21 11:09:46 2008 +0900
+
+    ath5k: always extend rx timestamp with tsf
+    
+    always extend the rx timestamp with the local TSF, since this information is
+    also needed for proper IBSS merging. this is done in the tasklet for now, maybe
+    has to be moved to the interrupt handler like in madwifi.
+    
+    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 584396cce428867706cd07f038815982df011576
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Sat Jan 19 18:18:41 2008 +0900
+
+    ath5k: configure backoff for IBSS beacon queue
+    
+    in "11.1.2.2 Beacon generation in an IBSS" the IEEE802.11 standard says, each
+    STA should... "b) Calculate a random delay uniformly distributed in the range
+    between zero and twice aCWmin × aSlotTime,".
+    
+    configure cwmin and cwmax of the beacon queue in IBSS mode according to this.
+    unfortunately beacon backoff does not work reliably yet, so i suspect we have a
+    problem somewhere else, since the same settings (and similar beacon timer
+    configuration) work for madwifi.
+    
+    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit bcee08a623fac1b1089c26476277fe339eb51e31
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Sat Jan 19 18:18:21 2008 +0900
+
+    ath5k: use SWBA to detect IBSS HW merges
+    
+    use SWBA (software beacon alert) interrupts to keep track of the next beacon
+    time und check if a HW merge (automatic TSF update) has happened on every
+    received beacon with the same BSSID.
+    
+    this is necessary because the atheros hardware will silently update the local
+    TSF in IBSS mode, but not its beacon timers. if the TSF is ahead of the beacon
+    timers no beacons are sent until the timers wrap around (typically after about
+    1 minute).
+    
+    this solution is not very nice, since we have to look into every beacon, but
+    there is apparently no other way to detect HW merges.
+    
+    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
+    drivers/net/wireless/ath5k/base.h:      Changes-licensed-under: 3-Clause-BSD
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6dc94fc9c313cf50cdef52f4bd736382491a70ee
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Sat Jan 19 18:17:59 2008 +0900
+
+    ath5k: better beacon timer calculation
+    
+    update ath5k_beacon_update_timers() for better beacon timer calculation in a
+    variety of situations. most important is the possibility to call it with the
+    timestamp of a received beacon, when we detected that a HW merge has happened
+    and we need to reconfigure the beacon timers based on that.
+    
+    we call this from the mac80211 callback reset_tsf now instead of beacon_update,
+    and there will be more use of it in the next patch.
+    
+    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ded271e319d5c1481f3a3ae024b25f09864f34c9
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Fri Jan 18 21:51:40 2008 +0900
+
+    ath5k: beacon interval is in TU
+    
+    the beacon interval is passed by mac80211 in TU already, so we can directly use
+    it without conversion. also update the comments about TU (1 TU is defined by
+    802.11 as 1024usec).
+    
+    drivers/net/wireless/ath5k/ath5k.h:     Changes-licensed-under: ISC
+    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
+    drivers/net/wireless/ath5k/base.h:      Changes-licensed-under: 3-Clause-BSD
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8ea9e63cadc2c116029c87c06d4c697ba89eb5fc
+Author: Bruno Randolf <bruno at thinktube.com>
+Date:   Fri Jan 18 21:51:19 2008 +0900
+
+    ath5k: use 3 instead of 0x00000003
+    
+    reviewed beacon timer initialization with register traces from madwifi: what we
+    are doing is correct :). one minor fix: use 3 instead of 0x00000003 - it's more
+    readable.
+    
+    drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC
+    
+    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 5a4357185994d38c890f762def993105a9bbd4f7
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Tue Jan 22 20:23:34 2008 +0100
+
+    b43: Fix MAC control and microcode init
+    
+    This zeros out all microcode related memory before loading
+    the microcode.
+    
+    This also fixes initialization of the MAC control register.
+    The _only_ place where we overwrite the contents of the MAC control
+    register is at the beginning of b43_chip_init().
+    All other places must do read() -> mask/set -> write() to not
+    overwrite existing bits.
+    
+    This also adds a longer delay for waiting for the microcode
+    to initialize itself. It seems that the current timeout is sufficient
+    on all available devices, but there's no real reason why we shouldn't
+    wait for up to one second. Slow embedded devices might exist.
+    Better safe than sorry.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 980dff0323602abd34ff95e7e7c6af6360ef640f
+Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+Date:   Tue Jan 22 15:22:29 2008 +0900
+
+    WEXT: remove unused variable
+    
+    As event_type_pk_size[] is not used,  Remove it.
+    
+    Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 44f85d46709f2e88b087f4b84915bb593ea2a352
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Mon Jan 21 15:36:05 2008 -0500
+
+    ath5k: reset key cache after resume
+    
+    Otherwise it may be impossible to connected to an open network after a
+    resume.
+    
+    This is a modified version of an original patch by
+    Alex Eskin <alexeskin at yahoo.com>:
+    
+    	https://bugzilla.redhat.com/show_bug.cgi?id=425950#c8
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit b963fe03c992e9b166bce2def8b88a50eb03fe30
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Mon Jan 21 15:36:04 2008 -0500
+
+    ath5k: use AR5K_KEYTABLE_SIZE when initializing key table
+    
+    ...instead of using AR5K_KEYCACHE_SIZE, which would seem to be a
+    typo/thinko...
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 78b71609d4dc363326a963c5ec23c2b933101a12
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Mon Jan 21 19:55:09 2008 +0100
+
+    b43: Fix firmware caching
+    
+    We must also store the ID string (filename) for the cached firmware blobs
+    and verify that we really have the right firmware cached before using it.
+    If we don't have the right fw cached, we must free it and request the
+    correct blobs.
+    
+    This fixes bandswitch on A/B/G multi-PHY devices.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9bb4b531ab50e802c348d8857285ef07d2b610e6
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
+Date:   Mon Jan 21 12:39:12 2008 +0200
[...201746 lines suppressed...]
+ {
+ 	int i, pos = 0;
+ 
+-	for (i = 0; i < SSB_SPROMSIZE_WORDS; i++) {
++	for (i = 0; i < size; i++)
+ 		pos += snprintf(buf + pos, buf_len - pos - 1,
+ 				"%04X", swab16(sprom[i]) & 0xFFFF);
+-	}
+ 	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
+ 
+ 	return pos + 1;
+ }
+ 
+-static int hex2sprom(u16 *sprom, const char *dump, size_t len)
++static int hex2sprom(u16 *sprom, const char *dump, size_t len, u16 size)
+ {
+ 	char tmp[5] = { 0 };
+ 	int cnt = 0;
+ 	unsigned long parsed;
+ 
+-	if (len < SSB_SPROMSIZE_BYTES * 2)
++	if (len < size * 2)
+ 		return -EINVAL;
+ 
+-	while (cnt < SSB_SPROMSIZE_WORDS) {
++	while (cnt < size) {
+ 		memcpy(tmp, dump, 4);
+ 		dump += 4;
+ 		parsed = simple_strtoul(tmp, NULL, 16);
+@@ -627,7 +677,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+ 	if (!bus)
+ 		goto out;
+ 	err = -ENOMEM;
+-	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
++	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
+ 	if (!sprom)
+ 		goto out;
+ 
+@@ -640,7 +690,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+ 	sprom_do_read(bus, sprom);
+ 	mutex_unlock(&bus->pci_sprom_mutex);
+ 
+-	count = sprom2hex(sprom, buf, PAGE_SIZE);
++	count = sprom2hex(sprom, buf, PAGE_SIZE, bus->sprom_size);
+ 	err = 0;
+ 
+ out_kfree:
+@@ -662,15 +712,15 @@ static ssize_t ssb_pci_attr_sprom_store(
+ 	if (!bus)
+ 		goto out;
+ 	err = -ENOMEM;
+-	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
++	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
+ 	if (!sprom)
+ 		goto out;
+-	err = hex2sprom(sprom, buf, count);
++	err = hex2sprom(sprom, buf, count, bus->sprom_size);
+ 	if (err) {
+ 		err = -EINVAL;
+ 		goto out_kfree;
+ 	}
+-	err = sprom_check_crc(sprom);
++	err = sprom_check_crc(sprom, bus->sprom_size);
+ 	if (err) {
+ 		err = -EINVAL;
+ 		goto out_kfree;
+diff -up linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt
+--- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-22 21:02:03.000000000 -0500
++++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-22 21:19:38.000000000 -0500
+@@ -332,4 +332,36 @@ Why:	This driver has been marked obsolet
+ 	2.4 or later kernels, provides richer features and is more robust.
+ Who:	Stephen Hemminger <shemminger at linux-foundation.org>
+ 
++What:	bcm43xx wireless network driver
++When:	2.6.26
++Files:	drivers/net/wireless/bcm43xx
++Why:	This driver's functionality has been replaced by the
++	mac80211-based b43 and b43legacy drivers.
++Who:	John W. Linville <linville at tuxdriver.com>
 +
-+	if (info->attrs[NL80211_ATTR_MAC])
-+		mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
++---------------------------
 +
-+	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
-+	if (err)
-+		return err;
++What:	ieee80211 softmac wireless networking component
++When:	2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
++Files:	net/ieee80211/softmac
++Why:	No in-kernel drivers will depend on it any longer.
++Who:	John W. Linville <linville at tuxdriver.com>
 +
-+	if (!drv->ops->del_station) {
-+		err = -EOPNOTSUPP;
-+		goto out;
-+	}
+ ---------------------------
 +
-+	rtnl_lock();
-+	err = drv->ops->del_station(&drv->wiphy, dev, mac_addr);
-+	rtnl_unlock();
++What:	rc80211-simple rate control algorithm for mac80211
++When:	2.6.26
++Files:	net/mac80211/rc80211-simple.c
++Why:	This algorithm was provided for reference but always exhibited bad
++	responsiveness and performance and has some serious flaws. It has been
++	replaced by rc80211-pid.
++Who:	Stefano Brivio <stefano.brivio at polimi.it>
 +
-+ out:
-+	cfg80211_put_dev(drv);
-+	dev_put(dev);
-+	return err;
-+}
++---------------------------
 +
- static struct genl_ops nl80211_ops[] = {
- 	{
- 		.cmd = NL80211_CMD_GET_WIPHY,
-@@ -374,6 +1044,73 @@ static struct genl_ops nl80211_ops[] = {
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
- 	},
-+	{
-+		.cmd = NL80211_CMD_GET_KEY,
-+		.doit = nl80211_get_key,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_SET_KEY,
-+		.doit = nl80211_set_key,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_NEW_KEY,
-+		.doit = nl80211_new_key,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_DEL_KEY,
-+		.doit = nl80211_del_key,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_SET_BEACON,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+		.doit = nl80211_addset_beacon,
-+	},
-+	{
-+		.cmd = NL80211_CMD_NEW_BEACON,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+		.doit = nl80211_addset_beacon,
-+	},
-+	{
-+		.cmd = NL80211_CMD_DEL_BEACON,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+		.doit = nl80211_del_beacon,
-+	},
-+	{
-+		.cmd = NL80211_CMD_GET_STATION,
-+		.doit = nl80211_get_station,
-+		/* TODO: implement dumpit */
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_SET_STATION,
-+		.doit = nl80211_set_station,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_NEW_STATION,
-+		.doit = nl80211_new_station,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
-+	{
-+		.cmd = NL80211_CMD_DEL_STATION,
-+		.doit = nl80211_del_station,
-+		.policy = nl80211_policy,
-+		.flags = GENL_ADMIN_PERM,
-+	},
- };
- 
- /* multicast groups */
++What:	b43 support for firmware revision < 410
++When:	July 2008
++Why:	The support code for the old firmware hurts code readability/maintainability
++	and slightly hurts runtime performance. Bugfixes for the old firmware
++	are not provided by Broadcom anymore.
++Who:	Michael Buesch <mb at bu3sch.de>

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.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- linux-2.6-wireless.patch	17 Jan 2008 18:47:15 -0000	1.18
+++ linux-2.6-wireless.patch	23 Jan 2008 03:35:16 -0000	1.19
@@ -1,88 +1,6 @@
-commit 2518812da9315f4ebc6b11b5289e5ef205a34ced
-Author: Eric Paris <eparis at redhat.com>
-Date:   Sun Jan 13 16:20:56 2008 -0500
-
-    rfkill: call rfkill_led_trigger_unregister() on error
-    
-    Code inspection turned up that error cases in rfkill_register() do not
-    call rfkill_led_trigger_unregister() even though we have already
-    registered.
-    
-    Signed-off-by: Eric Paris <eparis at redhat.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit d101f6496d51cbeb285f531dff059ce0ef28ffe3
-Author: Ivo van Doorn <ivdoorn at gmail.com>
-Date:   Fri Jan 11 20:53:07 2008 +0100
-
-    rt2x00: Fix ieee80211 payload alignment
-    
-    As Johannes Berg indicated, the NET_IP_ALIGN doesn't
-    need to be used for ieee80211 frames. This means we
-    can simplify the alignment calculation to just
-    use the result of the header size modulus 4 as frame
-    alignment.
-    
-    Furthermore we shouldn't use NET_IP_ALIGN in rt2x00usb
-    because it could be 0 on some architectures and we absolutely
-    need to have 2 bytes reserved for possible aligning.
-    
-    Signed-off-by: Ivo van Doorn<IvDoorn at gmail.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit a38db5b6219d88e2b48f07472c436b19b864f93c
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sun Jan 13 18:30:14 2008 +0100
-
-    b43: fix use-after-free rfkill bug
-    
-    Fix rfkill code which caused a use-after-free bug.
-    
-    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
-    Acked-by: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 8ff9d21ee2ac7eceeb6ba3da52c3472dcab435e4
-Author: Stefano Brivio <stefano.brivio at polimi.it>
-Date:   Sat Jan 12 23:12:26 2008 +0100
-
-    ipw2200: fix typo in kerneldoc
-    
-    Fix a typo in kerneldoc for ipw2200.
-    
-    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 436c8854a05add153a9003b3aa19e54851ed902f
-Author: Marc Pignat <marc.pignat at hevs.ch>
-Date:   Fri Jan 11 16:12:28 2008 +0100
-
-    wireless/libertas support for 88w8385 sdio older revision
-    
-    Identifiaction of another revision of 88w8385 in sdio mode.
-    
-    Signed-off-by: Marc Pignat <marc.pignat at hevs.ch>
-    Acked-by: Pierre Ossman <drzeus at drzeus.cx>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit e52742deef04ed7babec0f5866c867dd15d449f0
-Author: Randy Dunlap <randy.dunlap at oracle.com>
-Date:   Thu Jan 10 14:31:30 2008 -0800
-
-    hostap: section mismatch warning
-    
-    Fix section mismatch by changing variable name to match one of the
-    whitelisted (allowable) names for pointing into init data:
-    
-    WARNING: vmlinux.o(.data+0xce618): Section mismatch: reference to .init.data:prism2_plx_id_table (between 'prism2_plx_drv_id' and 'dev_info')
-    
-    Signed-off-by: Randy Dunlap <randy.dunlap at oracle.com>
-    Acked-by: Sam Ravnborg <sam at ravnborg.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
 diff -up linux-2.6.23.noarch/net/rfkill/rfkill.c.orig linux-2.6.23.noarch/net/rfkill/rfkill.c
---- linux-2.6.23.noarch/net/rfkill/rfkill.c.orig	2008-01-17 13:12:24.000000000 -0500
-+++ linux-2.6.23.noarch/net/rfkill/rfkill.c	2008-01-17 13:21:22.000000000 -0500
+--- linux-2.6.23.noarch/net/rfkill/rfkill.c.orig	2008-01-22 21:02:35.000000000 -0500
++++ linux-2.6.23.noarch/net/rfkill/rfkill.c	2008-01-22 21:06:36.000000000 -0500
 @@ -392,11 +392,14 @@ int rfkill_register(struct rfkill *rfkil
  	rfkill_led_trigger_register(rfkill);
  
@@ -99,129 +17,33 @@
  		rfkill_remove_switch(rfkill);
  		return error;
  	}
-diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c.orig linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c
---- linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c.orig	2008-01-17 13:12:21.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c	2008-01-17 13:21:40.000000000 -0500
-@@ -138,8 +138,11 @@ void b43_rfkill_init(struct b43_wldev *d
- 	rfk->rfkill->user_claim_unsupported = 1;
- 
- 	rfk->poll_dev = input_allocate_polled_device();
--	if (!rfk->poll_dev)
--		goto err_free_rfk;
-+	if (!rfk->poll_dev) {
-+		rfkill_free(rfk->rfkill);
-+		goto err_freed_rfk;
+diff -up linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c
+--- linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig	2008-01-22 21:02:30.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-01-22 21:07:13.000000000 -0500
+@@ -6698,6 +6698,11 @@ static int __iwl_up(struct iwl_priv *pri
+ 		return 0;
+ 	}
+ 
++	if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) {
++		IWL_ERROR("ucode not available for device bringup\n");
++		return -EIO;
 +	}
 +
- 	rfk->poll_dev->private = dev;
- 	rfk->poll_dev->poll = b43_rfkill_poll;
- 	rfk->poll_dev->poll_interval = 1000; /* msecs */
-@@ -175,8 +178,7 @@ err_unreg_rfk:
- err_free_polldev:
- 	input_free_polled_device(rfk->poll_dev);
- 	rfk->poll_dev = NULL;
--err_free_rfk:
--	rfkill_free(rfk->rfkill);
-+err_freed_rfk:
- 	rfk->rfkill = NULL;
- out_error:
- 	rfk->registered = 0;
-@@ -195,6 +197,5 @@ void b43_rfkill_exit(struct b43_wldev *d
- 	rfkill_unregister(rfk->rfkill);
- 	input_free_polled_device(rfk->poll_dev);
- 	rfk->poll_dev = NULL;
--	rfkill_free(rfk->rfkill);
- 	rfk->rfkill = NULL;
- }
-diff -up linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c.orig linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c
---- linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c.orig	2008-01-17 13:12:21.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c	2008-01-17 13:21:40.000000000 -0500
-@@ -871,6 +871,10 @@ static int if_sdio_probe(struct sdio_fun
- 		if (sscanf(func->card->info[i],
- 				"ID: %x", &model) == 1)
- 			break;
-+               if (!strcmp(func->card->info[i], "IBIS Wireless SDIO Card")) {
-+                       model = 4;
-+                       break;
-+               }
- 	}
+ 	iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
  
- 	if (i == func->card->num_info) {
-diff -up linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c.orig linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c
---- linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c.orig	2008-01-17 13:12:21.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c	2008-01-17 13:21:40.000000000 -0500
-@@ -4935,7 +4935,7 @@ static int ipw_queue_reset(struct ipw_pr
- /**
-  * Reclaim Tx queue entries no more used by NIC.
-  *
-- * When FW adwances 'R' index, all entries between old and
-+ * When FW advances 'R' index, all entries between old and
-  * new 'R' index need to be reclaimed. As result, some free space
-  * forms. If there is enough free space (> low mark), wake Tx queue.
-  *
-diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c
---- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c.orig	2008-01-17 13:12:21.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c	2008-01-17 13:21:40.000000000 -0500
-@@ -245,13 +245,20 @@ static void rt2x00usb_interrupt_rxdone(s
- 	 * Allocate a new sk buffer to replace the current one.
- 	 * If allocation fails, we should drop the current frame
- 	 * so we can recycle the existing sk buffer for the new frame.
-+	 * As alignment we use 2 and not NET_IP_ALIGN because we need
-+	 * to be sure we have 2 bytes room in the head. (NET_IP_ALIGN
-+	 * can be 0 on some hardware). We use these 2 bytes for frame
-+	 * alignment later, we assume that the chance that
-+	 * header_size % 4 == 2 is bigger then header_size % 2 == 0
-+	 * and thus optimize alignment by reserving the 2 bytes in
-+	 * advance.
- 	 */
- 	frame_size = entry->ring->data_size + entry->ring->desc_size;
--	skb = dev_alloc_skb(frame_size + NET_IP_ALIGN);
-+	skb = dev_alloc_skb(frame_size + 2);
- 	if (!skb)
- 		goto skip_entry;
- 
--	skb_reserve(skb, NET_IP_ALIGN);
-+	skb_reserve(skb, 2);
- 	skb_put(skb, frame_size);
- 
- 	/*
-diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c
---- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c.orig	2008-01-17 13:12:21.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c	2008-01-17 13:21:40.000000000 -0500
-@@ -149,7 +149,7 @@ void rt2x00pci_rxdone(struct rt2x00_dev 
- 		 * The data behind the ieee80211 header must be
- 		 * aligned on a 4 byte boundary.
- 		 */
--		align = NET_IP_ALIGN + (2 * (header_size % 4 == 0));
-+		align = header_size % 4;
- 
- 		/*
- 		 * Allocate the sk_buffer, initialize it and copy
-diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c
---- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c.orig	2007-10-09 16:31:38.000000000 -0400
-+++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c	2008-01-17 13:21:40.000000000 -0500
-@@ -608,7 +608,7 @@ static void prism2_plx_remove(struct pci
- 
- MODULE_DEVICE_TABLE(pci, prism2_plx_id_table);
- 
--static struct pci_driver prism2_plx_drv_id = {
-+static struct pci_driver prism2_plx_driver = {
- 	.name		= "hostap_plx",
- 	.id_table	= prism2_plx_id_table,
- 	.probe		= prism2_plx_probe,
-@@ -618,13 +618,13 @@ static struct pci_driver prism2_plx_drv_
- 
- static int __init init_prism2_plx(void)
- {
--	return pci_register_driver(&prism2_plx_drv_id);
-+	return pci_register_driver(&prism2_plx_driver);
- }
- 
- 
- static void __exit exit_prism2_plx(void)
- {
--	pci_unregister_driver(&prism2_plx_drv_id);
-+	pci_unregister_driver(&prism2_plx_driver);
- }
+ 	rc = iwl_hw_nic_init(priv);
+diff -up linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c
+--- linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig	2008-01-22 21:02:30.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-01-22 21:07:13.000000000 -0500
+@@ -6342,6 +6342,11 @@ static int __iwl_up(struct iwl_priv *pri
+ 		return 0;
+ 	}
  
++	if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) {
++		IWL_ERROR("ucode not available for device bringup\n");
++		return -EIO;
++	}
++
+ 	iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
  
+ 	rc = iwl_hw_nic_init(priv);


--- linux-2.6-ath5k.patch DELETED ---


--- linux-2.6-rtl8180.patch DELETED ---


--- linux-2.6-wireless-fixes.patch DELETED ---


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


--- linux-2.6-wireless-reverts.patch DELETED ---




More information about the fedora-extras-commits mailing list