remove ethernet bonding updates
[openwrt/svn-archive/archive.git] / openwrt / target / linux / brcm-2.6 / patches / 005-bcm43xx-dscape-060328.patch
index 0611a0bcaa8aac3cba313a2832d11230486da0dc..ee88128ae597802494aadb6e482ebe69d76a8bd6 100644 (file)
@@ -1,3 +1,109 @@
+diff -Nur linux-2.6.16/Documentation/networking/bcm43xx-d80211-HOWTO.txt linux-2.6.16-bcm43xx/Documentation/networking/bcm43xx-d80211-HOWTO.txt
+--- linux-2.6.16/Documentation/networking/bcm43xx-d80211-HOWTO.txt     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.16-bcm43xx/Documentation/networking/bcm43xx-d80211-HOWTO.txt     2006-03-28 22:16:14.000000000 +0200
+@@ -0,0 +1,67 @@
++****                                    ****
++****  HOWTO get bcm43xx-dscape running  ****
++****                                    ****
++
++This is a port of the bcm43xx driver for the devicescape ieee802.11
++stack. The devicescape ieee802.11 stack is an advanced out-of-mainline
++802.11 protocol module.
++I will call the "devicescape ieee802.11 stack" simply "dscape" in the
++following text.
++
++
++*** Setting up the bcm43xx driver with dscape is currently non-trivial,
++*** as several modifications to the kernel and the userland
++*** wpa_supplicant tool are required. We are working on it...
++
++
++1)  You need to patch the kernel with the ieee80211-devicescape stack
++    and the bcm43xx-dscape port.
++    Both are available in one cummulative at:
++    ftp://ftp.bu3sch.de/bcm43xx-snapshots/all-in-one/bcm43xx-dscape/
++    Read the instructions on http://bcm43xx.berlios.de/ for how to apply
++    this patch.
++
++    Patch the kernel, compile and install it.
++    When configuring, enable
++    "Networking/Generic IEEE 802.11 Networking Stack (dscape)"
++    and
++    "Device Drivers/Network device support/Wireless LAN (non-hamradio)/Broadcom BCM43xx wireless support (DeviceScape stack)"
++    Reboot.
++
++2)  Set up a wpa_supplicant config file in /etc/wpa_supplicant.conf
++    Here is an example for an AES WPA encrypted network:
++
++      # WPA AES encryption
++      ctrl_interface=/var/run/wpa_supplicant
++      network={
++              ssid="ACCESSPOINT_SSID"
++              key_mgmt=WPA-PSK
++              proto=WPA
++              pairwise=CCMP TKIP
++              group=CCMP TKIP
++              psk="MY PASSPHRASE"
++              priority=3
++      }
++
++3)  Take a bottle of your favourite beer, open it and take a swallow.
++
++4)  Now it's time to bring the driver up.
++    Do modprobe bcm43xx-d80211 to load the driver.
++    There is an ugly bash script to bring the driver up after insmod.
++    It is found in the "scripts" subdirectory of the patched kernel
++    tree and is called "bcm43xx-d80211-sta_up.sh".
++    Call scripts/bcm43xx-d80211-sta_up.sh --help to get some usage information.
++    It may suffice to call scripts/bcm43xx-d80211-sta_up.sh without any parameters. See
++    the help. Default parameters, which are used when called without parameters,
++    are explained there.
++
++5)  If you want to access the internet, make sure your default route
++    is correctly set up with your gateway's IP:
++    route add default gw 192.168.xxx.xxx
++
++6)  Take another swallow from your bottle of beer and test if it works:
++    ping www.kernel.org
++
++7)  If it works, drink the rest of your beer. Otherwise read this HOWTO again,
++    and again and again. Complain to bcm43xx-dev@lists.berlios.de, if it still
++    does not work.
+diff -Nur linux-2.6.16/Documentation/networking/bcm43xx-d80211.txt linux-2.6.16-bcm43xx/Documentation/networking/bcm43xx-d80211.txt
+--- linux-2.6.16/Documentation/networking/bcm43xx-d80211.txt   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.16-bcm43xx/Documentation/networking/bcm43xx-d80211.txt   2006-03-28 22:16:14.000000000 +0200
+@@ -0,0 +1,31 @@
++
++                      BCM43xx Linux Driver Project
++                      ============================
++
++About this software
++-------------------
++
++The goal of this project is to develop a linux driver for Broadcom
++BCM43xx chips, based on the specification at 
++http://bcm-specs.sipsolutions.net/
++
++The project page is http://bcm43xx.berlios.de/
++
++This is a port of the bcm43xx driver for the devicescape ieee802.11
++stack.  
++
++Requirements
++------------
++
++1)    Linux Kernel 2.6.16 or later
++      http://www.kernel.org/
++
++      See Documentation/networking/bcm43xx-d80211-HOWTO.txt for further 
++      instructions. 
++
++2)    Firmware Files
++
++      Please try bcm43xx-fwcutter. It can extract the firmware from various 
++      binary driver files and supports driver files from Windows, MacOS and 
++      Linux. You can get bcm43xx-fwcutter from http://bcm43xx.berlios.de/.
++      Also, bcm43xx-fwcutter comes with a README file for further instructions.
 diff -Nur linux-2.6.16/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c linux-2.6.16-bcm43xx/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c
 --- linux-2.6.16/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.16-bcm43xx/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c 2006-03-28 22:16:14.000000000 +0200
 diff -Nur linux-2.6.16/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c linux-2.6.16-bcm43xx/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c
 --- linux-2.6.16/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.16-bcm43xx/drivers/net/wireless/bcm43xx-d80211/bcm43xx_debugfs.c 2006-03-28 22:16:14.000000000 +0200
@@ -16609,61 +16715,20 @@ diff -Nur linux-2.6.16/include/net/sock.h linux-2.6.16-bcm43xx/include/net/sock.
  
 diff -Nur linux-2.6.16/net/core/dev.c linux-2.6.16-bcm43xx/net/core/dev.c
 --- linux-2.6.16/net/core/dev.c        2006-03-20 06:53:29.000000000 +0100
  
 diff -Nur linux-2.6.16/net/core/dev.c linux-2.6.16-bcm43xx/net/core/dev.c
 --- linux-2.6.16/net/core/dev.c        2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16-bcm43xx/net/core/dev.c        2006-03-28 22:16:14.000000000 +0200
++++ linux-2.6.16-bcm43xx/net/core/dev.c        2006-03-29 14:12:58.000000000 +0200
 @@ -110,10 +110,8 @@
  #include <linux/netpoll.h>
  #include <linux/rcupdate.h>
  #include <linux/delay.h>
 -#ifdef CONFIG_NET_RADIO
 -#include <linux/wireless.h>           /* Note : will define WIRELESS_EXT */
 @@ -110,10 +110,8 @@
  #include <linux/netpoll.h>
  #include <linux/rcupdate.h>
  #include <linux/delay.h>
 -#ifdef CONFIG_NET_RADIO
 -#include <linux/wireless.h>           /* Note : will define WIRELESS_EXT */
-+#include <linux/wireless.h>
++#include <linux/wireless.h>           /* Note : will define CONFIG_WIRELESS_EXT */
  #include <net/iw_handler.h>
 -#endif        /* CONFIG_NET_RADIO */
  #include <asm/current.h>
  
  /*
  #include <net/iw_handler.h>
 -#endif        /* CONFIG_NET_RADIO */
  #include <asm/current.h>
  
  /*
-@@ -1448,8 +1446,29 @@
- {
-       struct net_device *dev = skb->dev;
--      if (dev->master)
-+      if (dev->master) {
-+              /*
-+               * On bonding slaves other than the currently active
-+               * slave, suppress duplicates except for 802.3ad
-+               * ETH_P_SLOW and alb non-mcast/bcast.
-+               */
-+              if (dev->priv_flags & IFF_SLAVE_INACTIVE) {
-+                      if (dev->master->priv_flags & IFF_MASTER_ALB) {
-+                              if (skb->pkt_type != PACKET_BROADCAST &&
-+                                  skb->pkt_type != PACKET_MULTICAST)
-+                                      goto keep;
-+                      }
-+
-+                      if (dev->master->priv_flags & IFF_MASTER_8023AD &&
-+                          skb->protocol == __constant_htons(ETH_P_SLOW))
-+                              goto keep;
-+              
-+                      kfree_skb(skb);
-+                      return NULL;
-+              }
-+keep:
-               skb->dev = dev->master;
-+      }
-       return dev;
- }
-@@ -1593,6 +1612,9 @@
-       orig_dev = skb_bond(skb);
-+      if (!orig_dev)
-+              return NET_RX_DROP;
-+
-       __get_cpu_var(netdev_rx_stat).total++;
-       skb->h.raw = skb->nh.raw = skb->data;
-@@ -2028,7 +2050,7 @@
+@@ -2028,7 +2026,7 @@
        .release = seq_release,
  };
  
        .release = seq_release,
  };
  
@@ -16672,7 +16737,7 @@ diff -Nur linux-2.6.16/net/core/dev.c linux-2.6.16-bcm43xx/net/core/dev.c
  extern int wireless_proc_init(void);
  #else
  #define wireless_proc_init() 0
  extern int wireless_proc_init(void);
  #else
  #define wireless_proc_init() 0
-@@ -2582,7 +2604,7 @@
+@@ -2582,7 +2580,7 @@
                                        ret = -EFAULT;
                                return ret;
                        }
                                        ret = -EFAULT;
                                return ret;
                        }
@@ -16681,7 +16746,7 @@ diff -Nur linux-2.6.16/net/core/dev.c linux-2.6.16-bcm43xx/net/core/dev.c
                        /* Take care of Wireless Extensions */
                        if (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) {
                                /* If command is `set a parameter', or
                        /* Take care of Wireless Extensions */
                        if (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) {
                                /* If command is `set a parameter', or
-@@ -2603,7 +2625,7 @@
+@@ -2603,7 +2601,7 @@
                                        ret = -EFAULT;
                                return ret;
                        }
                                        ret = -EFAULT;
                                return ret;
                        }