git: 22eb6e43d034 - stable/15 - LinuxKPI: 802.11: additions for Linux v6.17 based wireless drivers

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Mon, 27 Oct 2025 00:19:09 UTC
The branch stable/15 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=22eb6e43d034ec325e2833f3694efe4b33fa58a0

commit 22eb6e43d034ec325e2833f3694efe4b33fa58a0
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-10-11 09:21:55 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-10-27 00:18:22 +0000

    LinuxKPI: 802.11: additions for Linux v6.17 based wireless drivers
    
    This includes the conflicting changes from previous driver versions
    (v6.11/v6.14), mostly being function pointer or function arguments.
    
    (cherry picked from commit 76aed633b5b526fc2cdb3fa654f54b3cb8e5cfaf)
---
 sys/compat/linuxkpi/common/include/net/mac80211.h   | 14 +++++++-------
 sys/compat/linuxkpi/common/src/linux_80211_macops.c | 12 ++++++++----
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h
index 523836b52a40..ee1ace3684de 100644
--- a/sys/compat/linuxkpi/common/include/net/mac80211.h
+++ b/sys/compat/linuxkpi/common/include/net/mac80211.h
@@ -956,7 +956,7 @@ struct ieee80211_ops {
 	int  (*start)(struct ieee80211_hw *);
 	void (*stop)(struct ieee80211_hw *, bool);
 
-	int  (*config)(struct ieee80211_hw *, u32);
+	int  (*config)(struct ieee80211_hw *, int, u32);
 	void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type);
 
 	void (*prep_add_interface)(struct ieee80211_hw *, enum nl80211_iftype);
@@ -983,7 +983,7 @@ struct ieee80211_ops {
 	void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool);
 	void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
 
-	int  (*set_frag_threshold)(struct ieee80211_hw *, u32);
+	int  (*set_frag_threshold)(struct ieee80211_hw *, int, u32);
 
 	void (*sync_rx_queues)(struct ieee80211_hw *);
 
@@ -1026,8 +1026,8 @@ struct ieee80211_ops {
 	void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *);
 	int  (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode);
 
-	int  (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *);
-	int  (*set_antenna)(struct ieee80211_hw *, u32, u32);
+	int  (*get_antenna)(struct ieee80211_hw *, int, u32 *, u32 *);
+	int  (*set_antenna)(struct ieee80211_hw *, int, u32, u32);
 
 	int  (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type);
 	int  (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *);
@@ -1038,7 +1038,7 @@ struct ieee80211_ops {
 	void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
         void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
 
-	int  (*set_rts_threshold)(struct ieee80211_hw *, u32);
+	int  (*set_rts_threshold)(struct ieee80211_hw *, int, u32);
 	void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *);
 	int  (*get_survey)(struct ieee80211_hw *, int, struct survey_info *);
 	int  (*get_ftm_responder_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_ftm_responder_stats *);
@@ -1048,7 +1048,7 @@ struct ieee80211_ops {
 	void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64);
 
 	int  (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *);
-	void (*set_coverage_class)(struct ieee80211_hw *, s16);
+	void (*set_coverage_class)(struct ieee80211_hw *, int, s16);
 	int  (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool);
 
 	int  (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *);
@@ -2406,7 +2406,7 @@ ieee80211_remove_key(struct ieee80211_key_conf *key)
 
 static __inline struct ieee80211_key_conf *
 ieee80211_gtk_rekey_add(struct ieee80211_vif *vif,
-    struct ieee80211_key_conf *key, int link_id)
+    uint16_t keyidx, uint8_t *key, size_t keylen, int link_id)
 {
         TODO();
         return (NULL);
diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c
index 04f9f6d7e7fc..d9e82a6d64ee 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c
@@ -102,7 +102,8 @@ lkpi_80211_mo_get_antenna(struct ieee80211_hw *hw, u32 *txs, u32 *rxs)
 	}
 
 	LKPI_80211_TRACE_MO("hw %p", hw);
-	error = lhw->ops->get_antenna(hw, txs, rxs);
+	LKPI_80211_TRACE_MO("TODO link/radio_idx");
+	error = lhw->ops->get_antenna(hw, 0, txs, rxs);
 
 out:
 	return (error);
@@ -121,7 +122,8 @@ lkpi_80211_mo_set_frag_threshold(struct ieee80211_hw *hw, uint32_t frag_th)
 	}
 
 	LKPI_80211_TRACE_MO("hw %p frag_th %u", hw, frag_th);
-	error = lhw->ops->set_frag_threshold(hw, frag_th);
+	LKPI_80211_TRACE_MO("TODO link/radio_idx");
+	error = lhw->ops->set_frag_threshold(hw, 0, frag_th);
 
 out:
 	return (error);
@@ -140,7 +142,8 @@ lkpi_80211_mo_set_rts_threshold(struct ieee80211_hw *hw, uint32_t rts_th)
 	}
 
 	LKPI_80211_TRACE_MO("hw %p rts_th %u", hw, rts_th);
-	error = lhw->ops->set_rts_threshold(hw, rts_th);
+	LKPI_80211_TRACE_MO("TODO link/radio_idx");
+	error = lhw->ops->set_rts_threshold(hw, 0, rts_th);
 
 out:
 	return (error);
@@ -436,7 +439,8 @@ lkpi_80211_mo_config(struct ieee80211_hw *hw, uint32_t changed)
 	}
 
 	LKPI_80211_TRACE_MO("hw %p changed %u", hw, changed);
-	error = lhw->ops->config(hw, changed);
+	LKPI_80211_TRACE_MO("TODO link/radio_idx");
+	error = lhw->ops->config(hw, 0, changed);
 
 out:
 	return (error);