commit:     ac78a1d0b83fb8131f9f706b81353c3bfbef0ee8
Author:     ingenarel (NeoJesus) <ingenarel_neojesus <AT> disroot <DOT> org>
AuthorDate: Wed Feb 25 21:11:16 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar  9 13:11:28 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac78a1d0

net-wireless/broadcom-sta: patch to work with 6.17 kernels

Closes: https://bugs.gentoo.org/964243
Signed-off-by: ingenarel (NeoJesus) <ingenarel_neojesus <AT> disroot.org>
Part-of: https://codeberg.org/gentoo/gentoo/pulls/142
Merges: https://codeberg.org/gentoo/gentoo/pulls/142
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...ebuild => broadcom-sta-6.30.223.271-r10.ebuild} |  3 +-
 .../files/021-broadcom-wl-fix-linux-6.17.patch     | 77 ++++++++++++++++++++++
 2 files changed, 79 insertions(+), 1 deletion(-)

diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r9.ebuild 
b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r10.ebuild
similarity index 97%
rename from net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r9.ebuild
rename to net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r10.ebuild
index 44904d126260..d87ca0e8f3ea 100644
--- a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r9.ebuild
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.271-r10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -45,6 +45,7 @@ PATCHES=(
        "${FILESDIR}/018-broadcom-wl-fix-linux-6.13.patch"
        "${FILESDIR}/019-broadcom-wl-fix-linux-6.14.patch"
        "${FILESDIR}/020-broadcom-wl-fix-linux-6.15.patch"
+       "${FILESDIR}/021-broadcom-wl-fix-linux-6.17.patch"
 )
 
 pkg_pretend() {

diff --git 
a/net-wireless/broadcom-sta/files/021-broadcom-wl-fix-linux-6.17.patch 
b/net-wireless/broadcom-sta/files/021-broadcom-wl-fix-linux-6.17.patch
new file mode 100644
index 000000000000..ca51a6d14d9f
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/021-broadcom-wl-fix-linux-6.17.patch
@@ -0,0 +1,77 @@
+patch based on https://gist.github.com/joanbm/4e7f18febc2c25f5fdf8143a739dccd1
+
+diff -urN works/src/wl/sys/wl_cfg80211_hybrid.c 
fixed/src/wl/sys/wl_cfg80211_hybrid.c
+--- works/src/wl/sys/wl_cfg80211_hybrid.c      2026-02-25 21:07:31.214177735 
+0600
++++ fixed/src/wl/sys/wl_cfg80211_hybrid.c      2026-02-25 21:19:10.577143276 
+0600
+@@ -68,7 +68,11 @@
+ static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
+            struct cfg80211_scan_request *request);
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
++static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx, 
u32 changed);
++#else
+ static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
++#endif
+ 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);
+@@ -87,7 +91,10 @@
+            struct cfg80211_connect_params *sme);
+ static s32 wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device 
*dev, u16 reason_code);
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
++static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev 
*wdev, int radio_idx,
++                                    enum nl80211_tx_power_setting type, s32 
dbm);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
+ static s32
+ wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev,
+                          enum nl80211_tx_power_setting type, s32 dbm);
+@@ -99,7 +106,10 @@
+            enum tx_power_setting type, s32 dbm);
+ #endif
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
++static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev 
*wdev, int radio_idx,
++                                    u32 link_id, s32 *dbm);
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0)
+ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev 
*wdev,
+                                     unsigned int link_id, s32 *dbm);
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
+@@ -660,7 +670,11 @@
+       return err;
+ }
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
++static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx, 
u32 changed)
++#else
+ static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed)
++#endif
+ {
+       struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
+       struct net_device *ndev = wl_to_ndev(wl);
+@@ -1094,7 +1108,10 @@
+       return err;
+ }
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
++static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev 
*wdev, int radio_idx,
++                                    enum nl80211_tx_power_setting type, s32 
dbm)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
+ static s32
+ wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev,
+                          enum nl80211_tx_power_setting type, s32 dbm)
+@@ -1155,7 +1172,10 @@
+       return err;
+ }
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
++static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev 
*wdev, int radio_idx,
++                                    u32 link_id, s32 *dbm)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0)
+ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev 
*wdev,
+                                     unsigned int link_id, s32 *dbm)
+ #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)

Reply via email to