summaryrefslogtreecommitdiff
path: root/net-wireless/broadcom-sta
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-06-24 19:27:47 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-06-24 19:27:47 +0100
commitd2f5fa9c5505a5c3df8170b498e890f50dfc9553 (patch)
tree3d00d78309085fd829ffaf7aaf9463986b0ea984 /net-wireless/broadcom-sta
parentbfc2a8298cab03d289dc2cfed63308396fa0babe (diff)
gentoo auto-resync : 24:06:2023 - 19:27:47
Diffstat (limited to 'net-wireless/broadcom-sta')
-rw-r--r--net-wireless/broadcom-sta/Manifest33
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r7.ebuild (renamed from net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r6.ebuild)63
-rw-r--r--net-wireless/broadcom-sta/files/001-null-pointer-fix.patch48
-rw-r--r--net-wireless/broadcom-sta/files/002-rdtscl.patch22
-rw-r--r--net-wireless/broadcom-sta/files/003-linux47.patch (renamed from net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.7.patch)0
-rw-r--r--net-wireless/broadcom-sta/files/004-linux48.patch (renamed from net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.8.patch)0
-rw-r--r--net-wireless/broadcom-sta/files/005-debian-fix-kernel-warnings.patch161
-rw-r--r--net-wireless/broadcom-sta/files/006-linux411.patch27
-rw-r--r--net-wireless/broadcom-sta/files/007-linux412.patch78
-rw-r--r--net-wireless/broadcom-sta/files/008-linux415.patch46
-rw-r--r--net-wireless/broadcom-sta/files/009-fix_mac_profile_discrepancy.patch14
-rw-r--r--net-wireless/broadcom-sta/files/010-linux56.patch55
-rw-r--r--net-wireless/broadcom-sta/files/011-linux59.patch (renamed from net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r6-linux-5.9.patch)0
-rw-r--r--net-wireless/broadcom-sta/files/012-linux517.patch80
-rw-r--r--net-wireless/broadcom-sta/files/013-linux518.patch71
-rw-r--r--net-wireless/broadcom-sta/files/014-linux414.patch37
-rw-r--r--net-wireless/broadcom-sta/files/015-linux600.patch31
-rw-r--r--net-wireless/broadcom-sta/files/016-linux601.patch90
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch11
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch14
-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.271-r1-linux-3.18.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r2-linux-4.3-v2.patch16
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.11.patch52
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.12.patch64
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch63
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.1.patch29
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.6.patch88
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-modules.conf17
30 files changed, 831 insertions, 414 deletions
diff --git a/net-wireless/broadcom-sta/Manifest b/net-wireless/broadcom-sta/Manifest
index 0f6d290b7f6f..47a9926bcc15 100644
--- a/net-wireless/broadcom-sta/Manifest
+++ b/net-wireless/broadcom-sta/Manifest
@@ -1,19 +1,22 @@
-AUX broadcom-sta-6.30.223.141-eth-to-wlan.patch 395 BLAKE2B 80ee748c37774a85b5591601c81beca81ae2924a63bb76fbaa5914e9d2ff6344765ca1de334ae39af8f7e027af2da859512f4110d0b334e6b18d713186d20817 SHA512 1b340746e47edcc63cacf454fc44cd40ac34e526dacb026602e629b16030eeab0919456cadad7f93662291c1a0bea461c25471a7b71b7e9a1103f88e7d92be5d
-AUX broadcom-sta-6.30.223.141-gcc.patch 316 BLAKE2B 862f4c5a2284d5e2adb6d76c803d7fafe242ed3b69f526237ad231641c1160890ccbc4a8d2bc3e474176195d1bba6c68352afb47bcd619539b5b90fbbd8739e5 SHA512 a298ff51359da6fd5f47ca63e99babc778a95622687c205cca4244d16552fc697f46f90cadc93fc8e8d6674965b3641a0d22d35c5f14d6d86cf3215a71db6172
-AUX broadcom-sta-6.30.223.141-makefile.patch 497 BLAKE2B 49048dc09a76bf7bbb804d49415c3ae8a3b2d4236543a5940e7a1a22874f12a8ea8152dfc161d471edf0d5d71bdf111c6910c0ff98dc0350e3d66de4ceb28935 SHA512 31be005e4a2ed48e4d932ae902cd180e87167e3cc3d8892ea25e2cc3619a2843fbbfe769d0ef3cc11709841765aef5090185d49d98deffe14773dd5ca567218b
-AUX broadcom-sta-6.30.223.248-r3-Wno-date-time.patch 380 BLAKE2B d0398b0d856a1abb34e42f1ad2d1cfcf4c6203a82c251a40562c15ba46b1c8cd0a6cc1bedcdf576e02cc671b56f1f2da826dd0781df0308f7c8fac8387413293 SHA512 f1f96ac2b51be18bfdc4c3d627801cb14d024def92416434c3c0a9adb986e846f9ceb6087b5ab343d78ed87a3dda277818cb060534b44be62bf8f123bc6594fd
-AUX broadcom-sta-6.30.223.271-r1-linux-3.18.patch 326 BLAKE2B 9c7069c310983625ff1c8a956ea2e856e24c429791197b3e7e1131189fbf9e4b44e3e33cad672ffec44017779300bae3462b175399b1b4dcc2481f1f7b429d45 SHA512 bdc7f810bf01446e9752e664030e570396127a674b397ecd0001a0ff79103a891e5011975a819d3decfb8cc4dc90e7655621753c76ccc07bde99a2610f188587
-AUX broadcom-sta-6.30.223.271-r2-linux-4.3-v2.patch 408 BLAKE2B f7a01e470641b7a19cb649ceafe9c37d882dc2271fdec0e027919a8d3ed119663480a7eed645116b20b72f90cd96acc8c9e49afc570404ba51a36ef3697ca9c5 SHA512 d419d776bb8a0071250eb26d1e878639df35272dc47a8eb459f426356fadb0ab25779a90dd1317711c94549ec45f80b70fca9677c93c37cac829913120cc80d4
-AUX broadcom-sta-6.30.223.271-r4-linux-4.11.patch 1588 BLAKE2B 4212e27fa627da17bb46ddabb278ecf927d90263a8a3e44253663ee5171b38d854e07d4ca3372a412cb8fee0c21d04db18fa870cd6a2f5432376ac20694c801d SHA512 c134b34dcb4221f59de6cc9afcfb47c459ee840189c4b317f9440df3dab0c3fdf5a8798850c7335fbc05c904c9b224e6bc0457f2d33b04bef550c2d92a92cf20
-AUX broadcom-sta-6.30.223.271-r4-linux-4.12.patch 2320 BLAKE2B 9595273b57d76585f6cf7179342979911e5cfd0bc77eda1c1c5d90751c51dad8f8eb3d5c836a2618327e4b9fcae31908aad1f920c58de5c2cf9aa70e3d8e0f2d SHA512 4eecf21bf95943150db8f7bc0a3bd4634050095cc6b2a91164590e3d0887fd37d4425b27537cb63e2ece26596b85eb1f0aef52624a390015a61868d7d807dd2b
-AUX broadcom-sta-6.30.223.271-r4-linux-4.15.patch 1343 BLAKE2B ca87ae817cefd6436da9ba827c2aa83fec0b7b1e0d837842d857fdba0ba88b52cfd8eec0beddfdb67f08870d6bc2f8f3d3d0bc0fdeeab8fe849eb704dfd8f8a2 SHA512 5558ee1b82f62250e64e3fe71b340698d48325f43bb774be00dc3557c3789b7180282082905e21cf97316b70fd6de5941521db198dd2b6396903ab31465f336b
-AUX broadcom-sta-6.30.223.271-r4-linux-4.7.patch 3897 BLAKE2B ecf3eb75f8eb3331b0a36b39851536de43cffd3b303db9e9f4fe6fe55d463c3343aba17a99668448427764a719e15e3e862d6a3dc0bc61cb68da9934fb427c6f SHA512 f61ecfb6b8c5a377c7a4da7549c9ec75677782fa2f97e64de0df1259e0ec3b993cfa3eaa4ff50331703ee18ef28f2af0d09839dd3b63ed994e6b29cbfe8ed73f
-AUX broadcom-sta-6.30.223.271-r4-linux-4.8.patch 1835 BLAKE2B 7e091ac44616ea4cfa80b3a5563f4c6a235d2431b911f6bc52074a76b2c1d609dc546430f048abf042f862907f573c6b1dfa24c8c424aeefe73ff13ae3f34900 SHA512 e5959921b6f0cd5d61d7ed568f549b0920f394458c28257c05064b89d7067ce11c8e44ed0e5a48a65bd041c6193d9ae2d02fca2f5efbfb787d3f9001786a4578
-AUX broadcom-sta-6.30.223.271-r5-linux-5.1.patch 829 BLAKE2B 7bb59009307d423e72832d14114b7e6bd016717ace260174b2b9dbc909ec7eb962aec88d930f34ee6c09165e937a2cc271eac7e6b214fe8161a8f76af1aaa83c SHA512 e8780fbff3ed0640b30b44ca777d56bdcf8b23702d4fa827c843919658f022090ca3e2533541f577e7b49133cb2bb3d6ec85bcc9c023a82bea892e231f01a550
-AUX broadcom-sta-6.30.223.271-r5-linux-5.6.patch 3056 BLAKE2B 3842420d177c7faf6ac86e00acd5365cb6499ad82071cf7e37f2b765463c945f9634e73126520934011ee63aefee51937d8ff0baa3b206fc5902f2b15fe151e0 SHA512 9edd068851acf534efa424e9b3b3157e75d029f799c1f3a383eb0a9678fee56d6c01817a055e2fa405bba0c25fa2db89b4665a30a9fd35d4e58056bf85cadabc
-AUX broadcom-sta-6.30.223.271-r6-linux-5.9.patch 5933 BLAKE2B c1f522f6554a7bfe0f7b789b042ada14316ecc87bc196c83bec95f684152f323a4c31f60ff26843e36338b8c7949bf36719a5c8afa439ff71f7c74dae4c755b6 SHA512 b9a0193ab604da92c99051e2a4fd91e43c3b6aeea7dbda15635b43eabd35b414e197bf5f25ac0d4ec905a1cb75abc15f165428470bc788dbefd73f178d165099
+AUX 001-null-pointer-fix.patch 1270 BLAKE2B 41191fefabfd4bb5d1feaecefaf0f836e68b1190e420b54a7b5155a1ffea645c34740dc0fbc0ae60a2dac448e9e412c0c22b824f18aded70f685a2efa58c130e SHA512 885a3677304e900aeb624dbe50b5c2102d17da64551a0a4108a1da31ccc59b9349b3ba1344d4da9c0342c34927e40457105a542a74d51818301c65843f19ce9e
+AUX 002-rdtscl.patch 786 BLAKE2B bbc80e1ac01683ccc2d940212347fc11c74bdc252d492ca79a292015ac25df6a153ac97cb6c0f0a8d51c1c33d5dc0de4fdd61b1958499b946dc817d29646b72f SHA512 b483a4fd5fbb5a4697365b6ddcd8034b4d90ddee9bf2aecf003b0fd6838a708d3e84be33b08acdbe165d440480da25fdf0dfff0d2fe12fa2c5271c51d6ac74c0
+AUX 003-linux47.patch 3897 BLAKE2B ecf3eb75f8eb3331b0a36b39851536de43cffd3b303db9e9f4fe6fe55d463c3343aba17a99668448427764a719e15e3e862d6a3dc0bc61cb68da9934fb427c6f SHA512 f61ecfb6b8c5a377c7a4da7549c9ec75677782fa2f97e64de0df1259e0ec3b993cfa3eaa4ff50331703ee18ef28f2af0d09839dd3b63ed994e6b29cbfe8ed73f
+AUX 004-linux48.patch 1835 BLAKE2B 7e091ac44616ea4cfa80b3a5563f4c6a235d2431b911f6bc52074a76b2c1d609dc546430f048abf042f862907f573c6b1dfa24c8c424aeefe73ff13ae3f34900 SHA512 e5959921b6f0cd5d61d7ed568f549b0920f394458c28257c05064b89d7067ce11c8e44ed0e5a48a65bd041c6193d9ae2d02fca2f5efbfb787d3f9001786a4578
+AUX 005-debian-fix-kernel-warnings.patch 5013 BLAKE2B 3b65cccde7ed80bd88bf945cca6b71fca9eccc4a910666dad4df56a24471535e1d6007e1ea24567002c927357b525683b02c6a7ad2986aca738fc81ab736219f SHA512 6209a0a5a46a3efcede3cb1e263467173153d779b6267ba4c20f46421a9abd8743a7068527ace350a3da3ef3046b0399e09b37aba917fabe020c8c2600b60fdf
+AUX 006-linux411.patch 800 BLAKE2B 28ef5e50fa11fc15b409f3b3ee42aaf329756354ba8b7923d1b27939a6b21bd64b72a4adfb2eeff3c48bb8c4c1bc4294e8fd7744b83768974bf5d0592e20c148 SHA512 b7db17e30731a9cbc940b83f7b62f059529cff6c134e47e2176cd7c6fcd8d028334ed4fe1fdce7cf1aef87590f9664b463383ae3302a6e2aabe1baa79fbc5c95
+AUX 007-linux412.patch 2776 BLAKE2B 06035b1bca121c72b5e6bf120df644d5496d6020cf8537ec83917bb0f5b5a0a25129730f46201da2cc61e48cbcf4e9d3ed7757f3223e1d3b6e29b531c4c8fabb SHA512 d4acd891023ff8d4b9308afdd55c4e971cdf7773570c8e3a545400ed9e414eeca5016ebc8a530002e7858fd44f1fd5b0ae70c0d0a3cdbbffd5bd9abb702b2cde
+AUX 008-linux415.patch 1063 BLAKE2B 091e1da266ebaa0d429663facf3e81c849fe900c446e1c270ba23b65c15a99efeb1ae6c20905dfcc21b5f4bc3f91b32eb3b7bc9841f2a23508c71312403af774 SHA512 2fb5c3eebd48b6099fb87a9fd92545c17b2abf318b040a434c1b0bdd75a7a682b6e7ec9f80245c198f1c306bbaef35a2488123c5ba8764d5a83eb18132c0857b
+AUX 009-fix_mac_profile_discrepancy.patch 492 BLAKE2B 7c8012fa51592a3fca6dfde7a7a9c6dd37eb6c406d3f8695927e32c9e714c3faa23295b116a6cd97ec0403b123747b9095883bd7e3abe6c1888c3c9a4630f9f4 SHA512 97d34398d18ac9a7943233c12e01cf7006bf0648938303100932cabf5000c346f1a852978e3c8c48bb6e8652177e625ce1190047d580624319e680a13802ce92
+AUX 010-linux56.patch 1866 BLAKE2B 21f7fc163ffcf6857f3a21a8519a42600fd6b3658d14b32191ef1142c817c10c8dc691a3bc39228927ac29d7b7ac5c3a62eb786853046bacb9cc74efb51b6cb0 SHA512 8fb320c1272246c91fdd99cade2fb67a6ecd924a132c1b9432fa1ff0338444700451ffc6a1cb35e07188c58c5bd1ccaf59ebf014c49f44cb6ba33d1ec732859d
+AUX 011-linux59.patch 5933 BLAKE2B c1f522f6554a7bfe0f7b789b042ada14316ecc87bc196c83bec95f684152f323a4c31f60ff26843e36338b8c7949bf36719a5c8afa439ff71f7c74dae4c755b6 SHA512 b9a0193ab604da92c99051e2a4fd91e43c3b6aeea7dbda15635b43eabd35b414e197bf5f25ac0d4ec905a1cb75abc15f165428470bc788dbefd73f178d165099
+AUX 012-linux517.patch 2790 BLAKE2B d84d08161530bb9f05f627ec798a0897643869ea9b80781ae9eee85b072922c52e5127e55f04265c53fcfedc4e9da166eb3bb9f9fc2e139d62517ec54c2f45bb SHA512 ec34a2800d7a70a7a1ff8a96ba87c2327f68066addf5adc9f60ba303cfda9cee39159f110013f075e357988f92efe802010e9c1d7884a5dfb1908df1489bd608
+AUX 013-linux518.patch 2337 BLAKE2B e5ae3570dc2f27105c50e6dec807c1f4f1a2824995e0951e7ff405114d519e4f33992d8d2ea2c2d4fc3f9271d57f89bfb5b6b5c79af2c89492209a86ad673456 SHA512 b815a4ff9289d81ddbe7f76553b092df19ee137438c9e33811c3a8b15e8a3896763715975b42391b4edfb60cfb0db46b71f4fee0f33a7b07f8d45cc4608d3faa
+AUX 014-linux414.patch 936 BLAKE2B 0b1075bd59e8046969052ceb9cbe305ac2373b5d1600701ffcffb5219d3765ef5d15465c3aff63bbc547ed4f663dc4816d1b4fa09176d6c78828e488a9a863c4 SHA512 30207d8872ee8925a7c7412184e3b4fd6935f8017fb46e1173aca77333c99fb4316ef1511a83e345593c369210d4cbf976eea53995e229b4d856d97662c98961
+AUX 015-linux600.patch 1267 BLAKE2B 7d4dfe48577456436d0932bd1eca78fc1f0a952e141f13641b93bb24161a9f6847152966631cc05a6d707f9cf8adbded55a19aeaa2c15c963fffb5db9eff9f63 SHA512 21cf9b0b01ad4b30fa8541638e9a8428c8c68c89992b7e15c19f8526e8df6f8c5ff20de5ae2759b36fead07deacd1805749a9ed82611d15fb75dc94812e4941e
+AUX 016-linux601.patch 4316 BLAKE2B 6c627b392a5b05248e3fb78c9be0329deee601b70d88334f5f61e1af14643a7367fabbf3d3fce23b0cae317456ecdc7e7985ce019c3bc283117f3ba2be5b25b5 SHA512 8879aeb0a79b7e82ca5e70fd33acefda1733594d7e78940932d2c220cad48b643fc2c0cb8e79f1fc3ebaaa5a4383a0caf6798214f911c2f5859c8fab1c8532e8
+AUX broadcom-sta-modules.conf 335 BLAKE2B 25faab24a10f9a20b2178ac18e832e09a8a664e36d3eb794d4bf09db0ae7e0220105908d128523edb1bd218b8f090b9056700de93cf8a7eac7ac70f3f6dc575f SHA512 c882b853948e695b35f9c8d366d992ae73efa7aefd1c167ad36cd8e83edc5988e4b0caf36046d88481051a00e3c88bd42d4e83d88e36910f3c62d725e063af27
DIST README-broadcom-sta-6.30.223.271.txt 17216 BLAKE2B af6db6e129911d1589d7d6cb7166bee32ce1ca98a4e5c9b3515a44e48681d8a7a7a6b697419b2bcd9c46f0f4ca1f7ece632b63531b4a4ecd91df4f9dddf043c9 SHA512 672ecc5afcd8535a9f8beb4baea5a40c584b7682844e9ff0e4f66b7406b42118a99dce1fcd580118187fdc506781334b8243082def2b78dce916d90c55ab3663
DIST hybrid-v35-nodebug-pcoem-6_30_223_271.tar.gz 2869247 BLAKE2B 2e3189c468cec50b1a980452a4b2bd0f9657d9adf6fae2a95a8b1c2d1df2f5f6beb4cb903f72f444eddf823fe4375299864cd62191c9d59c4f77598b5d3aa246 SHA512 0361ba30d97bcb1dedf46c11ef1b9a16f09cde3faa6be87b3ccc28679f34183c2fdf511e7c3b5c26b304f6961da454ccf71844b92bbb2f25aa876249496a2f1b
DIST hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz 2928541 BLAKE2B e9d01c1a1a63c07f720e3ee53ee3ef634ab12694135300cb0ce47ade0e9e0084967a0b6df64d983e8184240eb3defb128f650bddb7727e901d50315307f3398a SHA512 6855781f7c69a9aecb9461932423688964879d5a4df571f01ae7adaa7bf21a410bef839605d555afb6c8f4eec92fe8510af6cb120930095617ff6cdcccedaf17
-EBUILD broadcom-sta-6.30.223.271-r6.ebuild 3840 BLAKE2B 3ca49f93f4fbbc69d6dc0011421cf973cd46b326c57b0cc354b698469d109866738922c415a4a0ddc842770048d6a88311bdf3c6fdd828640619eabb0361c1fd SHA512 d74782cffa4e2ec401ac2049124d99ea431749bd8a12f352b1a1b4e08825774545ffb1512d857b1f4d47106246714f35eda0626d78d80c6f4b44bf1d7427b7dd
+EBUILD broadcom-sta-6.30.223.271-r7.ebuild 3769 BLAKE2B 9334cc504b4e48211b7029842511b94685297edf10faa159a65ef68d86986a3c3e73d3b74b6dabfc347356c6e2e53208bdb042f706c13d6332383f5051b5c062 SHA512 8fc1532c434d42f4a8f07dd47cac429201e69346c3fc514f8851357761095983eea4c57316901e114734c017140f10426c4bc20a050f77271e9ca442f99ed8cc
MISC metadata.xml 250 BLAKE2B 3418f6ba3586bffc26461ed5b80518671c845466e4f0ceb2468b5f9a12efa0ee7bee2dedd74908c11bcdd7bc92fbf3c018f18e011c2cb9c319945e185147233f SHA512 b0ea50f3526de06f698a5914ba34edeb1df5f04ab23f457e63685875f938b4dc70b8602266a90f7d07e9e2ebe547b37ff5b577eebb08256d5606046438582032
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r6.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r7.ebuild
index 118df993b314..efe1beb913de 100644
--- a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r6.ebuild
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r7.ebuild
@@ -1,9 +1,8 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-
-inherit linux-info linux-mod
+EAPI=8
+inherit linux-mod-r1
DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
HOMEPAGE="https://www.broadcom.com/support/802.11"
@@ -11,35 +10,37 @@ SRC_BASE="https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35
SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )
https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/README_${PV}.txt -> README-${P}.txt"
-S="${WORKDIR}"
LICENSE="Broadcom"
+SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
RESTRICT="mirror"
DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
PATCHES=(
- "${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.271-r1-linux-3.18.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r2-linux-4.3-v2.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.7.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.8.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.11.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.12.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r4-linux-4.15.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r5-linux-5.1.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r5-linux-5.6.patch"
- "${FILESDIR}/${PN}-6.30.223.271-r6-linux-5.9.patch"
+ "${FILESDIR}/001-null-pointer-fix.patch"
+ "${FILESDIR}/002-rdtscl.patch"
+ "${FILESDIR}/003-linux47.patch"
+ "${FILESDIR}/004-linux48.patch"
+ "${FILESDIR}/005-debian-fix-kernel-warnings.patch"
+ "${FILESDIR}/006-linux411.patch"
+ "${FILESDIR}/007-linux412.patch"
+ "${FILESDIR}/008-linux415.patch"
+ "${FILESDIR}/009-fix_mac_profile_discrepancy.patch"
+ "${FILESDIR}/010-linux56.patch"
+ "${FILESDIR}/011-linux59.patch"
+ "${FILESDIR}/012-linux517.patch"
+ "${FILESDIR}/013-linux518.patch"
+ "${FILESDIR}/014-linux414.patch"
+ "${FILESDIR}/015-linux600.patch"
+ "${FILESDIR}/016-linux601.patch"
)
-MODULE_NAMES="wl(net/wireless)"
-MODULESD_WL_ALIASES=("wlan0 wl")
-
pkg_pretend() {
ewarn
ewarn "If you are stuck using this unmaintained driver (likely in a MacBook),"
@@ -60,7 +61,7 @@ pkg_setup() {
# 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 ~!X86_INTEL_LPSS"
- CONFIG_CHECK2="~LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ 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!"
@@ -81,14 +82,22 @@ pkg_setup() {
CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
fi
- linux-mod_pkg_setup
+ linux-mod-r1_pkg_setup
+}
+
+src_compile() {
+ local modlist=( wl )
+ local modargs=(
+ -C ${KV_DIR} M="${S}"
+ )
- BUILD_PARAMS="-C ${KV_DIR} M=${S}"
- BUILD_TARGETS="wl.ko"
+ linux-mod-r1_src_compile
}
src_install() {
- linux-mod_src_install
+ linux-mod-r1_src_install
+ insinto /etc/modprobe.d
+ newins "${FILESDIR}"/broadcom-sta-modules.conf wl.conf
dodoc "${DISTDIR}/README-${P}.txt"
}
diff --git a/net-wireless/broadcom-sta/files/001-null-pointer-fix.patch b/net-wireless/broadcom-sta/files/001-null-pointer-fix.patch
new file mode 100644
index 000000000000..0ebe1e242243
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/001-null-pointer-fix.patch
@@ -0,0 +1,48 @@
+Description: Fixing null pointer crash
+
+Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773713
+Bug-Ubuntu: https://launchpad.net/bugs/1415880
+Last-Update: 2015-08-18
+
+---
+ src/wl/sys/wl_linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index 860b935..295156f 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -2157,8 +2157,8 @@ wl_start(struct sk_buff *skb, struct net_device *dev)
+ 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);
+
+--
+1.9.1
+
+--- a/src/wl/sys/wl_linux.a 2023-04-16 23:06:52.255588442 -0500
++++ b/src/wl/sys/wl_linux.c 2023-04-16 23:07:22.315309655 -0500
+@@ -737,9 +737,6 @@
+ dev->name, device,
+ WL_ALL_PASSIVE_ENAB(wl) ? ", Passive Mode" : "", EPI_VERSION_STR);
+
+-#ifdef BCMDBG
+- printf(" (Compiled in " SRCBASE " at " __TIME__ " on " __DATE__ ")");
+-#endif
+ printf("\n");
+
+ wl_found++;
+@@ -2098,7 +2095,7 @@
+ wl_dump_ver(wl_info_t *wl, struct bcmstrbuf *b)
+ {
+ bcm_bprintf(b, "wl%d: %s %s version %s\n", wl->pub->unit,
+- __DATE__, __TIME__, EPI_VERSION_STR);
++ "X", "Y", EPI_VERSION_STR);
+ }
+
+ #if defined(BCMDBG)
diff --git a/net-wireless/broadcom-sta/files/002-rdtscl.patch b/net-wireless/broadcom-sta/files/002-rdtscl.patch
new file mode 100644
index 000000000000..1b9862cc3d8d
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/002-rdtscl.patch
@@ -0,0 +1,22 @@
+Since Linux 4.3, rdtscl() is no longer available and native_read_tsc()
+is renamed to rdtsc(). Move the macro contents in-line and call the
+new function. References:
+
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b
+
+diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c
+--- a/src/shared/linux_osl.c 2015-09-19 01:47:15.000000000 +0300
++++ b/src/shared/linux_osl.c 2015-11-21 15:20:30.585902518 +0200
+@@ -932,7 +932,11 @@
+ uint cycles;
+
+ #if defined(__i386__)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
++ cycles = (u32)rdtsc();
++#else
+ rdtscl(cycles);
++#endif
+ #else
+ cycles = 0;
+ #endif
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.7.patch b/net-wireless/broadcom-sta/files/003-linux47.patch
index 566680a09140..566680a09140 100644
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.7.patch
+++ b/net-wireless/broadcom-sta/files/003-linux47.patch
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.8.patch b/net-wireless/broadcom-sta/files/004-linux48.patch
index 20e8a9ae49d2..20e8a9ae49d2 100644
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.8.patch
+++ b/net-wireless/broadcom-sta/files/004-linux48.patch
diff --git a/net-wireless/broadcom-sta/files/005-debian-fix-kernel-warnings.patch b/net-wireless/broadcom-sta/files/005-debian-fix-kernel-warnings.patch
new file mode 100644
index 000000000000..e9bf66a959b8
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/005-debian-fix-kernel-warnings.patch
@@ -0,0 +1,161 @@
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -1968,7 +1968,7 @@
+
+ if (dtoh32(bi->length) > WL_BSS_INFO_MAX) {
+ WL_DBG(("Beacon is larger than buffer. Discarding\n"));
+- return err;
++ return -E2BIG;
+ }
+ notif_bss_info = kzalloc(sizeof(*notif_bss_info) + sizeof(*mgmt) - sizeof(u8) +
+ WL_BSS_INFO_MAX, GFP_KERNEL);
+@@ -1992,9 +1992,15 @@
+ beacon_proberesp->capab_info = cpu_to_le16(bi->capability);
+ wl_rst_ie(wl);
+
+- wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length);
+- wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX -
++ err = wl_mrg_ie(wl, ((u8 *) bi) + bi->ie_offset, bi->ie_length);
++ if (err)
++ goto inform_single_bss_out;
++
++ err = wl_cp_ie(wl, beacon_proberesp->variable, WL_BSS_INFO_MAX -
+ offsetof(struct wl_cfg80211_bss_info, frame_buf));
++ if (err)
++ goto inform_single_bss_out;
++
+ notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) +
+ wl_get_ielen(wl);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
+@@ -2006,14 +2012,14 @@
+ #endif
+ if (freq == 0) {
+ WL_ERR(("Invalid channel, fail to chcnage channel to freq\n"));
+- kfree(notif_bss_info);
+- return -EINVAL;
++ err = -EINVAL;
++ goto inform_single_bss_out;
+ }
+ channel = ieee80211_get_channel(wiphy, freq);
+ if (unlikely(!channel)) {
+ WL_ERR(("ieee80211_get_channel error\n"));
+- kfree(notif_bss_info);
+- return -EINVAL;
++ err = -EINVAL;
++ goto inform_single_bss_out;
+ }
+
+ WL_DBG(("SSID : \"%s\", rssi %d, channel %d, capability : 0x04%x, bssid %pM\n",
+@@ -2021,28 +2027,37 @@
+ mgmt->u.beacon.capab_info, &bi->BSSID));
+
+ signal = notif_bss_info->rssi * 100;
+- cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt,
+- le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL);
+- if (unlikely(!cbss)) {
+- WL_ERR(("cfg80211_inform_bss_frame error\n"));
+- kfree(notif_bss_info);
+- return -EINVAL;
+- }
+
+- notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+- notify_ielen = le32_to_cpu(bi->ie_length);
++ if (!wl->scan_request) {
++ cbss = cfg80211_inform_bss_frame(wiphy, channel, mgmt,
++ le16_to_cpu(notif_bss_info->frame_len), signal, GFP_KERNEL);
++ if (unlikely(!cbss)) {
++ WL_ERR(("cfg80211_inform_bss_frame error\n"));
++ err = -ENOMEM;
++ goto inform_single_bss_out;
++ }
++ } else {
++ 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);
++ 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);
++ cbss = cfg80211_inform_bss(wiphy, channel,
++ wl->active_scan ?
++ CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON,
++ (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;
++ if (unlikely(!cbss)) {
++ WL_ERR(("cfg80211_inform_bss error\n"));
++ err = -ENOMEM;
++ goto inform_single_bss_out;
++ }
++ }
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
+ cfg80211_put_bss(wiphy, cbss);
+@@ -2050,6 +2065,7 @@
+ cfg80211_put_bss(cbss);
+ #endif
+
++inform_single_bss_out:
+ kfree(notif_bss_info);
+
+ return err;
+@@ -2316,6 +2332,9 @@
+ if (err)
+ goto update_bss_info_out;
+
++ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
++ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS);
++
+ ie = ((u8 *)bi) + bi->ie_offset;
+ ie_len = bi->ie_length;
+ } else {
+@@ -2328,11 +2347,18 @@
+ ie_len = bss->len_information_elements;
+ #endif
+ wl->conf->channel = *bss->channel;
++ }
++
++ if (bss) {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)
+ cfg80211_put_bss(wiphy, bss);
+ #else
+ cfg80211_put_bss(bss);
+ #endif
++ } else {
++ WL_DBG(("Could not update BSS\n"));
++ err = -EINVAL;
++ goto update_bss_info_out;
+ }
+
+ tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
+@@ -2360,10 +2386,17 @@
+ struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl);
+ s32 err = 0;
+
+- wl_get_assoc_ies(wl);
++ err = wl_get_assoc_ies(wl);
++ if (err)
++ return err;
++
+ memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN);
+ memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+- wl_update_bss_info(wl);
++
++ err = wl_update_bss_info(wl);
++ if (err)
++ return err;
++
+ cfg80211_roamed(ndev,
+ #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
+ &wl->conf->channel,
diff --git a/net-wireless/broadcom-sta/files/006-linux411.patch b/net-wireless/broadcom-sta/files/006-linux411.patch
new file mode 100644
index 000000000000..7a2e8c0c6cb0
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/006-linux411.patch
@@ -0,0 +1,27 @@
+diff -u sys0/wl_cfg80211_hybrid.c sys/wl_cfg80211_hybrid.c
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -39,6 +39,10 @@
+ #include <proto/802.11.h>
+ #include <wl_cfg80211_hybrid.h>
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
++#include <linux/sched/signal.h>
++#endif
++
+ #define EVENT_TYPE(e) dtoh32((e)->event_type)
+ #define EVENT_FLAGS(e) dtoh16((e)->flags)
+ #define EVENT_STATUS(e) dtoh32((e)->status)
+diff -u sys0/wl_linux.c sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -2915,7 +2915,9 @@
+ if (skb == NULL) return;
+
+ skb->dev = wl->monitor_dev;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ skb->dev->last_rx = jiffies;
++#endif
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
+ skb_reset_mac_header(skb);
+ #else
diff --git a/net-wireless/broadcom-sta/files/007-linux412.patch b/net-wireless/broadcom-sta/files/007-linux412.patch
new file mode 100644
index 000000000000..1673f063cdb5
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/007-linux412.patch
@@ -0,0 +1,78 @@
+From 0b888bf115612074df99654140a1980111c29748 Mon Sep 17 00:00:00 2001
+From: Antoine Cotten <tonio.cotten@gmail.com>
+Date: Fri, 7 Jul 2017 15:17:47 +0200
+Subject: [PATCH] Apply patch from Debian bug #867258
+
+Compile fix with kernel 4.12
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867258
+---
+ src/wl/sys/wl_cfg80211_hybrid.c | 29 +++++++++++++++++++++++++----
+ 1 file changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index c46944a..1a9840a 100644
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -53,7 +53,11 @@ u32 wl_dbg_level = WL_DBG_ERR;
+ #endif
+
+ static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
+- enum nl80211_iftype type, u32 *flags, struct vif_params *params);
++ enum nl80211_iftype type,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)
++ u32 *flags,
++#endif
++ struct vif_params *params);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
+ static s32
+ wl_cfg80211_scan(struct wiphy *wiphy,
+@@ -466,8 +470,11 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len)
+
+ static s32
+ wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
+- enum nl80211_iftype type, u32 *flags,
+- struct vif_params *params)
++ enum nl80211_iftype type,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)
++ u32 *flags,
++#endif
++ struct vif_params *params)
+ {
+ struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
+ struct wireless_dev *wdev;
+@@ -2387,6 +2394,15 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev,
+ const wl_event_msg_t *e, void *data)
+ {
+ struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
++ struct cfg80211_roam_info roam_info = {
++ .bssid = wl->profile->bssid,
++ .req_ie = conn_info->req_ie,
++ .req_ie_len = conn_info->req_ie_len,
++ .resp_ie = conn_info->resp_ie,
++ .resp_ie_len = conn_info->resp_ie_len,
++ };
++#endif
+ s32 err = 0;
+
+ err = wl_get_assoc_ies(wl);
+@@ -2401,12 +2417,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev,
+ return err;
+
+ cfg80211_roamed(ndev,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
++ &roam_info,
++#else
+ #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
+ &wl->conf->channel,
+ #endif
+ (u8 *)&wl->bssid,
+ conn_info->req_ie, conn_info->req_ie_len,
+- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL);
++ conn_info->resp_ie, conn_info->resp_ie_len,
++#endif
++ GFP_KERNEL);
+ WL_DBG(("Report roaming result\n"));
+
+ set_bit(WL_STATUS_CONNECTED, &wl->status);
+
diff --git a/net-wireless/broadcom-sta/files/008-linux415.patch b/net-wireless/broadcom-sta/files/008-linux415.patch
new file mode 100644
index 000000000000..1bced2f68ab1
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/008-linux415.patch
@@ -0,0 +1,46 @@
+--- a/src/wl/sys/wl_linux.c 2017-07-17 00:11:24.000000000 +0100
++++ b/src/wl/sys/wl_linux.c 2018-01-27 09:49:47.057799596 +0000
+@@ -93,7 +93,11 @@
+
+ #include <wlc_wowl.h>
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static void wl_timer(struct timer_list *tl);
++#else
+ static void wl_timer(ulong data);
++#endif
+ static void _wl_timer(wl_timer_t *t);
+ static struct net_device *wl_alloc_linux_if(wl_if_t *wlif);
+
+@@ -2297,10 +2301,17 @@
+ atomic_dec(&t->wl->callbacks);
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static void
++wl_timer(struct timer_list *tl)
++{
++ wl_timer_t *t = (wl_timer_t *)tl;
++#else
+ static void
+ wl_timer(ulong data)
+ {
+ wl_timer_t *t = (wl_timer_t *)data;
++#endif
+
+ if (!WL_ALL_PASSIVE_ENAB(t->wl))
+ _wl_timer(t);
+@@ -2352,9 +2363,13 @@
+
+ bzero(t, sizeof(wl_timer_t));
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++ timer_setup(&t->timer, wl_timer, 0);
++#else
+ init_timer(&t->timer);
+ t->timer.data = (ulong) t;
+ t->timer.function = wl_timer;
++#endif
+ t->wl = wl;
+ t->fn = fn;
+ t->arg = arg;
diff --git a/net-wireless/broadcom-sta/files/009-fix_mac_profile_discrepancy.patch b/net-wireless/broadcom-sta/files/009-fix_mac_profile_discrepancy.patch
new file mode 100644
index 000000000000..4260eba5057a
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/009-fix_mac_profile_discrepancy.patch
@@ -0,0 +1,14 @@
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-09-19 00:47:30.000000000 +0200
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2018-11-14 14:06:03.313487995 +0100
+@@ -1444,11 +1444,10 @@
+ s32 rate;
+ s32 err = 0;
+
+ if (memcmp(mac, wl->profile->bssid, ETHER_ADDR_LEN)) {
+ WL_ERR(("Wrong Mac address, mac = %pM profile =%pM\n", mac, wl->profile->bssid));
+- return -ENOENT;
+ }
+
+ err = wl_dev_ioctl(dev, WLC_GET_RATE, &rate, sizeof(rate));
+ if (err) {
+ WL_DBG(("Could not get rate (%d)\n", err));
diff --git a/net-wireless/broadcom-sta/files/010-linux56.patch b/net-wireless/broadcom-sta/files/010-linux56.patch
new file mode 100644
index 000000000000..f8d5783819cd
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/010-linux56.patch
@@ -0,0 +1,55 @@
+diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c
+index 6157d18..8237ec7 100644
+--- a/src/shared/linux_osl.c
++++ b/src/shared/linux_osl.c
+@@ -942,7 +942,7 @@ osl_getcycles(void)
+ void *
+ osl_reg_map(uint32 pa, uint size)
+ {
+- return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
++ return (ioremap((unsigned long)pa, (unsigned long)size));
+ }
+
+ void
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index 0d05100..2ed1f0d 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -582,7 +582,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs,
+ }
+ wl->bcm_bustype = bustype;
+
+- if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
++ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
+ WL_ERROR(("wl%d: ioremap() failed\n", unit));
+ goto fail;
+ }
+@@ -772,7 +772,7 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ if ((val & 0x0000ff00) != 0)
+ pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
+ bar1_size = pci_resource_len(pdev, 2);
+- bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2),
++ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2),
+ bar1_size);
+ wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev,
+ pdev->irq, bar1_addr, bar1_size);
+@@ -3335,12 +3335,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t
+ }
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
++static struct proc_ops wl_fops = {
++ .proc_read = wl_proc_read,
++ .proc_write = wl_proc_write,
++};
++#else
+ static const struct file_operations wl_fops = {
+ .owner = THIS_MODULE,
+ .read = wl_proc_read,
+ .write = wl_proc_write,
+ };
+ #endif
++#endif
+
+ static int
+ wl_reg_proc_entry(wl_info_t *wl)
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r6-linux-5.9.patch b/net-wireless/broadcom-sta/files/011-linux59.patch
index 6ef476464c0c..6ef476464c0c 100644
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r6-linux-5.9.patch
+++ b/net-wireless/broadcom-sta/files/011-linux59.patch
diff --git a/net-wireless/broadcom-sta/files/012-linux517.patch b/net-wireless/broadcom-sta/files/012-linux517.patch
new file mode 100644
index 000000000000..6f23316691c8
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/012-linux517.patch
@@ -0,0 +1,80 @@
+From 31b7849092c43805c7fbaf7518b99874aa1b310c Mon Sep 17 00:00:00 2001
+From: Joan Bruguera <joanbrugueram@gmail.com>
+Date: Wed, 12 Jan 2022 20:49:20 +0100
+Subject: [PATCH] Tentative fix for broadcom-wl 6.30.223.271 driver for Linux 5.17-rc1
+
+Set netdev->dev_addr through dev_addr_mod + PDE_DATA fix
+
+Since Linux 5.17 netdev->dev_addr is const and must be changed through
+dev_addr_mod, otherwise a warning is logged in dmesg and bad things may happen.
+
+NB: The #if is not wrong, dev_addr_mod is defined since Linux 5.15-rc1
+
+Plus a trivial fix for PDE_DATA.
+
+Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-28 on Arch Linux.
+
+See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adeef3e32146a8d2a73c399dc6f5d76a449131b1
+ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=359745d78351c6f5442435f81549f0207ece28aa
+---
+ src/wl/sys/wl_linux.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index e491df7..e4614fb 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -93,6 +93,10 @@ struct iw_statistics *wl_get_wireless_stats(struct net_device *dev);
+
+ #include <wlc_wowl.h>
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
++#define PDE_DATA pde_data
++#endif
++
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
+ static void wl_timer(struct timer_list *tl);
+ #else
+@@ -490,6 +494,12 @@ wl_if_setup(struct net_device *dev)
+ #endif
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
++static inline void eth_hw_addr_set(struct net_device *dev, const void *addr) {
++ memcpy(dev->dev_addr, addr, ETHER_ADDR_LEN);
++}
++#endif
++
+ static wl_info_t *
+ wl_attach(uint16 vendor, uint16 device, ulong regs,
+ uint bustype, void *btparam, uint irq, uchar* bar1_addr, uint32 bar1_size)
+@@ -634,7 +644,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs,
+ WL_ERROR(("wl%d: Error setting MAC ADDRESS\n", unit));
+ }
+ #endif
+- bcopy(&wl->pub->cur_etheraddr, dev->dev_addr, ETHER_ADDR_LEN);
++ eth_hw_addr_set(dev, wl->pub->cur_etheraddr.octet);
+
+ online_cpus = 1;
+
+@@ -1835,7 +1845,7 @@ wl_set_mac_address(struct net_device *dev, void *addr)
+
+ WL_LOCK(wl);
+
+- bcopy(sa->sa_data, dev->dev_addr, ETHER_ADDR_LEN);
++ eth_hw_addr_set(dev, sa->sa_data);
+ err = wlc_iovar_op(wl->wlc, "cur_etheraddr", NULL, 0, sa->sa_data, ETHER_ADDR_LEN,
+ IOV_SET, (WL_DEV_IF(dev))->wlcif);
+ WL_UNLOCK(wl);
+@@ -3010,7 +3020,7 @@ _wl_add_monitor_if(wl_task_t *task)
+ else
+ dev->type = ARPHRD_IEEE80211_RADIOTAP;
+
+- bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN);
++ eth_hw_addr_set(dev, wl->dev->dev_addr);
+
+ #if defined(WL_USE_NETDEV_OPS)
+ dev->netdev_ops = &wl_netdev_monitor_ops;
+--
+2.35.1
+
diff --git a/net-wireless/broadcom-sta/files/013-linux518.patch b/net-wireless/broadcom-sta/files/013-linux518.patch
new file mode 100644
index 000000000000..d837429a6899
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/013-linux518.patch
@@ -0,0 +1,71 @@
+diff -u -r a/src/shared/linux_osl.c b/src/shared/linux_osl.c
+--- a/src/shared/linux_osl.c 2022-05-24 20:51:15.662604980 +0000
++++ b/src/shared/linux_osl.c 2022-05-24 21:13:38.264472425 +0000
+@@ -599,6 +599,8 @@
+ va = kmalloc(size, GFP_ATOMIC | __GFP_ZERO);
+ if (va)
+ *pap = (ulong)__virt_to_phys(va);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ va = dma_alloc_coherent(&((struct pci_dev *)osh->pdev)->dev, size, (dma_addr_t*)pap, GFP_ATOMIC);
+ #else
+ va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap);
+ #endif
+@@ -612,6 +614,8 @@
+
+ #ifdef __ARM_ARCH_7A__
+ kfree(va);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ dma_free_coherent(&((struct pci_dev *)osh->pdev)->dev, size, va, (dma_addr_t)pa);
+ #else
+ pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa);
+ #endif
+@@ -623,7 +627,11 @@
+ int dir;
+
+ ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE;
++#else
+ dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
++#endif
+
+ #if defined(__ARM_ARCH_7A__) && defined(BCMDMASGLISTOSL)
+ if (dmah != NULL) {
+@@ -641,7 +649,11 @@
+ ASSERT(totsegs + nsegs <= MAX_DMA_SEGS);
+ sg->page_link = 0;
+ sg_set_buf(sg, PKTDATA(osh, skb), PKTLEN(osh, skb));
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ dma_map_single(&((struct pci_dev *)osh->pdev)->dev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir);
++#else
+ pci_map_single(osh->pdev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir);
++#endif
+ }
+ totsegs += nsegs;
+ totlen += PKTLEN(osh, skb);
+@@ -656,7 +668,11 @@
+ }
+ #endif
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ return (dma_map_single(&((struct pci_dev *)osh->pdev)->dev, va, size, dir));
++#else
+ return (pci_map_single(osh->pdev, va, size, dir));
++#endif
+ }
+
+ void BCMFASTPATH
+@@ -665,8 +681,13 @@
+ int dir;
+
+ ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE;
++ dma_unmap_single(&((struct pci_dev *)osh->pdev)->dev, (uint32)pa, size, dir);
++#else
+ dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
+ pci_unmap_single(osh->pdev, (uint32)pa, size, dir);
++#endif
+ }
+
+ #if defined(BCMDBG_ASSERT)
diff --git a/net-wireless/broadcom-sta/files/014-linux414.patch b/net-wireless/broadcom-sta/files/014-linux414.patch
new file mode 100644
index 000000000000..0576aa5cf97c
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/014-linux414.patch
@@ -0,0 +1,37 @@
+From: Gerardo Esteban Malazdrewicz <gerardo@malazdrewicz.com.ar>
+Date: Fri, 29 Dec 2017 23:44:24 -0400
+Subject: linux414
+Origin: https://bugs.debian.org/885885
+
+linux 4.14 changed the kernel_read function prototype.
+---
+ src/shared/linux_osl.c | 12 +++++++++++-
+ 1 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c
+index 9adc392..b24a973 100644
+--- a/src/shared/linux_osl.c
++++ b/src/shared/linux_osl.c
+@@ -1076,11 +1076,21 @@ osl_os_get_image_block(char *buf, int len, void *image)
+ {
+ struct file *fp = (struct file *)image;
+ int rdlen;
++ loff_t pos;
+
+ if (!image)
+ return 0;
+
+- rdlen = kernel_read(fp, fp->f_pos, buf, len);
++ pos = fp->f_pos;
++ rdlen = kernel_read(fp,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
++ pos,
++#endif
++ buf, len
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
++ ,&pos
++#endif
++ );
+ if (rdlen > 0)
+ fp->f_pos += rdlen;
+
diff --git a/net-wireless/broadcom-sta/files/015-linux600.patch b/net-wireless/broadcom-sta/files/015-linux600.patch
new file mode 100644
index 000000000000..8645907bbae4
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/015-linux600.patch
@@ -0,0 +1,31 @@
+From 933540c63f33e6ac2825d65c4b681ef3387d9146 Mon Sep 17 00:00:00 2001
+From: Antoine Cotten <hello@acotten.com>
+Date: Mon, 15 Aug 2022 17:53:51 +0200
+Subject: [PATCH] cfg80211_roam_info compat for MLO APIs in Linux >= 6.0
+
+The 'bssid' struct field is now under 'links.bssid'.
+
+See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=efbabc11650040c64884ff3019b88c7bcc0ceb1d
+
+Original patch by Joan Bruguera:
+https://gist.github.com/joanbm/207210d74637870c01ef5a3c262a597d
+---
+ src/wl/sys/wl_cfg80211_hybrid.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index 5e9e6d3..5ec35c5 100644
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -2412,7 +2412,11 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev,
+ struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
+ struct cfg80211_roam_info roam_info = {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ .bssid = wl->profile->bssid,
++#else
++ .links[0].bssid = wl->profile->bssid,
++#endif
+ .req_ie = conn_info->req_ie,
+ .req_ie_len = conn_info->req_ie_len,
+ .resp_ie = conn_info->resp_ie,
diff --git a/net-wireless/broadcom-sta/files/016-linux601.patch b/net-wireless/broadcom-sta/files/016-linux601.patch
new file mode 100644
index 000000000000..721967d275c2
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/016-linux601.patch
@@ -0,0 +1,90 @@
+diff -Nurp -u -r a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2022-12-12 00:23:30.821615599 +0000
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2022-12-12 00:35:47.854975024 +0000
+@@ -105,14 +105,28 @@ static s32 wl_cfg80211_get_tx_power(stru
+ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm);
+ #endif
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
++static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy,
++ struct net_device *dev, int link_id, u8 key_idx, bool unicast,
++ bool multicast);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
+ static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy,
+ struct net_device *dev, u8 key_idx, bool unicast, bool multicast);
+ #else
+ static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy,
+ struct net_device *dev, u8 key_idx);
+ #endif
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
++static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev,
++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr,
++ struct key_params *params);
++static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev,
++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr);
++static s32 wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr,
++ void *cookie,
++ void (*callback) (void *cookie, struct key_params *params));
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
+ static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev,
+ u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params);
+ static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev,
+@@ -1161,7 +1175,12 @@ static s32 wl_cfg80211_get_tx_power(stru
+ return err;
+ }
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
++static s32
++wl_cfg80211_config_default_key(struct wiphy *wiphy,
++ struct net_device *dev, int link_id, u8 key_idx, bool unicast,
++ bool multicast)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
+ static s32
+ wl_cfg80211_config_default_key(struct wiphy *wiphy,
+ struct net_device *dev, u8 key_idx, bool unicast, bool multicast)
+@@ -1186,7 +1205,12 @@ wl_cfg80211_config_default_key(struct wi
+ return 0;
+ }
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
++static s32
++wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev,
++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr,
++ struct key_params *params)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
+ static s32
+ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev,
+ u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params)
+@@ -1307,7 +1331,11 @@ wl_cfg80211_add_key(struct wiphy *wiphy,
+ return err;
+ }
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
++static s32
++wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev,
++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
+ static s32
+ wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev,
+ u8 key_idx, bool pairwise, const u8 *mac_addr)
+@@ -1350,7 +1378,13 @@ wl_cfg80211_del_key(struct wiphy *wiphy,
+ return err;
+ }
+
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
++static s32
++wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr,
++ void *cookie,
++ void (*callback) (void *cookie, struct key_params * params))
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
+ static s32
+ wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
+ u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie,
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch
deleted file mode 100644
index b23914a0b3d6..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
---- a/src/wl/sys/wl_linux.c 2013-08-01 09:52:22.000000000 +0300
-+++ b/src/wl/sys/wl_linux.c 2013-09-27 09:20:11.495023471 +0300
-@@ -235,7 +235,7 @@
- #define to_str(s) #s
- #define quote_str(s) to_str(s)
-
--#define BRCM_WLAN_IFNAME eth%d
-+#define BRCM_WLAN_IFNAME wlan%d
-
- static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
-
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch
deleted file mode 100644
index b5d7e858d78f..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -urN a/src/wl/sys/wl_iw.h b/src/wl/sys/wl_iw.h
---- a/src/wl/sys/wl_iw.h 2013-08-01 09:52:22.000000000 +0300
-+++ b/src/wl/sys/wl_iw.h 2013-09-27 09:36:07.808067913 +0300
-@@ -21,6 +21,7 @@
- #ifndef _wl_iw_h_
- #define _wl_iw_h_
-
-+#include <linux/semaphore.h>
- #include <linux/wireless.h>
-
- #include <typedefs.h>
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch
deleted file mode 100644
index d5b97fe87ebe..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/Makefile 2013-04-28 22:42:59.000000000 +0200
-+++ b/Makefile 2013-04-28 22:45:53.000000000 +0200
-@@ -128,9 +128,9 @@
-
- EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
-
--KBASE ?= /lib/modules/`uname -r`
-+KBASE ?= /lib/modules/${KV_FULL}
- KBUILD_DIR ?= $(KBASE)/build
--MDEST_DIR ?= $(KBASE)/kernel/drivers/net/wireless
-+MDEST_DIR ?= ${D}$(KBASE)/kernel/drivers/net/wireless
-
- all:
- KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd`
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
deleted file mode 100644
index f93e3f1d3a3f..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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.271-r1-linux-3.18.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r1-linux-3.18.patch
deleted file mode 100644
index 9a0e7136c53b..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r1-linux-3.18.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- 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
-@@ -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);
-
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r2-linux-4.3-v2.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r2-linux-4.3-v2.patch
deleted file mode 100644
index 588f77ad16f2..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r2-linux-4.3-v2.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -ruN a/src/shared/linux_osl.c b/src/shared/linux_osl.c
---- a/src/shared/linux_osl.c 2015-11-26 12:16:23.343091098 -0800
-+++ b/src/shared/linux_osl.c 2015-11-26 12:17:08.657092739 -0800
-@@ -932,7 +932,11 @@
- uint cycles;
-
- #if defined(__i386__)
-- rdtscl(cycles);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ cycles = (u32)rdtsc();
-+#else
-+ rdtscl(cycles);
-+#endif
- #else
- cycles = 0;
- #endif
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.11.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.11.patch
deleted file mode 100644
index a779f8c84cfd..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.11.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
-index a9671e2..da36405 100644
---- a/src/wl/sys/wl_cfg80211_hybrid.c
-+++ b/src/wl/sys/wl_cfg80211_hybrid.c
-@@ -30,6 +30,9 @@
- #include <linux/kthread.h>
- #include <linux/netdevice.h>
- #include <linux/ieee80211.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
-+#include <linux/sched/signal.h>
-+#endif
- #include <net/cfg80211.h>
- #include <linux/nl80211.h>
- #include <net/rtnetlink.h>
-diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
-index 489c9f5..f8278ad 100644
---- a/src/wl/sys/wl_linux.c
-+++ b/src/wl/sys/wl_linux.c
-@@ -117,6 +117,9 @@ int wl_found = 0;
-
- typedef struct priv_link {
- wl_if_t *wlif;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
-+ unsigned long last_rx;
-+#endif
- } priv_link_t;
-
- #define WL_DEV_IF(dev) ((wl_if_t*)((priv_link_t*)DEV_PRIV(dev))->wlif)
-@@ -2450,6 +2453,9 @@ wl_monitor(wl_info_t *wl, wl_rxsts_t *rxsts, void *p)
- {
- struct sk_buff *oskb = (struct sk_buff *)p;
- struct sk_buff *skb;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
-+ priv_link_t *priv_link;
-+#endif
- uchar *pdata;
- uint len;
-
-@@ -2916,7 +2922,13 @@ wl_monitor(wl_info_t *wl, wl_rxsts_t *rxsts, void *p)
- if (skb == NULL) return;
-
- skb->dev = wl->monitor_dev;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
-+ priv_link = MALLOC(wl->osh, sizeof(priv_link_t));
-+ priv_link = netdev_priv(skb->dev);
-+ priv_link->last_rx = jiffies;
-+#else
- skb->dev->last_rx = jiffies;
-+#endif
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
- skb_reset_mac_header(skb);
- #else
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.12.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.12.patch
deleted file mode 100644
index 94c6253f803e..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.12.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -ru work.orig/src/wl/sys/wl_cfg80211_hybrid.c work.patched/src/wl/sys/wl_cfg80211_hybrid.c
---- work.orig/src/wl/sys/wl_cfg80211_hybrid.c 2017-06-10 15:50:27.328823384 -0700
-+++ work.patched/src/wl/sys/wl_cfg80211_hybrid.c 2017-06-10 15:52:40.540809187 -0700
-@@ -52,8 +52,13 @@
- u32 wl_dbg_level = WL_DBG_ERR;
- #endif
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
-+ enum nl80211_iftype type, struct vif_params *params);
-+#else
- static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
- enum nl80211_iftype type, u32 *flags, struct vif_params *params);
-+#endif
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
- static s32
- wl_cfg80211_scan(struct wiphy *wiphy,
-@@ -466,7 +471,11 @@
-
- static s32
- wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+ enum nl80211_iftype type,
-+#else
- enum nl80211_iftype type, u32 *flags,
-+#endif
- struct vif_params *params)
- {
- struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
-@@ -2361,12 +2370,26 @@
- const wl_event_msg_t *e, void *data)
- {
- struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+ struct cfg80211_roam_info roam_info = {};
-+#endif
- s32 err = 0;
-
- wl_get_assoc_ies(wl);
- memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN);
- memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
- wl_update_bss_info(wl);
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+ roam_info.channel = &wl->conf->channel,
-+ roam_info.bssid = (u8 *)&wl->bssid,
-+ roam_info.req_ie = conn_info->req_ie,
-+ roam_info.req_ie_len = conn_info->req_ie_len,
-+ roam_info.resp_ie = conn_info->resp_ie,
-+ roam_info.resp_ie_len = conn_info->resp_ie_len,
-+
-+ cfg80211_roamed(ndev, &roam_info, GFP_KERNEL);
-+#else
- cfg80211_roamed(ndev,
- #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
- &wl->conf->channel,
-@@ -2374,6 +2397,7 @@
- (u8 *)&wl->bssid,
- conn_info->req_ie, conn_info->req_ie_len,
- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL);
-+#endif
- WL_DBG(("Report roaming result\n"));
-
- set_bit(WL_STATUS_CONNECTED, &wl->status);
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch
deleted file mode 100644
index 91c4d89519c1..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r4-linux-4.15.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
-index 489c9f5..f8278ad 100644
---- a/src/wl/sys/wl_linux.c
-+++ b/src/wl/sys/wl_linux.c
-@@ -93,7 +93,11 @@
-
- #include <wlc_wowl.h>
-
-+#ifdef HAVE_TIMER_SETUP
-+static void wl_timer(struct timer_list *list);
-+#else
- static void wl_timer(ulong data);
-+#endif
- static void _wl_timer(wl_timer_t *t);
- static struct net_device *wl_alloc_linux_if(wl_if_t *wlif);
-
-@@ -2296,12 +2300,17 @@
-
- atomic_dec(&t->wl->callbacks);
- }
--
-+#ifdef HAVE_TIMER_SETUP
-+static void
-+wl_timer(struct timer_list *list)
-+{
-+ wl_timer_t *t = from_timer(t,list,timer);
-+#else
- static void
- wl_timer(ulong data)
- {
- wl_timer_t *t = (wl_timer_t *)data;
--
-+#endif
- if (!WL_ALL_PASSIVE_ENAB(t->wl))
- _wl_timer(t);
- else
-@@ -2351,10 +2360,13 @@
- }
-
- bzero(t, sizeof(wl_timer_t));
--
-+#ifdef HAVE_TIMER_SETUP
-+ timer_setup(&t->timer, wl_timer,0);
-+#else
- init_timer(&t->timer);
- t->timer.data = (ulong) t;
- t->timer.function = wl_timer;
-+#endif
- t->wl = wl;
- t->fn = fn;
- t->arg = arg;
-diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h
-index 489c9f5..f8278ad 100644
---- a/src/wl/sys/wl_linux.h
-+++ b/src/wl/sys/wl_linux.h
-@@ -190,3 +190,7 @@
- extern struct net_device * wl_netdev_get(wl_info_t *wl);
-
- #endif
-+
-+#if defined(timer_setup) && defined(from_timer)
-+#define HAVE_TIMER_SETUP
-+#endif
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.1.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.1.patch
deleted file mode 100644
index fcee46ea3d02..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.1.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 20bb1a6da26c496572ee63d310cdf69a2f1553f8 Mon Sep 17 00:00:00 2001
-From: Seth Forshee <seth.forshee@canonical.com>
-Date: Fri, 17 May 2019 20:32:20 +0000
-Subject: [PATCH] add support for linux 5.1
-
-get_ds() was removed and replaced universally with KERNEL_DS.
-Provide a version of get_ds() to do likewise for 5.1 and later.
-
-Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
----
- src/include/linuxver.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/include/linuxver.h b/src/include/linuxver.h
-index b05bc32..2b88b30 100644
---- a/src/include/linuxver.h
-+++ b/src/include/linuxver.h
-@@ -591,4 +591,9 @@ do { \
- #define netdev_priv(dev) dev->priv
- #endif
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0))
-+#include <linux/uaccess.h>
-+#define get_ds() (KERNEL_DS)
-+#endif
-+
- #endif
---
-2.20.1
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.6.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.6.patch
deleted file mode 100644
index 71264346f86e..000000000000
--- a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.271-r5-linux-5.6.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From: Herman van Hazendonk <github.com@herrie.org>
-Date: Tue, 31 Mar 2020 17:09:55 +0200
-Subject: [PATCH] Add fixes for 5.6 kernel
-Origin: https://salsa.debian.org/Herrie82-guest/broadcom-sta/-/merge_requests/1
-
-Use ioremap instead of ioremap_nocache and proc_ops instead of
-file_operations on Linux kernel 5.6 and above.
-
-<rosh> Patch amended to adapt i386 arch.
----
- src/shared/linux_osl.c | 6 +++++-
- src/wl/sys/wl_linux.c | 21 ++++++++++++++++++++-
- 2 files changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c
-index b24a973..9bce9b1 100644
---- a/src/shared/linux_osl.c
-+++ b/src/shared/linux_osl.c
-@@ -946,7 +946,11 @@ osl_getcycles(void)
- void *
- osl_reg_map(uint32 pa, uint size)
- {
-- return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
-+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
-+ return (ioremap((unsigned long)pa, (unsigned long)size));
-+ #else
-+ return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
-+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
- }
-
- void
-diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
-index ab7b883..10621c2 100644
---- a/src/wl/sys/wl_linux.c
-+++ b/src/wl/sys/wl_linux.c
-@@ -590,10 +590,17 @@ wl_attach(uint16 vendor, uint16 device, ulong regs,
- }
- wl->bcm_bustype = bustype;
-
-+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
-+ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
-+ WL_ERROR(("wl%d: ioremap() failed\n", unit));
-+ goto fail;
-+ }
-+ #else
- if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
- WL_ERROR(("wl%d: ioremap() failed\n", unit));
- goto fail;
- }
-+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
-
- wl->bar1_addr = bar1_addr;
- wl->bar1_size = bar1_size;
-@@ -780,8 +787,13 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
- if ((val & 0x0000ff00) != 0)
- pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
- bar1_size = pci_resource_len(pdev, 2);
-+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
-+ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2),
-+ bar1_size);
-+ #else
- bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2),
- bar1_size);
-+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
- wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev,
- pdev->irq, bar1_addr, bar1_size);
-
-@@ -3354,12 +3366,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t
- }
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
-+static const struct proc_ops wl_fops = {
-+ .proc_read = wl_proc_read,
-+ .proc_write = wl_proc_write,
-+};
-+#else
- static const struct file_operations wl_fops = {
- .owner = THIS_MODULE,
- .read = wl_proc_read,
- .write = wl_proc_write,
- };
--#endif
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */
-
- static int
- wl_reg_proc_entry(wl_info_t *wl)
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-modules.conf b/net-wireless/broadcom-sta/files/broadcom-sta-modules.conf
new file mode 100644
index 000000000000..458947e335b4
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-modules.conf
@@ -0,0 +1,17 @@
+# modprobe.d configuration file for WL
+
+# Internal Aliases - Do not edit
+# ------------------------------
+alias wlan0 wl
+
+
+# Configurable module parameters
+# ------------------------------
+# passivemode: (int)
+# wl_txq_thresh: (int)
+# oneonly: (int)
+# piomode: (int)
+# instance_base: (int)
+# nompc: (int)
+# intf_name: (string)
+