summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2009-05-07 16:08:21 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2009-05-07 16:08:21 +0000
commitaf94b9571dcc238445b09dd0ba1f0580db4abe94 (patch)
treeddc4fe4a1ca24efc05b25d1ab05d383080546a66 /net-wireless
parentarm/ia64/s390/sh/sparc stable wrt #267528 (diff)
downloadhistorical-af94b9571dcc238445b09dd0ba1f0580db4abe94.tar.gz
historical-af94b9571dcc238445b09dd0ba1f0580db4abe94.tar.bz2
historical-af94b9571dcc238445b09dd0ba1f0580db4abe94.zip
Fixed patches, bug #265385.
Package-Manager: portage-2.1.6.11/cvs/Linux x86_64
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/broadcom-sta/ChangeLog14
-rw-r--r--net-wireless/broadcom-sta/Manifest8
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-5.10.79.10-r4.ebuild51
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-5.10.91.9-r1.ebuild49
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-license.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-r4-linux-2.6.29.patch177
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-r1-linux-2.6.29.patch185
8 files changed, 506 insertions, 2 deletions
diff --git a/net-wireless/broadcom-sta/ChangeLog b/net-wireless/broadcom-sta/ChangeLog
index 3371f4fd5a5b..6c66e58983f6 100644
--- a/net-wireless/broadcom-sta/ChangeLog
+++ b/net-wireless/broadcom-sta/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for net-wireless/broadcom-sta
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.6 2009/05/04 23:57:49 matsuu Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.7 2009/05/07 16:08:21 matsuu Exp $
+
+*broadcom-sta-5.10.91.9-r1 (07 May 2009)
+*broadcom-sta-5.10.79.10-r4 (07 May 2009)
+
+ 07 May 2009; MATSUU Takuto <matsuu@gentoo.org>
+ +broadcom-sta-5.10.79.10-r4.ebuild,
+ +files/broadcom-sta-5.10.79.10-license.patch,
+ +files/broadcom-sta-5.10.79.10-r4-linux-2.6.29.patch,
+ +broadcom-sta-5.10.91.9-r1.ebuild,
+ +files/broadcom-sta-5.10.91.9-license.patch,
+ +files/broadcom-sta-5.10.91.9-r1-linux-2.6.29.patch:
+ Fixed patches, bug #265385.
04 May 2009; MATSUU Takuto <matsuu@gentoo.org>
broadcom-sta-5.10.79.10-r3.ebuild, broadcom-sta-5.10.91.9.ebuild:
diff --git a/net-wireless/broadcom-sta/Manifest b/net-wireless/broadcom-sta/Manifest
index bb82d2dcab62..2639ded0f4df 100644
--- a/net-wireless/broadcom-sta/Manifest
+++ b/net-wireless/broadcom-sta/Manifest
@@ -1,14 +1,20 @@
AUX broadcom-sta-5.10.79.10-hidden-essid.patch 400 RMD160 5da005defd53cce782a0a8b6c67259bcf6536890 SHA1 f0bafa2c144ad0d904ea2348fd2b4f49c6b352b6 SHA256 aabe98ae9fe3574c3dab24090d0fe27e09d41f72326b7fc746bba030219e2bc4
+AUX broadcom-sta-5.10.79.10-license.patch 668 RMD160 87290f5579384df5c6db23bd3099ff6784b7535d SHA1 ac1f0793b5ded759691e96eb28dd324e0f509ff9 SHA256 6c9d7ae9eb2512b1a41a8f95d59be8bd5441bf22096759c592c8331abf766f1f
AUX broadcom-sta-5.10.79.10-linux-2.6.29.patch 4355 RMD160 7260e5b9a794cc53971bff481860a3659122f0cb SHA1 8bf29049acb49ba4837054085db87c4b4f0f5993 SHA256 924f98922cce5ee0fc62216dbe8e6ba7ffa1a80908685d48d598804526bc7723
AUX broadcom-sta-5.10.79.10-linux-2.6.30.patch 468 RMD160 307b1fc4ff9d77b0bbb0cb3c92b981675952a04d SHA1 834e7a832793b77dff5f82b3af2c0092b74fea15 SHA256 f2d449b420275bd473c636eb8650d568c3960ee60bb8242562331561cd305499
+AUX broadcom-sta-5.10.79.10-r4-linux-2.6.29.patch 4770 RMD160 ed18cb551b7a9ca365b80db179a44fbb2041c0bb SHA1 057d7263d689f1b5c445ebb5c5b07e5632709af2 SHA256 7b162b2bbb59b4435321b7a4eba342cb18b8bb483eabb50ca922008b788c462f
AUX broadcom-sta-5.10.79.10-wl_iw.patch 544 RMD160 1b4447496c8982ba2e9c4c253c36271084edeef2 SHA1 da94de7769f867ef0eb01563432f9f77d270b4da SHA256 59b0b11a1cb98b5619986bd806fe03fff223eff762484f1d6fcce4b3d87195aa
AUX broadcom-sta-5.10.79.10-wl_iw_v2.patch 719 RMD160 1744b2f19ae294f86b0aa37f5115243ff59126ea SHA1 c25d1aafb2f04ff27965b184dca371086311d2a6 SHA256 97dac57c79de53ec8afd01442e82e158551b25098700b204af2c260604b5547c
+AUX broadcom-sta-5.10.91.9-license.patch 716 RMD160 f4af0c36ec10d5fd4500af94c3864f6a352883e0 SHA1 0f2458882656dbf73035e566e53b902bc22c37f4 SHA256 53544703c15eb5e7f35721c436bfd0acf7db3de1df83b2e344bfc7090cb14cf1
AUX broadcom-sta-5.10.91.9-linux-2.6.29.patch 4668 RMD160 ec31ba4121cc9102b38da17ed06ed0b9624c51a1 SHA1 d103d610a69102d1d1c04737640ba1e3f76817cd SHA256 de0314451a9b24816b63beb10e1410ef23a26b151d949f0875209add77c5722d
+AUX broadcom-sta-5.10.91.9-r1-linux-2.6.29.patch 5209 RMD160 83ee25d1207c6e33cda74078620dcff47801e300 SHA1 5f3e835a4d448de7b5085af22140f84ee21e4fa4 SHA256 96c708d578b8e34ea0e17452681cd5d7acbfeea5d65e7bacf40d5b4c5aa7dfa8
DIST hybrid-portsrc-x86_32-v5_10_79_10.tar.gz 697799 RMD160 3a91a8b91d7b062f3ce8ceb55435ca7c1362effa SHA1 f5f2650395dd18b6403a456877ddb55e89b72eba SHA256 f9084cc1393f48d9ca546448e5a5caf49f8f25614353596256039144d2bb5f25
DIST hybrid-portsrc-x86_32-v5_10_91_9.tar.gz 605561 RMD160 3b7acf00fde619655da92baea2e947089749cefb SHA1 ae2c3798ed1864af9b0801332e95590cb66b1602 SHA256 8bb063e5c3b2ff4b8f6623a2a48f616b420f6ad5a13ac1fbf56ce94845d2e3d1
DIST hybrid-portsrc-x86_64-v5_10_79_10.tar.gz 694247 RMD160 75b7e5c74957bc6bf5fbdeb28ec2c68f1d835f1a SHA1 f7bcfd6990d273b7af9f6fd7764f5359a3fbebc7 SHA256 1815cb78ddebd4d21243d83ef073f799707dd7908e64456e81be4a4d45bedc02
DIST hybrid-portsrc-x86_64-v5_10_91_9.tar.gz 602794 RMD160 58205c27754c8f45b8b033c2f611299ba360f803 SHA1 6a80be30749d31c6dff90e562dd37cce6abde390 SHA256 9ac8db79daa95f4ff3b64f997fe8d3b3979231973905ef7fcecc04cf4ba5d805
EBUILD broadcom-sta-5.10.79.10-r3.ebuild 1277 RMD160 e13ed95d67083431df2517bd48dca6ceb55edce4 SHA1 511a44e14e2114ab903c26ca63dd01dc96657c3a SHA256 e56c6851d877b835c78b444db9cf24d732921fd03fa2904ad8c810f70e862df1
+EBUILD broadcom-sta-5.10.79.10-r4.ebuild 1316 RMD160 27a0b4e74fdd11ef9805fc2a25e5404146ee0380 SHA1 86500d02c23d87053831d4db8c05f5c775895125 SHA256 ee9dd56310283b62fc756b9fea3f63de20954d7fef45a59d79b969837d572516
+EBUILD broadcom-sta-5.10.91.9-r1.ebuild 1300 RMD160 ea01dae91ae86cb008daacb6034d6cf6bdd334d0 SHA1 7b6377fba2b8e74d69b5fe7aa5d8fa719459077e SHA256 322326ed73a786d55bb766d74befe2cb0bd25dba59e589c646c3791e7c80fa71
EBUILD broadcom-sta-5.10.91.9.ebuild 1259 RMD160 d02c922ac4a66e68c53fc3bfb174580255c2ceb9 SHA1 0a3141d0c5d6c81e5d8bf35776ae0cec65b7dcc6 SHA256 5732797edffaf01f22bf210c3767fa323613ad4f00fbf6a4ca9034709a7c89b3
-MISC ChangeLog 1593 RMD160 f0f97383bf9cb3ee234b3599eec5887e7dfcd861 SHA1 3eaed8d807aad82eaebd15c0e96743f27c6009e8 SHA256 587f114fbf172915f6cd43989ad1ce881a0bd6101c952c7b4b2a82b7b3bad730
+MISC ChangeLog 2038 RMD160 477848e90f4e97f9808225afa64468cfafa1261d SHA1 3c4e9bd4dbe1b5750c3d25c54eac7d20012375b5 SHA256 d41cc9b7257df5572bb70f9c7a3b3c5a5f9b2aabc2ffc20981cc85f219c75b57
MISC metadata.xml 221 RMD160 ca5e46f2e947fcae430e49859acaa4b25ab9d4b4 SHA1 b7f58eb04a9aceeb67104c0b81719e6e97da97f4 SHA256 138123f5d6199cbcc391346419b7b81d3ae9153c17670b18c540ff75a2287371
diff --git a/net-wireless/broadcom-sta/broadcom-sta-5.10.79.10-r4.ebuild b/net-wireless/broadcom-sta/broadcom-sta-5.10.79.10-r4.ebuild
new file mode 100644
index 000000000000..0c05ca336121
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-5.10.79.10-r4.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/broadcom-sta-5.10.79.10-r4.ebuild,v 1.1 2009/05/07 16:08:21 matsuu Exp $
+
+inherit eutils linux-mod versionator
+
+MY_PV="$(replace_all_version_separators _)"
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver."
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_"
+SRC_URI="x86? ( ${SRC_BASE}32-v${MY_PV}.tar.gz )
+ amd64? ( ${SRC_BASE}64-v${MY_PV}.tar.gz )"
+
+LICENSE="Broadcom"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="mirror"
+
+DEPEND=">=virtual/linux-sources-2.6.22"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ check_license
+
+ if kernel_is ge 2 6 29; then
+ CONFIG_CHECK="LIB80211"
+ else
+ CONFIG_CHECK="IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+ linux-mod_pkg_setup
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch \
+ "${FILESDIR}/${P}-hidden-essid.patch" \
+ "${FILESDIR}/${PF}-linux-2.6.29.patch" \
+ "${FILESDIR}/${P}-linux-2.6.30.patch" \
+ "${FILESDIR}/${P}-wl_iw_v2.patch" \
+ "${FILESDIR}/${P}-license.patch"
+
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-5.10.91.9-r1.ebuild b/net-wireless/broadcom-sta/broadcom-sta-5.10.91.9-r1.ebuild
new file mode 100644
index 000000000000..f649d0b32751
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-5.10.91.9-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/broadcom-sta-5.10.91.9-r1.ebuild,v 1.1 2009/05/07 16:08:21 matsuu Exp $
+
+inherit eutils linux-mod versionator
+
+MY_PV="$(replace_all_version_separators _)"
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver."
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_"
+SRC_URI="x86? ( ${SRC_BASE}32-v${MY_PV}.tar.gz )
+ amd64? ( ${SRC_BASE}64-v${MY_PV}.tar.gz )"
+
+LICENSE="Broadcom"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="mirror"
+
+DEPEND=">=virtual/linux-sources-2.6.22"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ check_license
+
+ if kernel_is ge 2 6 29; then
+ CONFIG_CHECK="LIB80211"
+ else
+ CONFIG_CHECK="IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+ linux-mod_pkg_setup
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch \
+ "${FILESDIR}/${PN}-5.10.79.10-hidden-essid.patch" \
+ "${FILESDIR}/${PF}-linux-2.6.29.patch" \
+ "${FILESDIR}/${PN}-5.10.79.10-linux-2.6.30.patch" \
+ "${FILESDIR}/${P}-license.patch"
+}
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-license.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-license.patch
new file mode 100644
index 000000000000..bea47f0b7369
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-license.patch
@@ -0,0 +1,12 @@
+diff -Naur hybrid-portsrc-x86_32-v5_10_79_10.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_79_10/src/wl/sys/wl_linux.c
+--- hybrid-portsrc-x86_32-v5_10_79_10.orig/src/wl/sys/wl_linux.c 2009-02-10 06:43:32.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_79_10/src/wl/sys/wl_linux.c 2009-05-08 00:23:57.000000000 +0900
+@@ -243,7 +243,7 @@
+ static void wl_free_if(wl_info_t *wl, wl_if_t *wlif);
+ static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info);
+
+-MODULE_LICENSE("");
++MODULE_LICENSE("MIXED/Proprietary");
+
+ static struct pci_device_id wl_id_table[] = {
+ { PCI_VENDOR_ID_BROADCOM, 0x4311, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-r4-linux-2.6.29.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-r4-linux-2.6.29.patch
new file mode 100644
index 000000000000..21ad4d79fc10
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.79.10-r4-linux-2.6.29.patch
@@ -0,0 +1,177 @@
+diff -Naur hybrid-portsrc-x86_32-v5_10_79_10.orig/src/wl/sys/wl_iw.c hybrid-portsrc-x86_32-v5_10_79_10/src/wl/sys/wl_iw.c
+--- hybrid-portsrc-x86_32-v5_10_79_10.orig/src/wl/sys/wl_iw.c 2009-02-10 06:43:18.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_79_10/src/wl/sys/wl_iw.c 2009-05-08 00:18:36.000000000 +0900
+@@ -610,7 +610,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+ struct sockaddr *addr = (struct sockaddr *) extra;
+ int i;
+
+@@ -635,7 +639,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+ struct sockaddr *addr = (struct sockaddr *) extra;
+ struct iw_quality *qual = (struct iw_quality *) &addr[iw->spy_num];
+ int i;
+@@ -1111,7 +1119,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCSIWNICKN\n", dev->name));
+
+@@ -1135,7 +1147,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCGIWNICKN\n", dev->name));
+
+@@ -1795,7 +1811,11 @@
+ int paramid;
+ int paramval;
+ int val = 0;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCSIWAUTH\n", dev->name));
+
+@@ -1926,7 +1946,11 @@
+ int paramid;
+ int paramval = 0;
+ int val;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCGIWAUTH\n", dev->name));
+
+diff -Naur hybrid-portsrc-x86_32-v5_10_79_10.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_79_10/src/wl/sys/wl_linux.c
+--- hybrid-portsrc-x86_32-v5_10_79_10.orig/src/wl/sys/wl_linux.c 2009-02-10 06:43:32.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_79_10/src/wl/sys/wl_linux.c 2009-05-08 00:21:50.000000000 +0900
+@@ -53,6 +53,9 @@
+ #include <linux/pci_ids.h>
+ #define WLC_MAXBSSCFG 1
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++#include <net/lib80211.h>
++#endif
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+ #include <net/ieee80211.h>
+ #endif
+@@ -149,7 +152,11 @@
+ bool resched;
+ uint32 pci_psstate[16];
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ struct lib80211_crypto_ops *tkipmodops;
++#else
+ struct ieee80211_crypto_ops *tkipmodops;
++#endif
+ struct ieee80211_tkip_data *tkip_ucast_data;
+ struct ieee80211_tkip_data *tkip_bcast_data;
+ #endif
+@@ -201,7 +208,11 @@
+
+ static int wl_found = 0;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++#define WL_DEV_IF(dev) ((wl_if_t*)netdev_priv(dev))
++#else
+ #define WL_DEV_IF(dev) ((wl_if_t*)(dev)->priv)
++#endif
+ #define WL_INFO(dev) ((wl_info_t*)(WL_DEV_IF(dev)->wl))
+
+ #define WL_LOCK(wl) spin_lock_bh(&(wl)->lock)
+@@ -363,6 +374,9 @@
+ dev = wlif->dev;
+ wl->dev = dev;
+ wl_if_setup(dev);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wlif = netdev_priv(dev);
++#endif
+
+ dev->base_addr = regs;
+
+@@ -436,10 +450,20 @@
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
++#else
+ wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
++#endif
+ if (wl->tkipmodops == NULL) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ request_module("lib80211");
++ request_module("lib80211_crypt_tkip");
++ wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
++#else
+ request_module("ieee80211_crypt_tkip");
+ wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
++#endif
+ }
+ #endif
+ #ifdef CONFIG_WIRELESS_EXT
+@@ -744,7 +768,11 @@
+ }
+
+ if (wl->monitor) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_free_if(wl, (wl_if_t *)netdev_priv(wl->monitor));
++#else
+ wl_free_if(wl, (wl_if_t *)(wl->monitor->priv));
++#endif
+ wl->monitor = NULL;
+ }
+
+@@ -912,7 +940,10 @@
+ strncpy(dev->name, name, IFNAMSIZ);
+ #else
+
+- dev = alloc_netdev(0, name, ether_setup);
++ dev = alloc_netdev(sizeof(wl_if_t), name, ether_setup);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wlif = netdev_priv(dev);
++#endif
+ if (!dev) {
+ MFREE(wl->osh, wlif, sizeof(wl_if_t));
+ WL_ERROR(("wl%d: wl_alloc_if: out of memory, alloc_netdev\n",
+@@ -926,7 +957,9 @@
+ wlif->wl = wl;
+ wlif->wlcif = wlcif;
+ wlif->subunit = subunit;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
+ dev->priv = wlif;
++#endif
+
+ if (iftype != WL_IFTYPE_MON && wl->dev && netif_queue_stopped(wl->dev))
+ netif_stop_queue(dev);
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch
new file mode 100644
index 000000000000..b320d977e8b0
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch
@@ -0,0 +1,12 @@
+diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c
+--- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c 2009-04-23 02:48:59.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c 2009-05-08 00:48:20.000000000 +0900
+@@ -163,6 +163,8 @@
+ static void wl_free_if(wl_info_t *wl, wl_if_t *wlif);
+ static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info);
+
++MODULE_LICENSE("MIXED/Proprietary");
++
+ static struct pci_device_id wl_id_table[] = {
+ { PCI_VENDOR_ID_BROADCOM, 0x4311, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
+ { PCI_VENDOR_ID_BROADCOM, 0x4312, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-r1-linux-2.6.29.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-r1-linux-2.6.29.patch
new file mode 100644
index 000000000000..2e8de221cad0
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-r1-linux-2.6.29.patch
@@ -0,0 +1,185 @@
+diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_iw.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_iw.c
+--- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_iw.c 2009-04-23 02:46:35.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_iw.c 2009-05-08 00:42:45.000000000 +0900
+@@ -610,7 +610,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+ struct sockaddr *addr = (struct sockaddr *) extra;
+ int i;
+
+@@ -635,7 +639,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+ struct sockaddr *addr = (struct sockaddr *) extra;
+ struct iw_quality *qual = (struct iw_quality *) &addr[iw->spy_num];
+ int i;
+@@ -1110,7 +1118,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCSIWNICKN\n", dev->name));
+
+@@ -1134,7 +1146,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCGIWNICKN\n", dev->name));
+
+@@ -1790,7 +1806,11 @@
+ int paramid;
+ int paramval;
+ int val = 0;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCSIWAUTH\n", dev->name));
+
+@@ -1921,7 +1941,11 @@
+ int paramid;
+ int paramval = 0;
+ int val;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = netdev_priv(dev);
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCGIWAUTH\n", dev->name));
+
+diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c
+--- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c 2009-04-23 02:48:59.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c 2009-05-08 00:45:29.000000000 +0900
+@@ -53,6 +53,9 @@
+ #include <linux/pci_ids.h>
+ #define WLC_MAXBSSCFG 1
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++#include <net/lib80211.h>
++#endif
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+ #include <net/ieee80211.h>
+ #endif
+@@ -130,7 +133,11 @@
+ u8 rx_hdr[16], tx_hdr[16];
+ };
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++#define WL_DEV_IF(dev) ((wl_if_t*)netdev_priv(dev))
++#else
+ #define WL_DEV_IF(dev) ((wl_if_t*)(dev)->priv)
++#endif
+ #define WL_INFO(dev) ((wl_info_t*)(WL_DEV_IF(dev)->wl))
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
+@@ -282,6 +289,9 @@
+ dev = wlif->dev;
+ wl->dev = dev;
+ wl_if_setup(dev);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wlif = netdev_priv(dev);
++#endif
+
+ dev->base_addr = regs;
+
+@@ -359,10 +369,20 @@
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
++#else
+ wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
++#endif
+ if (wl->tkipmodops == NULL) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ request_module("lib80211");
++ request_module("lib80211_crypt_tkip");
++ wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
++#else
+ request_module("ieee80211_crypt_tkip");
+ wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
++#endif
+ }
+ #endif
+ #ifdef CONFIG_WIRELESS_EXT
+@@ -666,7 +686,11 @@
+ }
+
+ if (wl->monitor) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_free_if(wl, (wl_if_t *)netdev_priv(wl->monitor));
++#else
+ wl_free_if(wl, (wl_if_t *)(wl->monitor->priv));
++#endif
+ wl->monitor = NULL;
+ }
+
+@@ -833,7 +857,10 @@
+ strncpy(dev->name, name, IFNAMSIZ);
+ #else
+
+- dev = alloc_netdev(0, name, ether_setup);
++ dev = alloc_netdev(sizeof(wl_if_t), name, ether_setup);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wlif = netdev_priv(dev);
++#endif
+ if (!dev) {
+ MFREE(wl->osh, wlif, sizeof(wl_if_t));
+ WL_ERROR(("wl%d: wl_alloc_if: out of memory, alloc_netdev\n",
+@@ -847,7 +874,9 @@
+ wlif->wl = wl;
+ wlif->wlcif = wlcif;
+ wlif->subunit = subunit;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
+ dev->priv = wlif;
++#endif
+
+ if (iftype != WL_IFTYPE_MON && wl->dev && netif_queue_stopped(wl->dev))
+ netif_stop_queue(dev);
+diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.h hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.h
+--- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.h 2009-04-23 02:49:04.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.h 2009-05-08 00:42:45.000000000 +0900
+@@ -85,10 +85,16 @@
+ bool resched;
+ uint32 pci_psstate[16];
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ struct lib80211_crypto_ops *tkipmodops;
++ struct lib80211_tkip_data *tkip_ucast_data;
++ struct lib80211_tkip_data *tkip_bcast_data;
++#else
+ struct ieee80211_crypto_ops *tkipmodops;
+ struct ieee80211_tkip_data *tkip_ucast_data;
+ struct ieee80211_tkip_data *tkip_bcast_data;
+ #endif
++#endif
+
+ uint stats_id;
+