git: e89beeee25c3 - stable/15 - iwlwifi: update Intel's mvm/mld drivers
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 27 Oct 2025 00:19:04 UTC
The branch stable/15 has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=e89beeee25c3d08805e19cfc085a6c5b2f762a21
commit e89beeee25c3d08805e19cfc085a6c5b2f762a21
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-10-17 17:27:49 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-10-27 00:18:21 +0000
iwlwifi: update Intel's mvm/mld drivers
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
e5f0a698b34ed76002dc5cff3804a61c80233a7a ( tag: v6.17 ).
Some of the changes we reported upstream got incorporated in this
(or the v6.16) release.
This also includes a change from iwlwifi-next.git::next for missing symbols
iwl_mvm_v3_rate_from_fw() and iwl_mvm_v3_rate_to_fw() were originally
comitted to mvm/rs.[ch] which we do not have. That left us with
unresolved symbols. For the never comitted v6.16 driver update I had
started to piece these together but they have been migrated out to
utils.c so take them from there until the next release hopefully ships
this change.
Obtained from: git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next.git
branch next, 1b49af228594452206d5c50a33b6a341428edb63
(cherry picked from commit 6b627f88584ce13118e0a24951b503c0b1f2d5a7)
---
sys/contrib/dev/iwlwifi/cfg/22000.c | 397 +--
sys/contrib/dev/iwlwifi/cfg/7000.c | 173 +-
sys/contrib/dev/iwlwifi/cfg/8000.c | 92 +-
sys/contrib/dev/iwlwifi/cfg/9000.c | 168 +-
sys/contrib/dev/iwlwifi/cfg/ax210.c | 297 +--
sys/contrib/dev/iwlwifi/cfg/bz.c | 198 +-
sys/contrib/dev/iwlwifi/cfg/dr.c | 93 +
sys/contrib/dev/iwlwifi/cfg/rf-fm.c | 51 +
sys/contrib/dev/iwlwifi/cfg/rf-gf.c | 73 +
sys/contrib/dev/iwlwifi/cfg/rf-hr.c | 89 +
sys/contrib/dev/iwlwifi/cfg/rf-jf.c | 111 +
sys/contrib/dev/iwlwifi/cfg/rf-pe.c | 16 +
sys/contrib/dev/iwlwifi/cfg/rf-wh.c | 15 +
sys/contrib/dev/iwlwifi/cfg/sc.c | 201 +-
sys/contrib/dev/iwlwifi/fw/acpi.c | 253 +-
sys/contrib/dev/iwlwifi/fw/acpi.h | 60 +-
sys/contrib/dev/iwlwifi/fw/api/alive.h | 29 +-
sys/contrib/dev/iwlwifi/fw/api/binding.h | 2 -
sys/contrib/dev/iwlwifi/fw/api/coex.h | 29 +-
sys/contrib/dev/iwlwifi/fw/api/commands.h | 31 +-
sys/contrib/dev/iwlwifi/fw/api/context.h | 9 +-
sys/contrib/dev/iwlwifi/fw/api/d3.h | 196 +-
sys/contrib/dev/iwlwifi/fw/api/datapath.h | 11 +-
sys/contrib/dev/iwlwifi/fw/api/dbg-tlv.h | 13 +-
sys/contrib/dev/iwlwifi/fw/api/debug.h | 48 +-
sys/contrib/dev/iwlwifi/fw/api/dhc.h | 230 ++
sys/contrib/dev/iwlwifi/fw/api/location.h | 179 +-
sys/contrib/dev/iwlwifi/fw/api/mac-cfg.h | 394 ++-
sys/contrib/dev/iwlwifi/fw/api/mac.h | 14 +-
sys/contrib/dev/iwlwifi/fw/api/nvm-reg.h | 62 +-
sys/contrib/dev/iwlwifi/fw/api/offload.h | 12 +-
sys/contrib/dev/iwlwifi/fw/api/phy-ctxt.h | 9 +-
sys/contrib/dev/iwlwifi/fw/api/phy.h | 25 +-
sys/contrib/dev/iwlwifi/fw/api/power.h | 171 +-
sys/contrib/dev/iwlwifi/fw/api/rs.h | 135 +-
sys/contrib/dev/iwlwifi/fw/api/rx.h | 54 +-
sys/contrib/dev/iwlwifi/fw/api/scan.h | 46 +-
sys/contrib/dev/iwlwifi/fw/api/sta.h | 1 +
sys/contrib/dev/iwlwifi/fw/api/stats.h | 17 +-
sys/contrib/dev/iwlwifi/fw/api/tdls.h | 12 +-
sys/contrib/dev/iwlwifi/fw/api/time-event.h | 60 +-
sys/contrib/dev/iwlwifi/fw/api/tx.h | 105 +-
sys/contrib/dev/iwlwifi/fw/dbg.c | 350 ++-
sys/contrib/dev/iwlwifi/fw/dbg.h | 20 +-
sys/contrib/dev/iwlwifi/fw/debugfs.c | 50 +-
sys/contrib/dev/iwlwifi/fw/dhc-utils.h | 75 +
sys/contrib/dev/iwlwifi/fw/dump.c | 44 +-
sys/contrib/dev/iwlwifi/fw/error-dump.h | 9 +-
sys/contrib/dev/iwlwifi/fw/file.h | 45 +-
sys/contrib/dev/iwlwifi/fw/img.c | 2 +
sys/contrib/dev/iwlwifi/fw/img.h | 12 +-
sys/contrib/dev/iwlwifi/fw/init.c | 24 +-
sys/contrib/dev/iwlwifi/fw/paging.c | 6 +-
sys/contrib/dev/iwlwifi/fw/pnvm.c | 79 +-
sys/contrib/dev/iwlwifi/fw/pnvm.h | 5 +-
sys/contrib/dev/iwlwifi/fw/regulatory.c | 200 +-
sys/contrib/dev/iwlwifi/fw/regulatory.h | 90 +-
sys/contrib/dev/iwlwifi/fw/rs.c | 137 +-
sys/contrib/dev/iwlwifi/fw/runtime.h | 19 +-
sys/contrib/dev/iwlwifi/fw/smem.c | 4 +-
sys/contrib/dev/iwlwifi/fw/uefi.c | 225 +-
sys/contrib/dev/iwlwifi/fw/uefi.h | 93 +-
sys/contrib/dev/iwlwifi/iwl-config.h | 508 ++--
sys/contrib/dev/iwlwifi/iwl-csr.h | 48 +-
sys/contrib/dev/iwlwifi/iwl-dbg-tlv.c | 20 +-
sys/contrib/dev/iwlwifi/iwl-debug.h | 14 +-
sys/contrib/dev/iwlwifi/iwl-drv.c | 337 ++-
sys/contrib/dev/iwlwifi/iwl-drv.h | 9 +-
sys/contrib/dev/iwlwifi/iwl-fh.h | 30 +-
sys/contrib/dev/iwlwifi/iwl-io.c | 42 +-
sys/contrib/dev/iwlwifi/iwl-io.h | 23 +-
sys/contrib/dev/iwlwifi/iwl-nvm-parse.c | 246 +-
sys/contrib/dev/iwlwifi/iwl-nvm-parse.h | 16 +-
sys/contrib/dev/iwlwifi/iwl-nvm-utils.c | 17 +-
sys/contrib/dev/iwlwifi/iwl-op-mode.h | 106 +-
sys/contrib/dev/iwlwifi/iwl-prph.h | 15 +-
sys/contrib/dev/iwlwifi/iwl-trans.c | 484 +++-
sys/contrib/dev/iwlwifi/iwl-trans.h | 346 ++-
sys/contrib/dev/iwlwifi/iwl-utils.c | 195 ++
sys/contrib/dev/iwlwifi/iwl-utils.h | 58 +
sys/contrib/dev/iwlwifi/mld/Makefile | 12 +
sys/contrib/dev/iwlwifi/mld/agg.c | 680 +++++
sys/contrib/dev/iwlwifi/mld/agg.h | 127 +
sys/contrib/dev/iwlwifi/mld/ap.c | 363 +++
sys/contrib/dev/iwlwifi/mld/ap.h | 45 +
sys/contrib/dev/iwlwifi/mld/coex.c | 40 +
sys/contrib/dev/iwlwifi/mld/coex.h | 15 +
sys/contrib/dev/iwlwifi/mld/constants.h | 79 +
sys/contrib/dev/iwlwifi/mld/d3.c | 1906 ++++++++++++++
sys/contrib/dev/iwlwifi/mld/d3.h | 51 +
sys/contrib/dev/iwlwifi/mld/debugfs.c | 1109 ++++++++
sys/contrib/dev/iwlwifi/mld/debugfs.h | 244 ++
sys/contrib/dev/iwlwifi/mld/ftm-initiator.c | 451 ++++
sys/contrib/dev/iwlwifi/mld/ftm-initiator.h | 29 +
sys/contrib/dev/iwlwifi/mld/fw.c | 554 ++++
sys/contrib/dev/iwlwifi/mld/hcmd.h | 56 +
sys/contrib/dev/iwlwifi/mld/iface.c | 707 ++++++
sys/contrib/dev/iwlwifi/mld/iface.h | 253 ++
sys/contrib/dev/iwlwifi/mld/key.c | 370 +++
sys/contrib/dev/iwlwifi/mld/key.h | 39 +
sys/contrib/dev/iwlwifi/mld/led.c | 100 +
sys/contrib/dev/iwlwifi/mld/led.h | 29 +
sys/contrib/dev/iwlwifi/mld/link.c | 895 +++++++
sys/contrib/dev/iwlwifi/mld/link.h | 129 +
sys/contrib/dev/iwlwifi/mld/low_latency.c | 336 +++
sys/contrib/dev/iwlwifi/mld/low_latency.h | 68 +
sys/contrib/dev/iwlwifi/mld/mac80211.c | 2672 ++++++++++++++++++++
sys/contrib/dev/iwlwifi/mld/mac80211.h | 13 +
sys/contrib/dev/iwlwifi/mld/mcc.c | 285 +++
sys/contrib/dev/iwlwifi/mld/mcc.h | 17 +
sys/contrib/dev/iwlwifi/mld/mld.c | 771 ++++++
sys/contrib/dev/iwlwifi/mld/mld.h | 592 +++++
sys/contrib/dev/iwlwifi/mld/mlo.c | 1225 +++++++++
sys/contrib/dev/iwlwifi/mld/mlo.h | 171 ++
sys/contrib/dev/iwlwifi/mld/notif.c | 725 ++++++
sys/contrib/dev/iwlwifi/mld/notif.h | 35 +
sys/contrib/dev/iwlwifi/mld/phy.c | 198 ++
sys/contrib/dev/iwlwifi/mld/phy.h | 60 +
sys/contrib/dev/iwlwifi/mld/power.c | 391 +++
sys/contrib/dev/iwlwifi/mld/power.h | 33 +
sys/contrib/dev/iwlwifi/mld/ptp.c | 321 +++
sys/contrib/dev/iwlwifi/mld/ptp.h | 45 +
sys/contrib/dev/iwlwifi/mld/regulatory.c | 369 +++
sys/contrib/dev/iwlwifi/mld/regulatory.h | 23 +
sys/contrib/dev/iwlwifi/mld/roc.c | 265 ++
sys/contrib/dev/iwlwifi/mld/roc.h | 20 +
sys/contrib/dev/iwlwifi/mld/rx.c | 2137 ++++++++++++++++
sys/contrib/dev/iwlwifi/mld/rx.h | 72 +
sys/contrib/dev/iwlwifi/mld/scan.c | 2181 ++++++++++++++++
sys/contrib/dev/iwlwifi/mld/scan.h | 173 ++
sys/contrib/dev/iwlwifi/mld/session-protect.c | 222 ++
sys/contrib/dev/iwlwifi/mld/session-protect.h | 102 +
sys/contrib/dev/iwlwifi/mld/sta.c | 1321 ++++++++++
sys/contrib/dev/iwlwifi/mld/sta.h | 273 ++
sys/contrib/dev/iwlwifi/mld/stats.c | 518 ++++
sys/contrib/dev/iwlwifi/mld/stats.h | 22 +
sys/contrib/dev/iwlwifi/mld/tests/Makefile | 5 +
sys/contrib/dev/iwlwifi/mld/tests/agg.c | 663 +++++
sys/contrib/dev/iwlwifi/mld/tests/hcmd.c | 62 +
sys/contrib/dev/iwlwifi/mld/tests/link-selection.c | 339 +++
sys/contrib/dev/iwlwifi/mld/tests/link.c | 110 +
sys/contrib/dev/iwlwifi/mld/tests/module.c | 11 +
sys/contrib/dev/iwlwifi/mld/tests/rx.c | 353 +++
sys/contrib/dev/iwlwifi/mld/tests/utils.c | 503 ++++
sys/contrib/dev/iwlwifi/mld/tests/utils.h | 140 +
sys/contrib/dev/iwlwifi/mld/thermal.c | 467 ++++
sys/contrib/dev/iwlwifi/mld/thermal.h | 36 +
sys/contrib/dev/iwlwifi/mld/time_sync.c | 240 ++
sys/contrib/dev/iwlwifi/mld/time_sync.h | 26 +
sys/contrib/dev/iwlwifi/mld/tlc.c | 702 +++++
sys/contrib/dev/iwlwifi/mld/tlc.h | 23 +
sys/contrib/dev/iwlwifi/mld/tx.c | 1394 ++++++++++
sys/contrib/dev/iwlwifi/mld/tx.h | 77 +
sys/contrib/dev/iwlwifi/mvm/binding.c | 7 +-
sys/contrib/dev/iwlwifi/mvm/coex.c | 88 +-
sys/contrib/dev/iwlwifi/mvm/constants.h | 8 +-
sys/contrib/dev/iwlwifi/mvm/d3.c | 761 +++---
sys/contrib/dev/iwlwifi/mvm/debugfs-vif.c | 66 +-
sys/contrib/dev/iwlwifi/mvm/debugfs.c | 130 +-
sys/contrib/dev/iwlwifi/mvm/ftm-initiator.c | 130 +-
sys/contrib/dev/iwlwifi/mvm/ftm-responder.c | 90 +-
sys/contrib/dev/iwlwifi/mvm/fw.c | 308 +--
sys/contrib/dev/iwlwifi/mvm/led.c | 4 +-
sys/contrib/dev/iwlwifi/mvm/link.c | 106 +-
sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c | 259 +-
sys/contrib/dev/iwlwifi/mvm/mac80211.c | 483 ++--
sys/contrib/dev/iwlwifi/mvm/mld-key.c | 14 +-
sys/contrib/dev/iwlwifi/mvm/mld-mac.c | 55 +-
sys/contrib/dev/iwlwifi/mvm/mld-mac80211.c | 233 +-
sys/contrib/dev/iwlwifi/mvm/mld-sta.c | 81 +-
sys/contrib/dev/iwlwifi/mvm/mvm.h | 225 +-
sys/contrib/dev/iwlwifi/mvm/nvm.c | 52 +-
sys/contrib/dev/iwlwifi/mvm/offloading.c | 2 +-
sys/contrib/dev/iwlwifi/mvm/ops.c | 394 +--
sys/contrib/dev/iwlwifi/mvm/phy-ctxt.c | 8 +-
sys/contrib/dev/iwlwifi/mvm/power.c | 10 +-
sys/contrib/dev/iwlwifi/mvm/ptp.c | 14 +-
sys/contrib/dev/iwlwifi/mvm/quota.c | 43 +-
sys/contrib/dev/iwlwifi/mvm/rs-fw.c | 36 +-
sys/contrib/dev/iwlwifi/mvm/rx.c | 77 +-
sys/contrib/dev/iwlwifi/mvm/rxmq.c | 236 +-
sys/contrib/dev/iwlwifi/mvm/scan.c | 192 +-
sys/contrib/dev/iwlwifi/mvm/sta.c | 244 +-
sys/contrib/dev/iwlwifi/mvm/sta.h | 29 +-
sys/contrib/dev/iwlwifi/mvm/tdls.c | 20 +-
sys/contrib/dev/iwlwifi/mvm/tests/hcmd.c | 38 +
sys/contrib/dev/iwlwifi/mvm/time-event.c | 61 +-
sys/contrib/dev/iwlwifi/mvm/time-event.h | 8 +-
sys/contrib/dev/iwlwifi/mvm/tt.c | 97 +-
sys/contrib/dev/iwlwifi/mvm/tx.c | 406 ++-
sys/contrib/dev/iwlwifi/mvm/utils.c | 258 +-
.../pcie/{ctxt-info-gen3.c => ctxt-info-v2.c} | 213 +-
sys/contrib/dev/iwlwifi/pcie/ctxt-info.c | 29 +-
sys/contrib/dev/iwlwifi/pcie/drv.c | 2503 ++++++++----------
.../dev/iwlwifi/pcie/{ => gen1_2}/internal.h | 188 +-
sys/contrib/dev/iwlwifi/pcie/{ => gen1_2}/rx.c | 223 +-
.../dev/iwlwifi/pcie/{ => gen1_2}/trans-gen2.c | 209 +-
sys/contrib/dev/iwlwifi/pcie/{ => gen1_2}/trans.c | 1216 ++++++---
.../dev/iwlwifi/pcie/{ => gen1_2}/tx-gen2.c | 88 +-
sys/contrib/dev/iwlwifi/pcie/{ => gen1_2}/tx.c | 291 ++-
.../iwl-context-info-v2.h} | 109 +-
.../dev/iwlwifi/{ => pcie}/iwl-context-info.h | 44 +-
sys/contrib/dev/iwlwifi/pcie/utils.c | 128 +
sys/contrib/dev/iwlwifi/pcie/utils.h | 40 +
sys/contrib/dev/iwlwifi/tests/Makefile | 2 +-
sys/contrib/dev/iwlwifi/tests/devinfo.c | 229 +-
sys/modules/iwlwifi/Makefile | 68 +-
207 files changed, 39858 insertions(+), 8269 deletions(-)
diff --git a/sys/contrib/dev/iwlwifi/cfg/22000.c b/sys/contrib/dev/iwlwifi/cfg/22000.c
index 2e2fcb3807ef..ca488931a33c 100644
--- a/sys/contrib/dev/iwlwifi/cfg/22000.c
+++ b/sys/contrib/dev/iwlwifi/cfg/22000.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
* Copyright (C) 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2024 Intel Corporation
+ * Copyright (C) 2018-2025 Intel Corporation
*/
#include <linux/module.h>
#include <linux/stringify.h>
@@ -15,40 +15,16 @@
/* Lowest firmware API version supported */
#define IWL_22000_UCODE_API_MIN 77
-/* NVM versions */
-#define IWL_22000_NVM_VERSION 0x0a1d
-
/* Memory offsets and lengths */
-#define IWL_22000_DCCM_OFFSET 0x800000 /* LMAC1 */
-#define IWL_22000_DCCM_LEN 0x10000 /* LMAC1 */
-#define IWL_22000_DCCM2_OFFSET 0x880000
-#define IWL_22000_DCCM2_LEN 0x8000
#define IWL_22000_SMEM_OFFSET 0x400000
#define IWL_22000_SMEM_LEN 0xD0000
-#define IWL_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0"
-#define IWL_QU_C_HR_B_FW_PRE "iwlwifi-Qu-c0-hr-b0"
-#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0"
-#define IWL_QU_C_JF_B_FW_PRE "iwlwifi-Qu-c0-jf-b0"
-#define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0"
-#define IWL_QUZ_A_JF_B_FW_PRE "iwlwifi-QuZ-a0-jf-b0"
#define IWL_CC_A_FW_PRE "iwlwifi-cc-a0"
-#define IWL_QU_B_HR_B_MODULE_FIRMWARE(api) \
- IWL_QU_B_HR_B_FW_PRE "-" __stringify(api) ".ucode"
-#define IWL_QUZ_A_HR_B_MODULE_FIRMWARE(api) \
- IWL_QUZ_A_HR_B_FW_PRE "-" __stringify(api) ".ucode"
-#define IWL_QUZ_A_JF_B_MODULE_FIRMWARE(api) \
- IWL_QUZ_A_JF_B_FW_PRE "-" __stringify(api) ".ucode"
-#define IWL_QU_C_HR_B_MODULE_FIRMWARE(api) \
- IWL_QU_C_HR_B_FW_PRE "-" __stringify(api) ".ucode"
-#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
- IWL_QU_B_JF_B_FW_PRE "-" __stringify(api) ".ucode"
#define IWL_CC_A_MODULE_FIRMWARE(api) \
IWL_CC_A_FW_PRE "-" __stringify(api) ".ucode"
-static const struct iwl_base_params iwl_22000_base_params = {
- .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
+static const struct iwl_family_base_params iwl_22000_base = {
.num_of_queues = 512,
.max_tfd_queue_size = 256,
.shadow_ram_support = true,
@@ -57,156 +33,78 @@ static const struct iwl_base_params iwl_22000_base_params = {
.max_event_log_size = 512,
.shadow_reg_enable = true,
.pcie_l1_allowed = true,
-};
-
-const struct iwl_ht_params iwl_22000_ht_params = {
- .stbc = true,
- .ldpc = true,
- .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ) |
- BIT(NL80211_BAND_6GHZ),
-};
-
-#define IWL_DEVICE_22000_COMMON \
- .ucode_api_min = IWL_22000_UCODE_API_MIN, \
- .led_mode = IWL_LED_RF_STATE, \
- .nvm_hw_section_num = 10, \
- .non_shared_ant = ANT_B, \
- .dccm_offset = IWL_22000_DCCM_OFFSET, \
- .dccm_len = IWL_22000_DCCM_LEN, \
- .dccm2_offset = IWL_22000_DCCM2_OFFSET, \
- .dccm2_len = IWL_22000_DCCM2_LEN, \
- .smem_offset = IWL_22000_SMEM_OFFSET, \
- .smem_len = IWL_22000_SMEM_LEN, \
- .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \
- .apmg_not_supported = true, \
- .trans.mq_rx_supported = true, \
- .vht_mu_mimo_supported = true, \
- .mac_addr_from_csr = 0x380, \
- .ht_params = &iwl_22000_ht_params, \
- .nvm_ver = IWL_22000_NVM_VERSION, \
- .trans.rf_id = true, \
- .trans.gen2 = true, \
- .nvm_type = IWL_NVM_EXT, \
- .dbgc_supported = true, \
- .min_umac_error_event_table = 0x400000, \
- .d3_debug_data_base_addr = 0x401000, \
- .d3_debug_data_length = 60 * 1024, \
- .mon_smem_regs = { \
- .write_ptr = { \
- .addr = LDBG_M2S_BUF_WPTR, \
- .mask = LDBG_M2S_BUF_WPTR_VAL_MSK, \
- }, \
- .cycle_cnt = { \
- .addr = LDBG_M2S_BUF_WRAP_CNT, \
- .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \
- }, \
- }
-
-#define IWL_DEVICE_22500 \
- IWL_DEVICE_22000_COMMON, \
- .ucode_api_max = IWL_22000_UCODE_API_MAX, \
- .trans.device_family = IWL_DEVICE_FAMILY_22000, \
- .trans.base_params = &iwl_22000_base_params, \
- .gp2_reg_addr = 0xa02c68, \
- .mon_dram_regs = { \
- .write_ptr = { \
- .addr = MON_BUFF_WRPTR_VER2, \
- .mask = 0xffffffff, \
- }, \
- .cycle_cnt = { \
- .addr = MON_BUFF_CYCLE_CNT_VER2, \
- .mask = 0xffffffff, \
- }, \
- }
-
-const struct iwl_cfg_trans_params iwl_qu_trans_cfg = {
+ .smem_offset = IWL_22000_SMEM_OFFSET,
+ .smem_len = IWL_22000_SMEM_LEN,
+ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM,
+ .apmg_not_supported = true,
+ .mac_addr_from_csr = 0x380,
+ .min_umac_error_event_table = 0x400000,
+ .d3_debug_data_base_addr = 0x401000,
+ .d3_debug_data_length = 60 * 1024,
+ .mon_smem_regs = {
+ .write_ptr = {
+ .addr = LDBG_M2S_BUF_WPTR,
+ .mask = LDBG_M2S_BUF_WPTR_VAL_MSK,
+ },
+ .cycle_cnt = {
+ .addr = LDBG_M2S_BUF_WRAP_CNT,
+ .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK,
+ },
+ },
+ .gp2_reg_addr = 0xa02c68,
+ .mon_dram_regs = {
+ .write_ptr = {
+ .addr = MON_BUFF_WRPTR_VER2,
+ .mask = 0xffffffff,
+ },
+ .cycle_cnt = {
+ .addr = MON_BUFF_CYCLE_CNT_VER2,
+ .mask = 0xffffffff,
+ },
+ },
+ .ucode_api_min = IWL_22000_UCODE_API_MIN,
+ .ucode_api_max = IWL_22000_UCODE_API_MAX,
+};
+
+const struct iwl_mac_cfg iwl_qu_mac_cfg = {
.mq_rx_supported = true,
- .rf_id = true,
.gen2 = true,
.device_family = IWL_DEVICE_FAMILY_22000,
- .base_params = &iwl_22000_base_params,
+ .base = &iwl_22000_base,
.integrated = true,
.xtal_latency = 500,
.ltr_delay = IWL_CFG_TRANS_LTR_DELAY_200US,
};
-const struct iwl_cfg_trans_params iwl_qu_medium_latency_trans_cfg = {
+const struct iwl_mac_cfg iwl_qu_medium_latency_mac_cfg = {
.mq_rx_supported = true,
- .rf_id = true,
.gen2 = true,
.device_family = IWL_DEVICE_FAMILY_22000,
- .base_params = &iwl_22000_base_params,
+ .base = &iwl_22000_base,
.integrated = true,
.xtal_latency = 1820,
.ltr_delay = IWL_CFG_TRANS_LTR_DELAY_1820US,
};
-const struct iwl_cfg_trans_params iwl_qu_long_latency_trans_cfg = {
+const struct iwl_mac_cfg iwl_qu_long_latency_mac_cfg = {
.mq_rx_supported = true,
- .rf_id = true,
.gen2 = true,
.device_family = IWL_DEVICE_FAMILY_22000,
- .base_params = &iwl_22000_base_params,
+ .base = &iwl_22000_base,
.integrated = true,
.xtal_latency = 12000,
.low_latency_xtal = true,
.ltr_delay = IWL_CFG_TRANS_LTR_DELAY_2500US,
};
-/*
- * If the device doesn't support HE, no need to have that many buffers.
- * 22000 devices can split multiple frames into a single RB, so fewer are
- * needed; AX210 cannot (but use smaller RBs by default) - these sizes
- * were picked according to 8 MSDUs inside 256 A-MSDUs in an A-MPDU, with
- * additional overhead to account for processing time.
- */
-#define IWL_NUM_RBDS_NON_HE 512
-#define IWL_NUM_RBDS_22000_HE 2048
-
-/*
- * All JF radio modules are part of the 9000 series, but the MAC part
- * looks more like 22000. That's why this device is here, but called
- * 9560 nevertheless.
- */
-const struct iwl_cfg iwl9560_qu_b0_jf_b0_cfg = {
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
- IWL_DEVICE_22500,
- .num_rbds = IWL_NUM_RBDS_NON_HE,
-};
-
-const struct iwl_cfg iwl9560_qu_c0_jf_b0_cfg = {
- .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
- IWL_DEVICE_22500,
- .num_rbds = IWL_NUM_RBDS_NON_HE,
-};
-
-const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg = {
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_NON_HE,
-};
-
-const struct iwl_cfg_trans_params iwl_ax200_trans_cfg = {
+const struct iwl_mac_cfg iwl_ax200_mac_cfg = {
.device_family = IWL_DEVICE_FAMILY_22000,
- .base_params = &iwl_22000_base_params,
+ .base = &iwl_22000_base,
.mq_rx_supported = true,
- .rf_id = true,
.gen2 = true,
.bisr_workaround = 1,
};
-const char iwl_ax101_name[] = "Intel(R) Wi-Fi 6 AX101";
-const char iwl_ax200_name[] = "Intel(R) Wi-Fi 6 AX200 160MHz";
-const char iwl_ax201_name[] = "Intel(R) Wi-Fi 6 AX201 160MHz";
-const char iwl_ax203_name[] = "Intel(R) Wi-Fi 6 AX203";
-const char iwl_ax204_name[] = "Intel(R) Wi-Fi 6 AX204 160MHz";
-
const char iwl_ax200_killer_1650w_name[] =
"Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)";
const char iwl_ax200_killer_1650x_name[] =
@@ -216,213 +114,4 @@ const char iwl_ax201_killer_1650s_name[] =
const char iwl_ax201_killer_1650i_name[] =
"Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)";
-const struct iwl_cfg iwl_qu_b0_hr1_b0 = {
- .fw_name_pre = IWL_QU_B_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .tx_with_siso_diversity = true,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_qu_b0_hr_b0 = {
- .fw_name_pre = IWL_QU_B_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_ax201_cfg_qu_hr = {
- .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
- .fw_name_pre = IWL_QU_B_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_qu_c0_hr1_b0 = {
- .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .tx_with_siso_diversity = true,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_qu_c0_hr_b0 = {
- .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_ax201_cfg_qu_c0_hr_b0 = {
- .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
- .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_quz_a0_hr1_b0 = {
- .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .tx_with_siso_diversity = true,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_ax201_cfg_quz_hr = {
- .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
- .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_ax1650s_cfg_quz_hr = {
- .name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
- .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_ax1650i_cfg_quz_hr = {
- .name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
- .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_ax200_cfg_cc = {
- .fw_name_pre = IWL_CC_A_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0 = {
- .name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)",
- .fw_name_pre = IWL_QU_B_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0 = {
- .name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)",
- .fw_name_pre = IWL_QU_B_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg killer1650s_2ax_cfg_qu_c0_hr_b0 = {
- .name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)",
- .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0 = {
- .name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)",
- .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-const struct iwl_cfg iwl_cfg_quz_a0_hr_b0 = {
- .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
- IWL_DEVICE_22500,
- /*
- * This device doesn't support receiving BlockAck with a large bitmap
- * so we need to restrict the size of transmitted aggregation to the
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
- */
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
- .num_rbds = IWL_NUM_RBDS_22000_HE,
-};
-
-MODULE_FIRMWARE(IWL_QU_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
-MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
-MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
-MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
-MODULE_FIRMWARE(IWL_QUZ_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
diff --git a/sys/contrib/dev/iwlwifi/cfg/7000.c b/sys/contrib/dev/iwlwifi/cfg/7000.c
index 4e2afdedf4c6..f987ad3192c1 100644
--- a/sys/contrib/dev/iwlwifi/cfg/7000.c
+++ b/sys/contrib/dev/iwlwifi/cfg/7000.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
- * Copyright (C) 2012-2014, 2018-2020, 2023 Intel Corporation
+ * Copyright (C) 2012-2014, 2018-2020, 2023, 2025 Intel Corporation
* Copyright (C) 2013-2014 Intel Mobile Communications GmbH
* Copyright (C) 2015 Intel Deutschland GmbH
*/
@@ -49,7 +49,7 @@
#define IWL7265D_FW_PRE "iwlwifi-7265D"
#define IWL7265D_MODULE_FIRMWARE(api) IWL7265D_FW_PRE "-" __stringify(api) ".ucode"
-static const struct iwl_base_params iwl7000_base_params = {
+static const struct iwl_family_base_params iwl7000_base = {
.eeprom_size = OTP_LOW_IMAGE_SIZE_16K,
.num_of_queues = 31,
.max_tfd_queue_size = 256,
@@ -60,6 +60,7 @@ static const struct iwl_base_params iwl7000_base_params = {
.shadow_reg_enable = true,
.pcie_l1_allowed = true,
.apmg_wake_up_wa = true,
+ .nvm_hw_section_num = 0,
};
static const struct iwl_tt_params iwl7000_high_temp_tt_params = {
@@ -84,16 +85,13 @@ static const struct iwl_tt_params iwl7000_high_temp_tt_params = {
.support_tx_backoff = true,
};
-static const struct iwl_ht_params iwl7000_ht_params = {
- .stbc = true,
- .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+const struct iwl_mac_cfg iwl7000_mac_cfg = {
+ .device_family = IWL_DEVICE_FAMILY_7000,
+ .base = &iwl7000_base,
};
#define IWL_DEVICE_7000_COMMON \
- .trans.device_family = IWL_DEVICE_FAMILY_7000, \
- .trans.base_params = &iwl7000_base_params, \
.led_mode = IWL_LED_RF_STATE, \
- .nvm_hw_section_num = 0, \
.non_shared_ant = ANT_A, \
.dccm_offset = IWL7000_DCCM_OFFSET
@@ -117,77 +115,52 @@ static const struct iwl_ht_params iwl7000_ht_params = {
.ucode_api_max = IWL7265D_UCODE_API_MAX, \
.ucode_api_min = IWL7265D_UCODE_API_MIN
-const struct iwl_cfg iwl7260_2ac_cfg = {
- .name = "Intel(R) Dual Band Wireless AC 7260",
+const char iwl7260_2ac_name[] = "Intel(R) Dual Band Wireless AC 7260";
+const char iwl7260_2n_name[] = "Intel(R) Dual Band Wireless N 7260";
+const char iwl7260_n_name[] = "Intel(R) Wireless N 7260";
+const char iwl3160_2ac_name[] = "Intel(R) Dual Band Wireless AC 3160";
+const char iwl3160_2n_name[] = "Intel(R) Dual Band Wireless N 3160";
+const char iwl3160_n_name[] = "Intel(R) Wireless N 3160";
+const char iwl3165_2ac_name[] = "Intel(R) Dual Band Wireless-AC 3165";
+const char iwl3168_2ac_name[] = "Intel(R) Dual Band Wireless-AC 3168";
+const char iwl7265_2ac_name[] = "Intel(R) Dual Band Wireless-AC 7265";
+const char iwl7265_2n_name[] = "Intel(R) Dual Band Wireless-N 7265";
+const char iwl7265_n_name[] = "Intel(R) Wireless-N 7265";
+
+const struct iwl_rf_cfg iwl7260_cfg = {
.fw_name_pre = IWL7260_FW_PRE,
IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL7260_NVM_VERSION,
.host_interrupt_operation_mode = true,
.lp_xtal_workaround = true,
.dccm_len = IWL7260_DCCM_LEN,
};
-const struct iwl_cfg iwl7260_2ac_cfg_high_temp = {
- .name = "Intel(R) Dual Band Wireless AC 7260",
+const struct iwl_rf_cfg iwl7260_high_temp_cfg = {
.fw_name_pre = IWL7260_FW_PRE,
IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL7260_NVM_VERSION,
- .high_temp = true,
.host_interrupt_operation_mode = true,
.lp_xtal_workaround = true,
.dccm_len = IWL7260_DCCM_LEN,
.thermal_params = &iwl7000_high_temp_tt_params,
};
-const struct iwl_cfg iwl7260_2n_cfg = {
- .name = "Intel(R) Dual Band Wireless N 7260",
- .fw_name_pre = IWL7260_FW_PRE,
- IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
- .nvm_ver = IWL7260_NVM_VERSION,
- .host_interrupt_operation_mode = true,
- .lp_xtal_workaround = true,
- .dccm_len = IWL7260_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl7260_n_cfg = {
- .name = "Intel(R) Wireless N 7260",
- .fw_name_pre = IWL7260_FW_PRE,
- IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
- .nvm_ver = IWL7260_NVM_VERSION,
- .host_interrupt_operation_mode = true,
- .lp_xtal_workaround = true,
- .dccm_len = IWL7260_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl3160_2ac_cfg = {
- .name = "Intel(R) Dual Band Wireless AC 3160",
+const struct iwl_rf_cfg iwl3160_cfg = {
.fw_name_pre = IWL3160_FW_PRE,
IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
- .nvm_ver = IWL3160_NVM_VERSION,
- .host_interrupt_operation_mode = true,
- .dccm_len = IWL3160_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl3160_2n_cfg = {
- .name = "Intel(R) Dual Band Wireless N 3160",
- .fw_name_pre = IWL3160_FW_PRE,
- IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
- .nvm_ver = IWL3160_NVM_VERSION,
- .host_interrupt_operation_mode = true,
- .dccm_len = IWL3160_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl3160_n_cfg = {
- .name = "Intel(R) Wireless N 3160",
- .fw_name_pre = IWL3160_FW_PRE,
- IWL_DEVICE_7000,
- .ht_params = &iwl7000_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL3160_NVM_VERSION,
.host_interrupt_operation_mode = true,
.dccm_len = IWL3160_DCCM_LEN,
@@ -204,88 +177,52 @@ static const struct iwl_pwr_tx_backoff iwl7265_pwr_tx_backoffs[] = {
{0},
};
-static const struct iwl_ht_params iwl7265_ht_params = {
- .stbc = true,
- .ldpc = true,
- .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
-};
-
-const struct iwl_cfg iwl3165_2ac_cfg = {
- .name = "Intel(R) Dual Band Wireless AC 3165",
+const struct iwl_rf_cfg iwl3165_2ac_cfg = {
.fw_name_pre = IWL7265D_FW_PRE,
IWL_DEVICE_7005D,
- .ht_params = &iwl7000_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL3165_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
};
-const struct iwl_cfg iwl3168_2ac_cfg = {
- .name = "Intel(R) Dual Band Wireless AC 3168",
+const struct iwl_rf_cfg iwl3168_2ac_cfg = {
.fw_name_pre = IWL3168_FW_PRE,
IWL_DEVICE_3008,
- .ht_params = &iwl7000_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL3168_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
.nvm_type = IWL_NVM_SDP,
};
-const struct iwl_cfg iwl7265_2ac_cfg = {
- .name = "Intel(R) Dual Band Wireless AC 7265",
- .fw_name_pre = IWL7265_FW_PRE,
- IWL_DEVICE_7005,
- .ht_params = &iwl7265_ht_params,
- .nvm_ver = IWL7265_NVM_VERSION,
- .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
- .dccm_len = IWL7265_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl7265_2n_cfg = {
- .name = "Intel(R) Dual Band Wireless N 7265",
- .fw_name_pre = IWL7265_FW_PRE,
- IWL_DEVICE_7005,
- .ht_params = &iwl7265_ht_params,
- .nvm_ver = IWL7265_NVM_VERSION,
- .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
- .dccm_len = IWL7265_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl7265_n_cfg = {
- .name = "Intel(R) Wireless N 7265",
+const struct iwl_rf_cfg iwl7265_cfg = {
.fw_name_pre = IWL7265_FW_PRE,
IWL_DEVICE_7005,
- .ht_params = &iwl7265_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ldpc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL7265_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
};
-const struct iwl_cfg iwl7265d_2ac_cfg = {
- .name = "Intel(R) Dual Band Wireless AC 7265",
- .fw_name_pre = IWL7265D_FW_PRE,
- IWL_DEVICE_7005D,
- .ht_params = &iwl7265_ht_params,
- .nvm_ver = IWL7265D_NVM_VERSION,
- .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
- .dccm_len = IWL7265_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl7265d_2n_cfg = {
- .name = "Intel(R) Dual Band Wireless N 7265",
+const struct iwl_rf_cfg iwl7265d_cfg = {
.fw_name_pre = IWL7265D_FW_PRE,
IWL_DEVICE_7005D,
- .ht_params = &iwl7265_ht_params,
- .nvm_ver = IWL7265D_NVM_VERSION,
- .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
- .dccm_len = IWL7265_DCCM_LEN,
-};
-
-const struct iwl_cfg iwl7265d_n_cfg = {
- .name = "Intel(R) Wireless N 7265",
- .fw_name_pre = IWL7265D_FW_PRE,
- IWL_DEVICE_7005D,
- .ht_params = &iwl7265_ht_params,
+ .ht_params = {
+ .stbc = true,
+ .ldpc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
+ },
.nvm_ver = IWL7265D_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
diff --git a/sys/contrib/dev/iwlwifi/cfg/8000.c b/sys/contrib/dev/iwlwifi/cfg/8000.c
index d09cf8d7dc01..b56574006ee0 100644
--- a/sys/contrib/dev/iwlwifi/cfg/8000.c
+++ b/sys/contrib/dev/iwlwifi/cfg/8000.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
- * Copyright (C) 2014, 2018-2020, 2023 Intel Corporation
+ * Copyright (C) 2014, 2018-2020, 2023, 2025 Intel Corporation
* Copyright (C) 2014-2015 Intel Mobile Communications GmbH
* Copyright (C) 2016 Intel Deutschland GmbH
*/
*** 63291 LINES SKIPPED ***