aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis R. Rodriguez <mcgrof@winlab.rutgers.edu>2007-11-27 21:50:37 -0500
committerLuis R. Rodriguez <mcgrof@winlab.rutgers.edu>2007-11-27 21:50:37 -0500
commit74b873996d8e53141fefbdf29ae186ba1b2a215c (patch)
tree8847f4342f5f3e9894079787b53413a683e6886a
parent7cfa7d93b330fc7c5c0f151a553522cff71091bc (diff)
downloadcompat-wireless-2.6-old-74b873996d8e53141fefbdf29ae186ba1b2a215c.tar.gz
Well I think this adds all new and actively patched drivers. If I missed
anyone please let me know. Not adding old softmac as that will die very soon. * Adds ipw2100, ipw2200 * Adds net/ieee80211/ for Intel's ipw drivers and libertas. This required porting sg_init_table(). * I thought I had added b43legacy, I hadn't this adds it for sure * Update docs, added TODO list on README * Fix uninstall, wasn't removing all modules as claimed Signed-off-by: Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
-rw-r--r--Makefile65
-rw-r--r--README87
-rw-r--r--compat/compat.diff213
-rw-r--r--compat/compat.h49
-rw-r--r--config.mk35
-rwxr-xr-xscripts/admin-update.sh6
-rwxr-xr-xscripts/load.sh3
-rwxr-xr-xscripts/unload.sh6
8 files changed, 302 insertions, 162 deletions
diff --git a/Makefile b/Makefile
index ec00f94..fc83d6c 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ ifneq ($(KERNELRELEASE),)
NOSTDINC_FLAGS := -I$(PWD)/include/ $(CFLAGS)
NOSTDINC_FLAGS := -I$(PWD)/include/ -include $(M)/compat/compat.h $(CFLAGS)
-obj-y := net/wireless/ net/mac80211/ \
+obj-y := net/wireless/ net/mac80211/ net/ieee80211/ \
drivers/ssb/ \
drivers/misc/ \
drivers/net/wireless/
@@ -67,15 +67,32 @@ install:
@echo "Currently detected wireless subsystem modules:"
@echo
@modprobe -l mac80211
- @# rc80211_simple is no longer a module
- @#modprobe -l rc80211_simple
+ @# rc80211_simple is a module only on 2.6.22 and 2.6.23
@modprobe -l cfg80211
+ @modprobe -l adm8211
@modprobe -l ath5k
- @modprobe -l ssb
@modprobe -l b43
+ @modprobe -l b43legacy
+ @modprobe -l ssb
@modprobe -l iwl3945
- @# This needs testing before we add it
- @#modprobe -l iwl4965
+ @modprobe -l iwl4965
+ @modprobe -l ipw2100
+ @modprobe -l ipw2200
+ @modprobe -l ieee80211
+ @modprobe -l ieee80211_crypt
+ @modprobe -l libertas_cs
+ @modprobe -l ub8xxx
+ @modprobe -l p54pci
+ @modprobe -l p54usb
+ @modprobe -l rt2400pci
+ @modprobe -l rt2500pci
+ @modprobe -l rt2500usb
+ @modprobe -l rt61pci
+ @modprobe -l rt73usb
+ @modprobe -l rtl8180
+ @modprobe -l rtl8187
+ @# rc80211_simple is no longer a module
+ @#modprobe -l rc80211_simple
@modprobe -l zd1211rw-mac80211
@echo
@echo Now run: make load
@@ -87,8 +104,12 @@ uninstall:
@# New location, matches upstream
@rm -rf $(KLIB)/$(KMODDIR)/net/mac80211/
@rm -rf $(KLIB)/$(KMODDIR)/net/wireless/
+ @rm -rf $(KLIB)/$(KMODDIR)/net/ieee80211/
@rm -rf $(KLIB)/$(KMODDIR)/drivers/ssb/
@rm -rf $(KLIB)/$(KMODDIR)/drivers/net/wireless/
+ @# Lets only remove the stuff we are sure we are providing
+ @# on the misc directory.
+ @rm -f $(KLIB)/$(KMODDIR)/drivers/misc/eeprom_93cx6.ko
@depmod -ae
@/usr/sbin/athenable madwifi
@/usr/sbin/b43enable bcm43xx
@@ -96,20 +117,38 @@ uninstall:
@echo "Your old wireless subsystem modules were left intact:"
@echo
@modprobe -l mac80211
- @# rc80211_simple is a module on 2.6.22 and 2.6.23 though
- @modprobe -l rc80211_simple
@modprobe -l cfg80211
+ @# rc80211_simple is a module on 2.6.22 and 2.6.23 though
+ @modprobe -l adm8211
@modprobe -l ath5k
- @modprobe -l ssb
@modprobe -l b43
@modprobe -l b43legacy
+ @modprobe -l ssb
+ @modprobe -l rc80211_simple
@modprobe -l iwl3945
@modprobe -l iwl4965
- @modprobe -l ipw3945
- @modprobe -l ath_pci
- @modprobe -l ath_hal
+ @modprobe -l ipw2100
+ @modprobe -l ipw2200
+ @modprobe -l ieee80211
+ @modprobe -l ieee80211_crypt
+ @modprobe -l libertas_cs
+ @modprobe -l mac80211
+ @modprobe -l ub8xxx
+ @modprobe -l p54pci
+ @modprobe -l p54usb
+ @modprobe -l rt2400pci
+ @modprobe -l rt2500pci
+ @modprobe -l rt2500usb
+ @modprobe -l rt61pci
+ @modprobe -l rt73usb
+ @modprobe -l rtl8180
+ @modprobe -l rtl8187
+ @# rc80211_simple is no longer a module
+ @#modprobe -l rc80211_simple
@modprobe -l zd1211rw-mac80211
- @modprobe -l bcm43xx
+ @# Old kernels have ieee80211softmac, this will be removed soon :)
+ @modprobe -l ieee80211softmac
+ @
@echo
unload:
diff --git a/README b/README
index c0b4049..9b32339 100644
--- a/README
+++ b/README
@@ -5,8 +5,9 @@ Linux Wireless compatibility package
This is a Linux wireless compatibility package which provides the latest
Linux wireless subsystem enhancements for kernels 2.6.22 and above. We provide
compatibility support since 2.6.22 as that is when mac80211 was introduced
-onto the stock kernel. This adds mac80211 and mac80211 drivers as we go on testing
-them.
+onto the stock kernel. This adds mac80211, mac80211 drivers, and any new
+full MAC driver which has had fairly recent updates worth getting such as
+libertas, ipw2100 and ipw2200.
If you'd like to keep the wireless-2.6 git repository local as well, please read
out git-guide which explains how to achieve this:
@@ -28,7 +29,8 @@ Where to get the latest
This package lets you build your own 'latest', all you need is a local git repository
checkout of wireless-2.6.git. However since not many users are expected to keep
-the git repository updated we provide hourly snapshots against the latest at:
+a local git repository of wireless-2.6 we provide daily snapshots of this
+package + the wireless subsystem code. You can find the latest snapshot at:
http://linuxwireless.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2
@@ -54,15 +56,31 @@ distribution's supported drivers.
Load:
-This unloads your old mac80211 and wireless drivers and loads the new
-shiny ones. For example if ipw3945 and its proprietary daemon are found
-it'll be stopped and the module unloaded and then iwl3945 will be loaded.
+If you know what module you need you can simply load the module using modprobe.
+Note that if you are loading a mac80211 driver you must unload your current
+mac80211 drivers as you have a new one to replace it with. Note also that
+broadcom, zydas, and atheros devices have old legacy drivers which
+you need to be sure are removed first. We provide a mechanism to unload all
+old drivers and also load all new drivers if you are not sure what you are
+doing.
+
+So, if you simply are not sure you can use:
sudo make load
+This unloads your old wireless subsystem drivers and loads the new
+shiny ones. For example if ipw3945 and its proprietary daemon are found
+it'll be stopped and the module unloaded and then iwl3945 will be loaded.
+If you are simply upgrading a mac80211 driver this will unload
+the old one and the old mac80211 drivers and load the new ones.
+
Drivers
-------
+This is the list of drivers this package provides. It adds
+all new drivers or drivers which keep being updated which you might
+be interested in.
+
Driver 2.6.22 2.6.23
adm8211 ? ?
ath5k OK ?
@@ -70,6 +88,8 @@ b43 OK ?
b43legacy ? ?
iwl3945 OK ?
iwl4965 ? ?
+ipw2100 ? ?
+ipw2200 ? ?
libertas_cs (Libertas) ? ?
ub8xxx (Libertas) ? ?
p54pci OK ?
@@ -103,7 +123,7 @@ drivers (b43 and b43legacy) you can run:
sudo b43load b43
-To revert back to ath5k you can run:
+To revert back to bcm43xx you can run:
sudo b43load bcm43xx
@@ -121,6 +141,26 @@ To revert back to ath5k you can run:
sudo athload ath5k
+* prism54, p54pci, p54usb?
+
+We don't provide prism54 in this package because distributions already provide
+it. p54 is its replacement. prism54 works only with full MAC cards. p54 works
+with both full MAC and soft MAC cards. p54 just doesn't yet support ad-hoc,
+and AP mode. Should prism54 get any new updates we'll start packaging it here.
+
+* What about net/ieee80211/softmac/ and their drivers?
+
+Documentation/feature-removal-schedule.txt is being updated to
+mark this for removal. Here is the relevant text:
+
+---
+What: iee80211 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@tuxdriver.com>
+---
+
* Firmare:
If your driver needs firmware please be sure to check the driver page
@@ -167,36 +207,19 @@ to building this package is licensed under the GPLv2.
Developers
----------
-Please try adding new drivers, test them and if they work enable them. You
-can then send patches. Compatibility work goes into compat/compat.[ch]. If
-using those files do not suffice additional actual code changes can go into
-compat/compat.diff.
+Compatibility work goes into compat/compat.[ch]. If using those files do
+not suffice additional actual code changes can go into compat/compat.diff.
scripts/admin-clean.sh - Cleans the compat-wireless-2.6 tree
scripts/admin-update.sh - Updates compat-wireless-2.6 with your git tree
scripts/admin-refresh.sh - Does the above two
-To add new drivers:
-
-1. Add directory to scripts/admin-update.sh $DRIVERS variable
-2. Add new compat-wireless-2.6/ dir to obj-y on the local Makefile
-3. Update compat patch:
-
- cd ..
- cp -a compat-wireless-2.6/ compat-wireless-2.6.old
- cp compat-wireless-2.6/drivers/foo/Makefile compat-wireless-2.6/.old/drivers/Makefile.old
- # edit drivers/foo/Makefile and make necessary changes to enable module
- diff -u compat-wireless-2.6.old/drivers/foo/Makefile.old \
- compat-wireless-2.6/drivers/foo/Makefile >> \
- compat/compat.diff
- # Append to compat/compat.[ch] any new changes needed
- # to support the driver, please be specific about the reasons
- # for your additions
-
-4. Refresh and test:
- cd compat-wireless-2.6/
- ./scripts/admin-refresh.sh
-5. Send patches of the work
+TODO
+----
+
+* Finish nl80211 port
+* Compatibilty work for 2.6.18 --> 2.6.21
+* Dialog (make menuconfig) option for this package
Patches for compatibility work
------------------------------
diff --git a/compat/compat.diff b/compat/compat.diff
index 257e035..5f645bf 100644
--- a/compat/compat.diff
+++ b/compat/compat.diff
@@ -28,50 +28,6 @@
#include <net/ieee80211_radiotap.h>
#include <net/cfg80211.h>
#include <net/mac80211.h>
---- a/net/mac80211/util.c 2007-11-09 13:14:57.000000000 -0500
-+++ b/net/mac80211/util.c 2007-11-09 15:41:40.000000000 -0500
-@@ -20,7 +20,9 @@
- #include <linux/if_arp.h>
- #include <linux/wireless.h>
- #include <linux/bitmap.h>
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- #include <net/net_namespace.h>
-+#endif
- #include <net/cfg80211.h>
-
- #include "ieee80211_i.h"
---- a/net/mac80211/ieee80211.c 2007-11-07 12:42:38.000000000 -0500
-+++ b/net/mac80211/ieee80211.c 2007-11-09 13:18:58.000000000 -0500
-@@ -21,7 +21,9 @@
- #include <linux/wireless.h>
- #include <linux/rtnetlink.h>
- #include <linux/bitmap.h>
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- #include <net/net_namespace.h>
-+#endif
- #include <net/cfg80211.h>
-
- #include "ieee80211_i.h"
-@@ -400,7 +402,9 @@
- void ieee80211_if_setup(struct net_device *dev)
- {
- ether_setup(dev);
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- dev->header_ops = &ieee80211_header_ops;
-+#endif
- dev->hard_start_xmit = ieee80211_subif_start_xmit;
- dev->wireless_handlers = &ieee80211_iw_handler_def;
- dev->set_multicast_list = ieee80211_set_multicast_list;
-@@ -987,7 +991,9 @@
- mdev->open = ieee80211_master_open;
- mdev->stop = ieee80211_master_stop;
- mdev->type = ARPHRD_IEEE80211;
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- mdev->header_ops = &ieee80211_header_ops;
-+#endif
- mdev->set_multicast_list = ieee80211_master_set_multicast_list;
-
- sdata->type = IEEE80211_IF_TYPE_AP;
--- a/net/wireless/sysfs.c 2007-11-06 16:05:57.000000000 -0500
+++ b/net/wireless/sysfs.c 2007-11-06 16:07:17.000000000 -0500
@@ -52,6 +52,7 @@
@@ -455,61 +411,6 @@
return 0;
---- a/drivers/net/wireless/Makefile 2007-11-15 20:36:34.000000000 -0500
-+++ b/drivers/net/wireless/Makefile 2007-11-15 20:37:26.000000000 -0500
-@@ -2,52 +2,10 @@
- # Makefile for the Linux Wireless network device drivers.
- #
-
--obj-$(CONFIG_IPW2100) += ipw2100.o
--
--obj-$(CONFIG_IPW2200) += ipw2200.o
--
--obj-$(CONFIG_STRIP) += strip.o
--obj-$(CONFIG_ARLAN) += arlan.o
--
--arlan-objs := arlan-main.o arlan-proc.o
--
--# Obsolete cards
--obj-$(CONFIG_WAVELAN) += wavelan.o
--obj-$(CONFIG_PCMCIA_NETWAVE) += netwave_cs.o
--obj-$(CONFIG_PCMCIA_WAVELAN) += wavelan_cs.o
--
--obj-$(CONFIG_HERMES) += orinoco.o hermes.o
--obj-$(CONFIG_PCMCIA_HERMES) += orinoco_cs.o
--obj-$(CONFIG_APPLE_AIRPORT) += airport.o
--obj-$(CONFIG_PLX_HERMES) += orinoco_plx.o
--obj-$(CONFIG_PCI_HERMES) += orinoco_pci.o
--obj-$(CONFIG_TMD_HERMES) += orinoco_tmd.o
--obj-$(CONFIG_NORTEL_HERMES) += orinoco_nortel.o
--obj-$(CONFIG_PCMCIA_SPECTRUM) += spectrum_cs.o
--
--obj-$(CONFIG_AIRO) += airo.o
--obj-$(CONFIG_AIRO_CS) += airo_cs.o airo.o
--
--obj-$(CONFIG_ATMEL) += atmel.o
--obj-$(CONFIG_PCI_ATMEL) += atmel_pci.o
--obj-$(CONFIG_PCMCIA_ATMEL) += atmel_cs.o
--
--obj-$(CONFIG_USB_ATMEL) += at76_usb.o
--
--obj-$(CONFIG_PRISM54) += prism54/
--
--obj-$(CONFIG_HOSTAP) += hostap/
--obj-$(CONFIG_BCM43XX) += bcm43xx/
- obj-$(CONFIG_B43) += b43/
- obj-$(CONFIG_B43LEGACY) += b43legacy/
--obj-$(CONFIG_ZD1211RW) += zd1211rw/
- obj-$(CONFIG_ZD1211RW_MAC80211) += zd1211rw-mac80211/
-
--# 16-bit wireless PCMCIA client drivers
--obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
--obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
--
--obj-$(CONFIG_USB_ZD1201) += zd1201.o
- obj-$(CONFIG_LIBERTAS) += libertas/
-
- rtl8180-objs := rtl8180_dev.o rtl8180_rtl8225.o
--- a/drivers/misc/Makefile 2007-11-15 22:15:29.000000000 -0500
+++ b/drivers/misc/Makefile 2007-11-15 22:15:45.000000000 -0500
@@ -3,17 +3,4 @@
@@ -568,3 +469,117 @@
.get_ethtool_stats = lbs_ethtool_get_stats,
.get_strings = lbs_ethtool_get_strings,
};
+--- a/net/mac80211/util.c 2007-11-27 18:13:44.000000000 -0500
++++ b/net/mac80211/util.c 2007-11-27 18:13:45.000000000 -0500
+@@ -20,7 +20,9 @@
+ #include <linux/if_arp.h>
+ #include <linux/wireless.h>
+ #include <linux/bitmap.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ #include <net/net_namespace.h>
++#endif
+ #include <net/cfg80211.h>
+ #include <net/rtnetlink.h>
+
+--- a/net/mac80211/ieee80211.c 2007-11-27 18:14:16.000000000 -0500
++++ b/net/mac80211/ieee80211.c 2007-11-27 18:14:16.000000000 -0500
+@@ -21,7 +21,9 @@
+ #include <linux/wireless.h>
+ #include <linux/rtnetlink.h>
+ #include <linux/bitmap.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ #include <net/net_namespace.h>
++#endif
+ #include <net/cfg80211.h>
+
+ #include "ieee80211_i.h"
+@@ -423,7 +425,9 @@
+ void ieee80211_if_setup(struct net_device *dev)
+ {
+ ether_setup(dev);
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ dev->header_ops = &ieee80211_header_ops;
++#endif
+ dev->hard_start_xmit = ieee80211_subif_start_xmit;
+ dev->wireless_handlers = &ieee80211_iw_handler_def;
+ dev->set_multicast_list = ieee80211_set_multicast_list;
+@@ -1010,7 +1014,9 @@
+ mdev->open = ieee80211_master_open;
+ mdev->stop = ieee80211_master_stop;
+ mdev->type = ARPHRD_IEEE80211;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ mdev->header_ops = &ieee80211_header_ops;
++#endif
+ mdev->set_multicast_list = ieee80211_master_set_multicast_list;
+
+ sdata->type = IEEE80211_IF_TYPE_AP;
+--- a/net/ieee80211/Makefile 2007-11-27 20:00:21.000000000 -0500
++++ b/net/ieee80211/Makefile 2007-11-27 19:58:36.000000000 -0500
+@@ -10,4 +10,3 @@
+ ieee80211_wx.o \
+ ieee80211_geo.o
+
+-obj-$(CONFIG_IEEE80211_SOFTMAC) += softmac/
+--- a/net/ieee80211/ieee80211_module.c 2007-11-27 19:55:49.000000000 -0500
++++ b/net/ieee80211/ieee80211_module.c 2007-11-27 19:56:25.000000000 -0500
+@@ -47,7 +47,9 @@
+ #include <linux/wireless.h>
+ #include <linux/etherdevice.h>
+ #include <asm/uaccess.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ #include <net/net_namespace.h>
++#endif
+ #include <net/arp.h>
+
+ #include <net/ieee80211.h>
+--- a/drivers/net/wireless/Makefile 2007-11-27 21:27:30.000000000 -0500
++++ b/drivers/net/wireless/Makefile 2007-11-27 21:27:13.000000000 -0500
+@@ -6,48 +6,10 @@
+
+ obj-$(CONFIG_IPW2200) += ipw2200.o
+
+-obj-$(CONFIG_STRIP) += strip.o
+-obj-$(CONFIG_ARLAN) += arlan.o
+-
+-arlan-objs := arlan-main.o arlan-proc.o
+-
+-# Obsolete cards
+-obj-$(CONFIG_WAVELAN) += wavelan.o
+-obj-$(CONFIG_PCMCIA_NETWAVE) += netwave_cs.o
+-obj-$(CONFIG_PCMCIA_WAVELAN) += wavelan_cs.o
+-
+-obj-$(CONFIG_HERMES) += orinoco.o hermes.o
+-obj-$(CONFIG_PCMCIA_HERMES) += orinoco_cs.o
+-obj-$(CONFIG_APPLE_AIRPORT) += airport.o
+-obj-$(CONFIG_PLX_HERMES) += orinoco_plx.o
+-obj-$(CONFIG_PCI_HERMES) += orinoco_pci.o
+-obj-$(CONFIG_TMD_HERMES) += orinoco_tmd.o
+-obj-$(CONFIG_NORTEL_HERMES) += orinoco_nortel.o
+-obj-$(CONFIG_PCMCIA_SPECTRUM) += spectrum_cs.o
+-
+-obj-$(CONFIG_AIRO) += airo.o
+-obj-$(CONFIG_AIRO_CS) += airo_cs.o airo.o
+-
+-obj-$(CONFIG_ATMEL) += atmel.o
+-obj-$(CONFIG_PCI_ATMEL) += atmel_pci.o
+-obj-$(CONFIG_PCMCIA_ATMEL) += atmel_cs.o
+-
+-obj-$(CONFIG_USB_ATMEL) += at76_usb.o
+-
+-obj-$(CONFIG_PRISM54) += prism54/
+-
+-obj-$(CONFIG_HOSTAP) += hostap/
+-obj-$(CONFIG_BCM43XX) += bcm43xx/
+ obj-$(CONFIG_B43) += b43/
+ obj-$(CONFIG_B43LEGACY) += b43legacy/
+-obj-$(CONFIG_ZD1211RW) += zd1211rw/
+ obj-$(CONFIG_ZD1211RW_MAC80211) += zd1211rw-mac80211/
+
+-# 16-bit wireless PCMCIA client drivers
+-obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
+-obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
+-
+-obj-$(CONFIG_USB_ZD1201) += zd1201.o
+ obj-$(CONFIG_LIBERTAS) += libertas/
+
+ rtl8180-objs := rtl8180_dev.o rtl8180_rtl8225.o
diff --git a/compat/compat.h b/compat/compat.h
index e23ab9d..c90ffc7 100644
--- a/compat/compat.h
+++ b/compat/compat.h
@@ -7,6 +7,7 @@
#include <linux/genetlink.h>
#include <net/neighbour.h>
#include <linux/version.h>
+#include <linux/scatterlist.h>
/* So all *.[ch] can pick up the options as if defined
* by the kernel's .config. */
@@ -28,6 +29,11 @@
//#define CONFIG_B43_DEBUG 1
#define CONFIG_B43_DMA 1
#define CONFIG_B43_PIO 1
+#define CONFIG_B43LEGACY_PCI_AUTOSELECT 1
+#define CONFIG_B43LEGACY_PCICORE_AUTOSELECT 1
+#define CONFIG_B43LEGACY_DMA 1
+#define CONFIG_B43LEGACY_PIO 1
+#define CONFIG_B43LEGACY_DMA_AND_PIO_MODE 1
#define CONFIG_SSB 1
#define CONFIG_SSB_PCIHOST 1
@@ -42,6 +48,13 @@
#define CONFIG_RT2X00_LIB_FIRMWARE 1
+#define CONFIG_IEEE80211 1
+#define CONFIG_IEEE80211_CRYPT_CCMP 1
+#define CONFIG_IEEE80211_CRYPT_TKIP 1
+#define CONFIG_IEEE80211_CRYPT_WEP 1
+/* Die old softmac, die ! Bleed! */
+#undef CONFIG_IEEE80211_SOFTMAC
+
/* Compat work for 2.6.22 and 2.6.23 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
@@ -97,6 +110,42 @@ struct header_ops {
unsigned char *haddr);
};
+/* net/ieee80211/ieee80211_crypt_tkip uses sg_init_table. This was added on
+ * 2.6.24. CONFIG_DEBUG_SG was added in 2.6.24 as well, so lets just ignore
+ * the debug stuff. Note that adding this required changes to the struct
+ * scatterlist on include/asm/scatterlist*, so the right way to port this
+ * is to simply ignore the new structure changes and zero the scatterlist
+ * array. We lave the kdoc intact for reference.
+ */
+
+/**
+ * sg_mark_end - Mark the end of the scatterlist
+ * @sg: SG entryScatterlist
+ *
+ * Description:
+ * Marks the passed in sg entry as the termination point for the sg
+ * table. A call to sg_next() on this entry will return NULL.
+ *
+ **/
+static inline void sg_mark_end(struct scatterlist *sg)
+{
+}
+
+/**
+ * sg_init_table - Initialize SG table
+ * @sgl: The SG table
+ * @nents: Number of entries in table
+ *
+ * Notes:
+ * If this is part of a chained sg table, sg_mark_end() should be
+ * used only on the last table part.
+ *
+ **/
+static inline void sg_init_table(struct scatterlist *sgl, unsigned int nents)
+{
+ memset(sgl, 0, sizeof(*sgl) * nents);
+}
+
#endif
/* Compat work for 2.6.22 */
diff --git a/config.mk b/config.mk
index 26f4187..9bf141a 100644
--- a/config.mk
+++ b/config.mk
@@ -7,11 +7,6 @@
# build time.
export
-# Intel's ipws, needs the old ieee80211, eh, not yet. This will
-# requires some work.
-CONFIG_IPW2100=n
-CONFIG_IPW2200=n
-
# Wireless subsystem stuff
CONFIG_MAC80211=m
CONFIG_MAC80211_RCSIMPLE=y
@@ -26,7 +21,6 @@ CONFIG_IWL4965=m
CONFIG_ZD1211RW_MAC80211=m
# CONFIG_ZD1211RW_MAC80211_DEBUG is not set
-# Not yet, set to m when ready
CONFIG_B43=m
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
@@ -41,18 +35,13 @@ CONFIG_B43_DMA=y
CONFIG_B43_PIO=y
CONFIG_B43_DMA_AND_PIO_MODE=y
-CONFIG_B43LEGACY=n
+CONFIG_B43LEGACY=m
CONFIG_B43LEGACY_PCI_AUTOSELECT=y
CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
CONFIG_B43LEGACY_DMA=y
CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# Libertas
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-
# This is required for some cards
CONFIG_EEPROM_93CX6=m
@@ -62,7 +51,6 @@ CONFIG_RTL8187=m
CONFIG_ADM8211=m
# rt2x00
-# Not enabled yet, needs some more compat work
CONFIG_RT2X00=m
CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_PCI=m
@@ -95,3 +83,24 @@ CONFIG_SSB_DRIVER_MIPS=n
# CONFIG_SSB_DRIVER_EXTIF=y
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
+
+# Old ieee80211 "stack"
+# Note: old softmac is scheduled for removal so we
+# ignore that stuff
+CONFIG_IEEE80211=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_SOFTMAC=n
+
+# Old drivers which use the old stack
+
+# The Intel ipws
+CONFIG_IPW2100=m
+CONFIG_IPW2200=m
+
+# Libertas
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+
diff --git a/scripts/admin-update.sh b/scripts/admin-update.sh
index ec6967c..5ac8b48 100755
--- a/scripts/admin-update.sh
+++ b/scripts/admin-update.sh
@@ -15,7 +15,7 @@ INCLUDE_LINUX="$INCLUDE_LINUX pci_ids.h bitops.h eeprom_93cx6.h"
INCLUDE_NET="cfg80211.h ieee80211_radiotap.h iw_handler.h"
INCLUDE_NET="$INCLUDE_NET mac80211.h wext.h wireless.h"
-NET_DIRS="wireless mac80211"
+NET_DIRS="wireless mac80211 ieee80211"
GIT_TREE="/home/$USER/devel/wireless-2.6"
# Drivers that have their own directory
@@ -38,9 +38,11 @@ DRIVER_FILES="$DRIVER_FILES adm8211.c adm8211.h"
DRIVER_FILES="$DRIVER_FILES p54.h p54common.h p54common.c net2280.h"
DRIVER_FILES="$DRIVER_FILES p54pci.h p54pci.c"
DRIVER_FILES="$DRIVER_FILES p54usb.h p54usb.c"
+DRIVER_FILES="$DRIVER_FILES ipw2100.h ipw2100.c"
+DRIVER_FILES="$DRIVER_FILES ipw2200.h ipw2200.c"
mkdir -p include/linux/ include/net/ \
- net/mac80211/ net/wireless/ \
+ net/mac80211/ net/wireless/ net/ieee80211/ \
drivers/ssb/ \
drivers/net/wireless/
diff --git a/scripts/load.sh b/scripts/load.sh
index 25c5338..8decc2a 100755
--- a/scripts/load.sh
+++ b/scripts/load.sh
@@ -1,5 +1,6 @@
#!/bin/bash
-MODULES="p54pci p54usb"
+MODULES="ipw2100 ipw2200 libertas_cs ub8xxx"
+MODULES="$MODULES p54pci p54usb"
MODULES="$MODULES adm8211"
MODULES="$MODULES zd1211rw-mac80211 rtl8180 rtl8187"
MODULES="$MODULES p54pci p54usb iwl3945 zd1211rw-mac80211 rtl8180 rtl8187"
diff --git a/scripts/unload.sh b/scripts/unload.sh
index c195bc3..a8c21a2 100755
--- a/scripts/unload.sh
+++ b/scripts/unload.sh
@@ -2,14 +2,16 @@
# The old stack drivers and the mac80211 rc80211_simple modules
# which is no longer on recent kernels (its internal)
-OLD_MODULES="zd1211rw bcm43xx rc80211_simple"
+OLD_MODULES="rc80211_simple zd1211rw bcm43xx"
MODULES="$OLD_MODULES"
+MODULES="$MODULES ieee80211softmac ieee80211_crypt ieee80211"
+MODULES="$MODULES ipw2100 ipw2200"
+MODULES="$MODULES libertas libertas_cs ub8xxx"
MODULES="$MODULES adm8211"
MODULES="$MODULES b43 b43legacy"
MODULES="$MODULES iwl3945 iwl4965"
MODULES="$MODULES ath5k zd1211rw-mac80211"
MODULES="$MODULES p54pci p54usb p54common"
-MODULES="$MODULES libertas libertas_cs usb8xxx"
MODULES="$MODULES rt2400pci rt2500pci rt61pci"
MODULES="$MODULES rt2500usb rt73usb"
MODULES="$MODULES rt2x00usb rt2x00lib"