summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMATSUU Takuto <matsuu@gentoo.org>2009-01-22 22:53:39 +0900
committerMATSUU Takuto <matsuu@gentoo.org>2009-01-22 22:53:39 +0900
commit19cb21d1e8ffc5732cbfe8c09dec7330e49802b8 (patch)
tree2ca7529bbf734a356c85e8e8f84dce48f476868c /net-wireless
parentmedia-video/remedie: Added dependency. (diff)
downloadmatsuu-19cb21d1e8ffc5732cbfe8c09dec7330e49802b8.tar.gz
matsuu-19cb21d1e8ffc5732cbfe8c09dec7330e49802b8.tar.bz2
matsuu-19cb21d1e8ffc5732cbfe8c09dec7330e49802b8.zip
kernel-2.6.29 support
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/broadcom-sta/Manifest2
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-5.10.27.12-r1.ebuild43
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.10.27.12-kernel-2.6.29.patch166
3 files changed, 211 insertions, 0 deletions
diff --git a/net-wireless/broadcom-sta/Manifest b/net-wireless/broadcom-sta/Manifest
index 2f3938d..b2d201a 100644
--- a/net-wireless/broadcom-sta/Manifest
+++ b/net-wireless/broadcom-sta/Manifest
@@ -1,3 +1,5 @@
+AUX broadcom-sta-5.10.27.12-kernel-2.6.29.patch 4539 RMD160 33cec966cd314181a7daa5d41818f62c4d20104f SHA1 253b39e14e7d80041c8ec82e5b5a71a691a2f5ff SHA256 800a2ad4b08f754f7764d23a568e3496a0b4150944c21e770e8205db1c883e86
DIST hybrid-portsrc-x86-32_5_10_27_12.tar.gz 525867 RMD160 fe5b60818be173019a07bdc0208c2403e1c658bf SHA1 52dafa60846516681e03a55a9e246c087448b294 SHA256 4522abacd1567bd90af259f7a939ea50c19d3108ae18d73c486df70c8eb437d2
DIST hybrid-portsrc-x86-64_5_10_27_12.tar.gz 524517 RMD160 e65c7bb1dc8496caab256bedc2d3958f9f0cfabc SHA1 50164e0c81ac7cfb298edf1c844f122f098f8411 SHA256 61202f60f102796fe7df37fb6dbe3d5a9b1e9d5204b763b9d47c95e19763a1ad
+EBUILD broadcom-sta-5.10.27.12-r1.ebuild 1117 RMD160 388cfa39bbc98dbe6c927097f824fd3fe881dce8 SHA1 76cf9d179acad8da4d7ac3d9850ee1f0524b382e SHA256 ddd17ac0d228320419ebf48956c63c77fcbb570adaa1dc1e47416352ab8b5863
EBUILD broadcom-sta-5.10.27.12.ebuild 902 RMD160 dbfcb8a0d8fcd150bb01c570880776cbe63b4d26 SHA1 4d8ebb2ee0d04720019b6f881ebc83597cfbdc13 SHA256 6c5fb767d51d55f40d798b796143ef14200754be5af62cda17b42aa73fc32d19
diff --git a/net-wireless/broadcom-sta/broadcom-sta-5.10.27.12-r1.ebuild b/net-wireless/broadcom-sta/broadcom-sta-5.10.27.12-r1.ebuild
new file mode 100644
index 0000000..a1abe33
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-5.10.27.12-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/iwlwifi/iwlwifi-1.2.23.ebuild,v 1.1 2008/01/22 05:08:58 compnerd Exp $
+
+inherit eutils linux-mod
+
+MY_PV="${PV//./_}"
+DESCRIPTION="Broadcom 802.11 Linux STA driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_URI="x86? ( http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86-32_${MY_PV}.tar.gz )
+ amd64? ( http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86-64_${MY_PV}.tar.gz )"
+
+LICENSE="Broadcom"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=">=virtual/linux-sources-2.6.22"
+
+S="${WORKDIR}"
+
+pkg_setup() {
+ MODULE_NAMES="wl(net:${S}:${S})"
+ get_version
+ if [ ${KV_MAJOR} -ge 2 -a ${KV_MINOR} -ge 6 -a ${KV_PATCH} -ge 29 ] ; then
+ CONFIG_CHECK="LIB80211"
+ else
+ CONFIG_CHECK="IEEE80211"
+ fi
+ linux-mod_pkg_setup
+ if use_m; then
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS=" "
+ else
+ die "please use a kernel >=2.6.6"
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-kernel-2.6.29.patch"
+}
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.10.27.12-kernel-2.6.29.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.27.12-kernel-2.6.29.patch
new file mode 100644
index 0000000..2b90c98
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.27.12-kernel-2.6.29.patch
@@ -0,0 +1,166 @@
+diff -Naur broadcom-wl.old/src/wl/sys/wl_iw.c broadcom-wl/src/wl/sys/wl_iw.c
+--- broadcom-wl.old/src/wl/sys/wl_iw.c 2008-12-18 05:55:58.000000000 +0900
++++ broadcom-wl/src/wl/sys/wl_iw.c 2009-01-22 20:57:22.000000000 +0900
+@@ -610,7 +610,11 @@
+ char *extra
+ )
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_iw_t *iw = dev->ml_priv;
++#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 = dev->ml_priv;
++#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 = dev->ml_priv;
++#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 = dev->ml_priv;
++#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 = dev->ml_priv;
++#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 = dev->ml_priv;
++#else
+ wl_iw_t *iw = dev->priv;
++#endif
+
+ WL_TRACE(("%s: SIOCGIWAUTH\n", dev->name));
+
+diff -Naur broadcom-wl.old/src/wl/sys/wl_linux.c broadcom-wl/src/wl/sys/wl_linux.c
+--- broadcom-wl.old/src/wl/sys/wl_linux.c 2008-12-18 05:56:13.000000000 +0900
++++ broadcom-wl/src/wl/sys/wl_linux.c 2009-01-22 20:57:22.000000000 +0900
+@@ -53,7 +53,9 @@
+ #include <linux/pci_ids.h>
+ #define WLC_MAXBSSCFG 1
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++#include <net/lib80211.h>
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+ #include <net/ieee80211.h>
+ #endif
+
+@@ -148,7 +150,11 @@
+ struct net_device *monitor;
+ 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;
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+ struct ieee80211_crypto_ops *tkipmodops;
+ struct ieee80211_tkip_data *tkip_ucast_data;
+ struct ieee80211_tkip_data *tkip_bcast_data;
+@@ -159,7 +165,11 @@
+ static void wl_timer(ulong data);
+ static void _wl_timer(wl_timer_t *t);
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++struct lib80211_tkip_data {
++#else
+ struct ieee80211_tkip_data {
++#endif
+ #define TKIP_KEY_LEN 32
+ u8 key[TKIP_KEY_LEN];
+ int key_set;
+@@ -190,7 +200,11 @@
+
+ static int wl_found = 0;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++#define WL_DEV_IF(dev) ((wl_if_t*)(dev)->ml_priv)
++#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)
+@@ -421,7 +435,14 @@
+ }
+ wlif->dev_registed = TRUE;
+
+-#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");
++ if (wl->tkipmodops == NULL) {
++ request_module("lib80211_crypt_tkip");
++ wl->tkipmodops = lib80211_get_crypto_ops("TKIP");
++ }
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+
+ wl->tkipmodops = ieee80211_get_crypto_ops("TKIP");
+ if (wl->tkipmodops == NULL) {
+@@ -725,7 +746,11 @@
+ }
+
+ if (wl->monitor) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ wl_free_if(wl, (wl_if_t *)(wl->monitor->ml_priv));
++#else
+ wl_free_if(wl, (wl_if_t *)(wl->monitor->priv));
++#endif
+ wl->monitor = NULL;
+ }
+
+@@ -908,7 +933,11 @@
+ wlif->wl = wl;
+ wlif->wlcif = wlcif;
+ wlif->subunit = subunit;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
++ dev->ml_priv = wlif;
++#else
+ dev->priv = wlif;
++#endif
+
+ if (iftype != WL_IFTYPE_MON && wl->dev && netif_queue_stopped(wl->dev))
+ netif_stop_queue(dev);