diff options
Diffstat (limited to 'net-wireless/broadcom-sta')
3 files changed, 82 insertions, 2 deletions
diff --git a/net-wireless/broadcom-sta/ChangeLog b/net-wireless/broadcom-sta/ChangeLog index 409423c31a2b..bddec29742ab 100644 --- a/net-wireless/broadcom-sta/ChangeLog +++ b/net-wireless/broadcom-sta/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-wireless/broadcom-sta -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.29 2010/12/30 15:29:55 matsuu Exp $ +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.30 2011/01/01 15:28:28 matsuu Exp $ + +*broadcom-sta-5.100.82.38-r1 (01 Jan 2011) + + 01 Jan 2011; MATSUU Takuto <matsuu@gentoo.org> + +broadcom-sta-5.100.82.38-r1.ebuild, + +files/broadcom-sta-5.100.82.38-linux-2.6.37.patch: + Support >=virtual/linux-sources-2.6.37, bug #350196. *broadcom-sta-5.100.82.38 (30 Dec 2010) diff --git a/net-wireless/broadcom-sta/broadcom-sta-5.100.82.38-r1.ebuild b/net-wireless/broadcom-sta/broadcom-sta-5.100.82.38-r1.ebuild new file mode 100644 index 000000000000..b2f9e92b8c21 --- /dev/null +++ b/net-wireless/broadcom-sta/broadcom-sta-5.100.82.38-r1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2011 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.100.82.38-r1.ebuild,v 1.1 2011/01/01 15:28:28 matsuu Exp $ + +EAPI="2" +inherit eutils linux-mod + +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${PV//\./_}.tar.gz ) + amd64? ( ${SRC_BASE}64-v${PV//\./_}.tar.gz )" + +LICENSE="Broadcom" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RESTRICT="mirror" + +DEPEND=">=virtual/linux-sources-2.6.22" +RDEPEND="" + +S="${WORKDIR}" + +MODULE_NAMES="wl(net/wireless)" +MODULESD_WL_ALIASES=("wlan0 wl") + +PROPERTIES="interactive" + +pkg_setup() { + check_license + + # bug #300570 + # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled + # make checks non-fatal. The correct fix is blackisting ssb and, perhaps + # b43 via udev rules. Moreover, previous fix broke binpkgs support. + CONFIG_CHECK="~!B43 ~!SSB" + if kernel_is ge 2 6 33; then + CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211" + ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98." + elif kernel_is ge 2 6 31; then + CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211" + elif kernel_is ge 2 6 29; then + CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS" + else + CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP" + fi + linux-mod_pkg_setup + + BUILD_PARAMS="-C ${KV_DIR} M=${S}" + BUILD_TARGETS="wl.ko" +} + +src_prepare() { + epatch "${FILESDIR}/${PN}-5.10.91.9-license.patch" \ + "${FILESDIR}/${PN}-5.100.82.38-gcc.patch" \ + "${FILESDIR}/${PN}-5.100.82.38-linux-2.6.37.patch" +} diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-linux-2.6.37.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-linux-2.6.37.patch new file mode 100644 index 000000000000..ae57a20874e8 --- /dev/null +++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-linux-2.6.37.patch @@ -0,0 +1,15 @@ +diff -Naur broadcom-sta.orig/src/wl/sys/wl_linux.c broadcom-sta/src/wl/sys/wl_linux.c +--- broadcom-sta.orig/src/wl/sys/wl_linux.c 2010-12-15 11:01:09.000000000 +0900 ++++ broadcom-sta/src/wl/sys/wl_linux.c 2011-01-02 00:18:32.438095116 +0900 +@@ -482,7 +482,11 @@ + #ifdef WL_ALL_PASSIVE + spin_lock_init(&wl->txq_lock); + #endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++ sema_init(&wl->sem, 1); ++#else + init_MUTEX(&wl->sem); ++#endif + } + + if (!(wl->wlc = wlc_attach((void *) wl, vendor, device, unit, wl->piomode, |