summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gentoo.org>2015-01-27 19:40:52 +0000
committerMatt Turner <mattst88@gentoo.org>2015-01-27 19:40:52 +0000
commitaa78b41a1114e188d2fea5963c4d7fe9300716e3 (patch)
tree593613da5637b5896eeed4bcbe39e004815e8e2e /net-wireless
parentUpdate HOMEPAGE, bug 537928. (diff)
downloadhistorical-aa78b41a1114e188d2fea5963c4d7fe9300716e3.tar.gz
historical-aa78b41a1114e188d2fea5963c4d7fe9300716e3.tar.bz2
historical-aa78b41a1114e188d2fea5963c4d7fe9300716e3.zip
Take over maintainership and add patches for Linux 3.18, bug 523326.
Package-Manager: portage-2.2.15/cvs/Linux x86_64 Manifest-Sign-Key: 0x974CA72A
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/broadcom-sta/ChangeLog12
-rw-r--r--net-wireless/broadcom-sta/Manifest33
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild76
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch11
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch350
-rw-r--r--net-wireless/broadcom-sta/metadata.xml4
6 files changed, 467 insertions, 19 deletions
diff --git a/net-wireless/broadcom-sta/ChangeLog b/net-wireless/broadcom-sta/ChangeLog
index a4c3c19cfe1a..328e8ce76341 100644
--- a/net-wireless/broadcom-sta/ChangeLog
+++ b/net-wireless/broadcom-sta/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for net-wireless/broadcom-sta
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.63 2014/12/15 06:25:39 dlan Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.64 2015/01/27 19:40:43 mattst88 Exp $
+
+*broadcom-sta-6.30.223.248-r3 (27 Jan 2015)
+
+ 27 Jan 2015; Matt Turner <mattst88@gentoo.org>
+ +broadcom-sta-6.30.223.248-r3.ebuild,
+ +files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch,
+ +files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch, metadata.xml:
+ Take over maintainership and add patches for Linux 3.18, bug 523326.
*broadcom-sta-6.30.223.248-r2 (15 Dec 2014)
diff --git a/net-wireless/broadcom-sta/Manifest b/net-wireless/broadcom-sta/Manifest
index c9d102c30fe3..2702d4c876a3 100644
--- a/net-wireless/broadcom-sta/Manifest
+++ b/net-wireless/broadcom-sta/Manifest
@@ -20,6 +20,8 @@ AUX broadcom-sta-6.30.223.141-linux-recent.patch 3215 SHA256 a57e409b3ef9d7b3d63
AUX broadcom-sta-6.30.223.141-makefile.patch 497 SHA256 3f1332be115991f21b03cf50de0af212faa8083017bf8ba724f110c602005060 SHA512 f403669dede71f3c9f2886bfa535518a9e89a4398d1da7789ff955f15c493dd5ede1f304b0980c300c580ac1ae2464a4e395fb40b72dffa98a5a015c3e7d74c5 WHIRLPOOL 9bad191388f78608d1cc7f13488dcf9dbcfe626a6522af3bf477aa46a2e7736921d48ab78750fa2e3b3aff10cd353a12a7a331b159988d263e5fd3fdb4b2a77f
AUX broadcom-sta-6.30.223.248-linux-3.17.patch 955 SHA256 1edab90c3e4653e106461302248c38b69e6a5540bc9dd73c6954e2ee5e2a1cc7 SHA512 7cf1bf61cc2dd8c7432d2bfcf551897da19d3667b24d75823d4f2792712ba6e6bd91ee21501fc2c0aa77361187eb69bfcc2e7723e6abc09441316a61b0a860ef WHIRLPOOL a930610bb1b889fd479dc35a1c516acfed36005b0c7540cb393f8b72406077c700c8bca01c857e6b98e2b199a37800c2e4f492652107adb12e907a6504ebdea3
AUX broadcom-sta-6.30.223.248-linux-3.18.patch 1167 SHA256 f9ba1c302fcb2b918ca0386917cbab9f3f8fe80c854fbe378edd4acad46d7b74 SHA512 5dc446d5c89e22283f85fe4fd1443aa926916304dcb87eb2127d3092b77c3d0f502bb0d70c3d23c185ee7680338b9586bdd5f02ce34bc5655a12de87dacfb7e4 WHIRLPOOL 81b9165cb226a26214dd33d81e447db074406fc17645f803b45fe08171a99789c4f0d294366c93e659720edcc3307bb5260a395d4624682412a8499c8c45950a
+AUX broadcom-sta-6.30.223.248-r3-Wno-date-time.patch 380 SHA256 b07ce80f2e079cce08c8ec006dda091f6f73f158c8a62df5bac2fbabb6989849 SHA512 f1f96ac2b51be18bfdc4c3d627801cb14d024def92416434c3c0a9adb986e846f9ceb6087b5ab343d78ed87a3dda277818cb060534b44be62bf8f123bc6594fd WHIRLPOOL e88dd2f0f08be2d0e61009f387c34bf9e1ba8d9a26817aa8697c4a2f89b4cbe8411d6960917953d2549c37590cbc5ceafda45780bece818854420bbc4984d11f
+AUX broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch 10808 SHA256 aa01ee80cd9e7a212500a5f970064132f7df1a7db43269db0306019d4d7be6ca SHA512 e3401a2785cf0ebcaaf0c0f33bab4209ced45f8970dffeed5f5dfa3e19106b02e7d02317a2214042236fe72192b50418386204a486da46e43f604136c20257f2 WHIRLPOOL f1d8ca7e5cb8f5bf557ade96661ba9a2de6000da78737be52f358f14419daec2f43e3de7e9f0d95bd3a67b27fb0d29aaa080edffaa377d419ad4c0f3646686e0
AUX broadcom-sta-6.30.223.30-linux-3.10.0.patch 2916 SHA256 ae3006413c98516ca70c2e15610b4cd0a892bcd0813d019bc87816060415bdf8 SHA512 a57a75a83b0e8cbb1bcb0ecc99830a3e01d24ed89a55e44aeb8d8e5c45d958518374c42c2377be0964258232cdd9bb91516b4c9741bdf633870798ee52ca550d WHIRLPOOL dc34ad9a01823b620e38298841c6a85adfb24dc06adee1dd77419dd216509c58eba07d40a74c301806727b6f5ebd224effe6e463f22a727f5c61eb99268499ab
AUX broadcom-sta-6.30.223.30-linux-3.9.0.patch 397 SHA256 d000f4d30a816368ad040f2271e019c8116c687d65999267b91d91eb73c63016 SHA512 600ea6d99096c4eba38ff29bdcff0c334bb4d6c6c98613a824d8fffc878992db9219d131e3bf1fe5c93f272df850f13b1d14b41a3402083733d337a882f01834 WHIRLPOOL 41d7b189840a7b68d5132388b8909438933d31803dd5bfa0abd61057636dd037c58865df4140ba76a73f32089f221ea5f6f5f3ba60f6047145551511892edb60
AUX broadcom-sta-6.30.223.30-makefile.patch 497 SHA256 3f1332be115991f21b03cf50de0af212faa8083017bf8ba724f110c602005060 SHA512 f403669dede71f3c9f2886bfa535518a9e89a4398d1da7789ff955f15c493dd5ede1f304b0980c300c580ac1ae2464a4e395fb40b72dffa98a5a015c3e7d74c5 WHIRLPOOL 9bad191388f78608d1cc7f13488dcf9dbcfe626a6522af3bf477aa46a2e7736921d48ab78750fa2e3b3aff10cd353a12a7a331b159988d263e5fd3fdb4b2a77f
@@ -35,23 +37,24 @@ EBUILD broadcom-sta-6.30.223.141-r2.ebuild 2599 SHA256 37a8a947496997bc14368c220
EBUILD broadcom-sta-6.30.223.141.ebuild 2723 SHA256 7db93e60885da6d38fe0252e2d5fa90f392130ffb3c9d403341a3dd5d1daba43 SHA512 8df8c3194986bc2c3dc85f14b6d5532004cfc3f57b2ec70c20a4d6a99fddccd4a46b86e766a3f957b7fd3ef0db246d9742ecb3e7c69748e11b05e7f01f2dd331 WHIRLPOOL 3c9761753496fef23f81d2a73113faa2620d828e66c7d6e7b35096c61c5e6de310afcaca0747ce9da77dda98fb0a084a9e178e878515f6c36cfa983575710649
EBUILD broadcom-sta-6.30.223.248-r1.ebuild 2865 SHA256 37ccc43cb1db2629305396d651b3a1ef6cb69dc70fe71c5509b10ac92e4171c4 SHA512 04ceda8f10b56a840930d722c7b75ba6a60ba753b4e4f8d59f8aeb44b4f2fdf439f4c014cb1d38223a58eb5cb286a06ff2d5dca4c9709b94929761984d416de4 WHIRLPOOL 9266b35a8cfab8f1c05e7e3aed95e139869f826e699865171ab408b00b2326d2fe4e536bc3b706acc29a87764b74e8954a97a8d691dfefb709ed578b63445d82
EBUILD broadcom-sta-6.30.223.248-r2.ebuild 2973 SHA256 e39bde563942bae4024c5fcce12738177c9388c0428da16fc5ef5281f70f1fa1 SHA512 1249555d7b900062bedc8df333cec68c2f193d6e719693a918535211765b1f3e7a6a895461cdec3a6b5e133c2305b7907c0f2a17cf116b10337207e76c5464a6 WHIRLPOOL b82405a802679c5d6c68d7b2afb8616a79724e8f734867b879ef0bf064b60bc1dee595eab5c0d0376744ee9591824675cda6586fc6191771e4537d744cbb2ece
+EBUILD broadcom-sta-6.30.223.248-r3.ebuild 2937 SHA256 6015631a023065df3b879eb6bec2eb29f6995ab07de4bc35a1a52d99fa74a179 SHA512 aeb0a2bae9bf248e0eeaf6baf8affede5e919f97acd802922bc8b9307f943234a76b31713b588022adfd44de15ab02c3f728f6f1b3a2f98575c2854e4f09bd5a WHIRLPOOL 7cd37d507e0f35155786c0dbc9a6b5fc8662b2568e1ed19aedf5ac74da2f952a4eed255e061921c314d4df30b7e224d6891296bf22b2e675853e13c0244aae20
EBUILD broadcom-sta-6.30.223.30-r2.ebuild 3186 SHA256 b65c754b6a6fd30f31dbdaeb522abcee215b74135e91c8f1fd4d92d5b017ec1f SHA512 da2582731c379c54a2ddb95bf232c6c8ba5e5c4a374d7e46c87afe31e0748e9de61841c7db1a9c8fdad5b208225b73f979c795e62d1c7a8ecb03a13bf4ab0c0a WHIRLPOOL c29ba37df7f69c078f99313bd6b1c287f0ac45282b400d09e4aec3cc6cb0f263cab67e9400c1cf69d6a808e4a5e82806e38c106296533655a11d4827ae674ca4
-MISC ChangeLog 15364 SHA256 fd101338d7fc912f0357c40518a8328bd4ccb326a27a20d6ec775463951c954a SHA512 4e6ba1fa8a0fadce16bbb060e187135bbbf41754bd2dba3caf3976b98c906b8252ba47b204419743b2816ac3d211d89ff152de1e9374386879a7dc3b7e1276d3 WHIRLPOOL e1200a3996995c147946973e041a419e624d3434c248f31c9d56b9dad068709193d2df7a813c279fc390a02197af7c3877bfaad6f5db9495aa1ed32fa534db37
-MISC metadata.xml 231 SHA256 1be6a1cf2be181172bfc3474a5815af1d8bca1e0c3b549be12b2cc6acaa7a665 SHA512 6ce376c5f35f2025d1b06b9ed0394f15011918553f5c4d46257998db2bfda39ec837d84527fdd9315c43c3dc16d2c5b9f78fdf27da4e024965a84441ab24fedc WHIRLPOOL 932d4cbd0f64b2cf8b2932576069e47149ae20a54024bb9ebfbb9ad8026413859a8299b102927fae3b708a02a98ef3d89ca1d9c09b1c840f348c85d782cd9b6b
+MISC ChangeLog 15708 SHA256 21969844e4af27ee885d9b422c1180a5827d722d101d544192a56b884f44f3d6 SHA512 474af61310ef7b6fba051aac416c90c8de60b4d7fa224b030703bf490a546fe051d22ea6f65e67bfc6e3151f7d99c503f0453661f71575ccaa0cd55b12095feb WHIRLPOOL 4385d0e059d2b2e83bc0a584f32174a9135d95600dd68ebb004d51b84f72e0eb4dad30afbfd1cd044a6b3b2b6281acb3ec97fd92e7f23ee88f0875e0d661913b
+MISC metadata.xml 229 SHA256 3ee13378cfc2919aa10572b97fd78fe5fd5761f35bc4eb6bc741b278c966e8c9 SHA512 193d10f9b7c1df175a14bde5312978279760049f506c64020aa7119d1c43f7c1d8f258c9c766ea869c808ac23a8c5b097b36541c30ca5e33b1fb75efda03a586 WHIRLPOOL d2880b5ed417bb012994838ecb63ecd2e44f6e50ab51428165e68057635addd5fa03c6552fef5fc1bc623084cca7219492d11d4d926a5deb2c62c770aace9da9
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iQIcBAEBCAAGBQJUjn7wAAoJEJIMDbyqvv1V5YkQAK5PRji7yxDM5EkmxXzApukV
-w00/VpXgy3E3y1FG1T+Qq+sJKzmm9eOiivBjrJiwuJUjMECO/9HGHCnQBybOo2GM
-+Pz93Y26OyL0HvTX6M2w6gdQmaMX6gyD0oCeJBW8wD88ngwMK0U54x0TmN7FQJCs
-Q8JDAx1h/o29G4x+I5FO5hZLm3t1mjbLszOUlUp+TQ5HageTjb9H0K4zYRfPtpSi
-jX8GVqr2CozVX8qBu69u6ec9l+EYxuJLRNjGlz/n2rPSTw/y5Fbp8SKXYtSd++VI
-sbVcZ4lZV4+yBUnHvzc3VUJ61rXQFGIX06ViY2M06r/0rXVBhHefsP6x1zOc5LmB
-XsfTWR5bGvDssWewBoHsiOqs+owXIk82uucyW75ntnQBS7VvxcMI9spcjwZ8yNII
-dRrWaXoCRN1tdFp57GusyzG1NAt4PJgBpT0N/Dr7VpKbVm//Sg5UGt8DkRZ2UI+c
-FQXx4UTOdrf8CBraITsqqE0+AUSup9PnwRroOqoOf13jGsGxGZMncQuuhRUAKL5H
-RwQm8zRC9lrBUu81g7G5RswIU6HL1Hf2nExkhTlrI+QMdJWl3FZt6jPaYRIYcA3B
-/oL7IoLW4nnqNUFWMUF3ISMfIeWNYatBW95KgkoqMmOPk4fl++sPpZ5fTjM9JwfP
-BEZRXmsxM2PrNyUlZdu5
-=dGrD
+iQIcBAEBCAAGBQJUx+ojAAoJEA/daC2XTKcqJUkP/3caaWcTgOGZb/qIzVTVvwmb
+xjMpbyfis2vD+1wM5vEZZnmfUbLjeluq2DHtnzwxL0bnecqnIGIzfIxrUF7nzYWg
+/O8y9YROAouPhPytdsmBVzWGfOZPXgWX2fX5EgQr4RlcdIEGGt7PZbIOIuNwZqjl
+iTX30ttZT1LYv42QvfX+lURZFw9L4JaxTNH58PmSOqTMnE4oEN15hNS8zXn+2pPR
+E9TSP59iO0X2Kse+s/rVh4xZiOWQPMmR5WSXsoj2/gyUciaUt9g4bKfP3H7fU9Lc
+8v7Ld5HL+EYlardjOveL8I35wgLbbGR0fkwmSbPwnEcD6IXKhgEA8gAM5Y/d1k5B
+UXKT/U811SVHlo+3RBo+6K8Sh8jc54lYGbz8B419pxOERLkPfr30SPsXY4SZpR18
+PDkN1WgBrNfvxWwiYvU5tOED+COHj4NvR36u7mYdzeN7rP7BV618CmMZO6zTw7FY
+rD5H+HbLzNJSIkQbooreyZQvnuQEPh9Xcp30sCDJmz7tlFLDc98bRc9dxDFyYyo/
+Ce3ed4f075Gcrl5/HJofZs1bTQj/+8nPtiYDE3wlhHGg1OT6dx9u/0wdofrsns7u
+Bui5Uu+JYJM04GJoGx23Nr0wZSU62xsNNGuS28crT+BbbVBxjwkk0CHYivPesW4f
+8rk7HU0G6IJ4rBN/93Qp
+=UdWO
-----END PGP SIGNATURE-----
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild
new file mode 100644
index 000000000000..30e35d5defc8
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild,v 1.1 2015/01/27 19:40:43 mattst88 Exp $
+
+EAPI=5
+inherit eutils linux-info 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-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )
+ http://www.broadcom.com/docs/linux_sta/README_${PV}.txt -> README-${P}.txt"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # 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 ~!BCMA ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_BCMA="BCMA: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT 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}-6.30.223.141-license.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-makefile.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-eth-to-wlan.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-gcc.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-r3-Wno-date-time.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-r3-linux-3.15-3.18.patch"
+
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc "${DISTDIR}/README-${P}.txt"
+}
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch
new file mode 100644
index 000000000000..f93e3f1d3a3f
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch
@@ -0,0 +1,11 @@
+--- a/Makefile 2014-06-26 10:42:08.000000000 +0000
++++ b/Makefile 2014-07-17 22:44:01.662297228 +0000
+@@ -126,6 +126,8 @@
+ EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
+ #EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
+
++EXTRA_CFLAGS += -Wno-date-time
++
+ EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
+
+ KBASE ?= /lib/modules/`uname -r`
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch
new file mode 100644
index 000000000000..7fe63199a0cb
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch
@@ -0,0 +1,350 @@
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-01-22 01:43:25.378920452 +0100
+@@ -63,8 +63,13 @@
+ static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
+ struct cfg80211_ibss_params *params);
+ static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
+ static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
+ struct net_device *dev, u8 *mac, struct station_info *sinfo);
++#else
++static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
++ struct net_device *dev, const u8 *mac, struct station_info *sinfo);
++#endif
+ static s32 wl_cfg80211_set_power_mgmt(struct wiphy *wiphy,
+ struct net_device *dev, bool enabled, s32 timeout);
+ static int wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
+@@ -1387,7 +1392,7 @@
+ key_endian_to_host(&key);
+
+ params.key_len = (u8) min_t(u8, DOT11_MAX_KEY_SIZE, key.len);
+- memcpy(params.key, key.data, params.key_len);
++ memcpy((char *)params.key, key.data, params.key_len);
+
+ if ((err = wl_dev_ioctl(dev, WLC_GET_WSEC, &wsec, sizeof(wsec)))) {
+ return err;
+@@ -1421,9 +1426,15 @@
+ return err;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
+ static s32
+ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
+ u8 *mac, struct station_info *sinfo)
++#else
++static s32
++wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
++ const u8 *mac, struct station_info *sinfo)
++#endif
+ {
+ struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
+ scb_val_t scb_val;
+@@ -2010,9 +2021,15 @@
+
+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+ notify_ielen = le32_to_cpu(bi->ie_length);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
+ cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
++#else
++ cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
++ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
++ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
++#endif
+
+ if (unlikely(!cbss))
+ return -ENOMEM;
+@@ -2071,7 +2088,26 @@
+ wl_get_assoc_ies(wl);
+ memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+ wl_update_bss_info(wl);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
++ {
++ struct wl_bss_info *bi;
++ u16 bss_info_channel;
++ struct ieee80211_channel *channel;
++ u32 freq;
++
++ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
++ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
++
++ freq = ieee80211_channel_to_frequency(bss_info_channel,
++ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
++ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
++
++ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
++ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
++ }
++#else
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
++#endif
+ set_bit(WL_STATUS_CONNECTED, &wl->status);
+ wl->profile->active = true;
+ }
+@@ -2629,7 +2665,15 @@
+
+ void wl_cfg80211_detach(struct net_device *ndev)
+ {
+- struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
++ struct wl_cfg80211_priv *wl;
++ struct wireless_dev *wdev;
++
++ wdev = ndev->ieee80211_ptr;
++ if (wdev == NULL) {
++ printk(KERN_ERR "[%s()] in ndev=%p: IEEE80211ptr=%p\n", __FUNCTION__, ndev, wdev);
++ return;
++ }
++ wl = ndev_to_wl(ndev);
+
+ wl_deinit_cfg80211_priv(wl);
+ wl_free_wdev(wl);
+--- a/src/wl/sys/wl_dbg.h 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_dbg.h 2015-01-22 01:43:25.379920462 +0100
+@@ -55,10 +55,12 @@
+
+ #define WL_NONE(args)
+
++#define FORCE_TRACE_LEVEL(fmt, ...) do { printk(KERN_ERR fmt, ## __VA_ARGS__); } while (0) /* ## is GCC specific syntax to remove comma when single arg */
++
+ #ifdef BCMDBG_ERR
+ #define WL_ERROR(args) WL_PRINT(args)
+ #else
+-#define WL_ERROR(args)
++#define WL_ERROR(args) FORCE_TRACE_LEVEL args
+ #endif
+ #define WL_TRACE(args)
+ #define WL_APSTA_UPDN(args)
+--- a/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_linux.c 2015-01-22 01:44:58.580453805 +0100
+@@ -878,7 +878,7 @@
+ static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
+ #endif
+
+-static struct pci_driver wl_pci_driver = {
++static struct pci_driver wl_pci_driver __refdata = {
+ .name = "wl",
+ .probe = wl_pci_probe,
+ .remove = __devexit_p(wl_remove),
+@@ -1270,6 +1270,7 @@
+ MFREE(wl->osh, wlif->dev, sizeof(struct net_device));
+ #else
+ free_netdev(wlif->dev);
++ wlif->dev = NULL;
+ #endif
+ }
+
+@@ -1307,7 +1308,12 @@
+ dev->priv = priv_link;
+ #else
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
++#else
++ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
++ ether_setup);
++#endif
+ if (!dev) {
+ WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
+ (wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
+@@ -1651,11 +1657,7 @@
+ }
+
+ WL_LOCK(wl);
+- if (!capable(CAP_NET_ADMIN)) {
+- bcmerror = BCME_EPERM;
+- } else {
+- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
+- }
++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
+ WL_UNLOCK(wl);
+
+ done1:
+@@ -2157,8 +2159,8 @@
+ wlif = WL_DEV_IF(dev);
+ wl = WL_INFO(dev);
+
++ skb->prev = NULL;
+ if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+- skb->prev = NULL;
+
+ TXQ_LOCK(wl);
+
+@@ -2455,8 +2457,10 @@
+ p80211msg_t *phdr;
+
+ len = sizeof(p80211msg_t) + oskb->len - D11_PHY_HDR_LEN;
+- if ((skb = dev_alloc_skb(len)) == NULL)
++ if ((skb = dev_alloc_skb(len)) == NULL) {
++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
+ return;
++ }
+
+ skb_put(skb, len);
+ phdr = (p80211msg_t*)skb->data;
+@@ -2535,8 +2539,10 @@
+ rtap_len = sizeof(wl_radiotap_ht_brcm_2_t);
+
+ len = rtap_len + (oskb->len - D11_PHY_HDR_LEN);
+- if ((skb = dev_alloc_skb(len)) == NULL)
++ if ((skb = dev_alloc_skb(len)) == NULL) {
++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
+ return;
++ }
+
+ skb_put(skb, len);
+
+@@ -2664,8 +2670,10 @@
+ len += amsdu_len;
+ }
+
+- if ((skb = dev_alloc_skb(len)) == NULL)
++ if ((skb = dev_alloc_skb(len)) == NULL) {
++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
+ return;
++ }
+
+ skb_put(skb, len);
+
+@@ -2990,7 +2998,7 @@
+ }
+
+ void
+-wl_set_monitor(wl_info_t *wl, int val)
++wl_set_monitor(wl_info_t *wl, int val) /* public => is called by wlc_hybrid.o_shipped */
+ {
+ const char *devname;
+ wl_if_t *wlif;
+@@ -3224,42 +3232,75 @@
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
++{
++ wl_info_t * wl = (wl_info_t *)data;
+ #else
+ static ssize_t
+-wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *data)
+-#endif
++wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp)
+ {
+- wl_info_t * wl = (wl_info_t *)data;
+- int to_user;
+- int len;
++ wl_info_t * wl = PDE_DATA(file_inode(filp));
++#endif
++ int bcmerror, len;
++ int to_user = 0;
++ char tmp[8];
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ if (offset > 0) {
+ *eof = 1;
+ return 0;
+ }
++#else
++ if (*offp > 0) { /* for example, stop: cat /proc/brcm_monitor0 */
++ return 0; /* 0 <=> EOF */
++ }
+ #endif
+
+- if (!length) {
+- WL_ERROR(("%s: Not enough return buf space\n", __FUNCTION__));
+- return 0;
+- }
+ WL_LOCK(wl);
+- wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
+- len = sprintf(buffer, "%d\n", to_user);
+- WL_UNLOCK(wl);
+- return len;
++ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
++ WL_UNLOCK(wl);
++
++ if (bcmerror != BCME_OK) {
++ WL_ERROR(("%s: GET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
++ return -EIO;
++ }
++
++ len = snprintf(tmp, ARRAY_SIZE(tmp), "%d\n", to_user);
++ tmp[ARRAY_SIZE(tmp) - 1] = '\0';
++ if (len >= ARRAY_SIZE(tmp)) {
++ printk(KERN_ERR "%s:%d [%s()] output would be truncated (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len);
++ return -ERANGE;
++ }
++ else if (len < 0) {
++ printk(KERN_ERR "%s:%d [%s()] unable to convert value (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len);
++ return len;
++ }
++ if (length < len) {
++ printk(KERN_ERR "%s:%d [%s()] user buffer is too small (at least=%d ; user=%d)!", __FILE__, __LINE__, __FUNCTION__, len, (int)length);
++ return -EMSGSIZE;
++ }
++ if (copy_to_user(buffer, tmp, len) != 0) {
++ printk(KERN_ERR "%s:%d [%s()] unable to copy data!", __FILE__, __LINE__, __FUNCTION__);
++ return -EFAULT;
++ }
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++ *offp += len;
++#endif
++
++ return len;
+ }
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *data)
++{
++ wl_info_t * wl = (wl_info_t *)data;
+ #else
+ static ssize_t
+-wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *data)
+-#endif
++wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp)
+ {
+- wl_info_t * wl = (wl_info_t *)data;
++ wl_info_t * wl = PDE_DATA(file_inode(filp));
++#endif
+ int from_user = 0;
+ int bcmerror;
+
+@@ -3270,7 +3311,11 @@
+ }
+ if (copy_from_user(&from_user, buff, 1)) {
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
+- return -EIO;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
++ return -EIO;
++#else
++ return -EFAULT;
++#endif
+ }
+
+ if (from_user >= 0x30)
+@@ -3280,10 +3325,15 @@
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
+ WL_UNLOCK(wl);
+
+- if (bcmerror < 0) {
++ if (bcmerror != BCME_OK) {
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
+ return -EIO;
+ }
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) && 0 /* no need to update offset because this file should only trigger action... */
++ *offp += length;
++#endif
++
+ return length;
+ }
+
+@@ -3304,8 +3354,8 @@
+ if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
+ WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
+ #else
+- if ((wl->proc_entry = proc_create(tmp, 0644, NULL, &wl_fops)) == NULL) {
+- WL_ERROR(("%s: proc_create %s failed\n", __FUNCTION__, tmp));
++ if ((wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_fops, wl)) == NULL) {
++ WL_ERROR(("%s: proc_create_data %s failed\n", __FUNCTION__, tmp));
+ #endif
+ ASSERT(0);
+ return -1;
diff --git a/net-wireless/broadcom-sta/metadata.xml b/net-wireless/broadcom-sta/metadata.xml
index 3a388868f7a8..4f3291ab14f7 100644
--- a/net-wireless/broadcom-sta/metadata.xml
+++ b/net-wireless/broadcom-sta/metadata.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<herd>proxy-maintainers</herd>
<maintainer>
- <email>tomboy64@sina.cn</email>
+ <email>mattst88@gentoo.org</email>
+ <name>Matt Turner</name>
</maintainer>
</pkgmetadata>