git: f4e352ef16d6 - stable/14 - iwlwifi: update Intel's iwlwifi/mvm driver.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 10 Feb 2025 14:52:29 UTC
The branch stable/14 has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=f4e352ef16d6afb4f2238ecdf925d531f8b9e995
commit f4e352ef16d6afb4f2238ecdf925d531f8b9e995
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2024-09-27 21:53:40 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-02-10 14:52:07 +0000
iwlwifi: update Intel's iwlwifi/mvm driver.
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
98f7e32f20d28ec452afb208f9cffc08448a2652 ( tag: v6.11 ).
Sponsored by: The FreeBSD Foundation
(cherry picked from commit a4128aad8503277614f2d214011ef60a19447b83)
---
share/man/man4/iwlwifi.4 | 12 +-
share/man/man4/iwlwififw.4 | 238 ++-
sys/contrib/dev/iwlwifi/cfg/22000.c | 4 +-
sys/contrib/dev/iwlwifi/cfg/ax210.c | 12 +-
sys/contrib/dev/iwlwifi/cfg/bz.c | 29 +-
sys/contrib/dev/iwlwifi/cfg/sc.c | 48 +-
sys/contrib/dev/iwlwifi/fw/acpi.c | 649 ++-----
sys/contrib/dev/iwlwifi/fw/acpi.h | 220 +--
sys/contrib/dev/iwlwifi/fw/api/alive.h | 6 +-
sys/contrib/dev/iwlwifi/fw/api/binding.h | 4 +-
sys/contrib/dev/iwlwifi/fw/api/coex.h | 81 +-
sys/contrib/dev/iwlwifi/fw/api/commands.h | 30 +
sys/contrib/dev/iwlwifi/fw/api/config.h | 4 +-
sys/contrib/dev/iwlwifi/fw/api/d3.h | 107 +-
sys/contrib/dev/iwlwifi/fw/api/datapath.h | 36 +-
sys/contrib/dev/iwlwifi/fw/api/dbg-tlv.h | 81 +-
sys/contrib/dev/iwlwifi/fw/api/debug.h | 40 +-
sys/contrib/dev/iwlwifi/fw/api/location.h | 160 +-
sys/contrib/dev/iwlwifi/fw/api/mac-cfg.h | 60 +-
sys/contrib/dev/iwlwifi/fw/api/mac.h | 17 +-
sys/contrib/dev/iwlwifi/fw/api/nvm-reg.h | 198 +-
sys/contrib/dev/iwlwifi/fw/api/offload.h | 8 +-
sys/contrib/dev/iwlwifi/fw/api/phy-ctxt.h | 24 +-
sys/contrib/dev/iwlwifi/fw/api/phy.h | 9 +-
sys/contrib/dev/iwlwifi/fw/api/power.h | 134 +-
sys/contrib/dev/iwlwifi/fw/api/rfi.h | 7 +-
sys/contrib/dev/iwlwifi/fw/api/rs.h | 4 +-
sys/contrib/dev/iwlwifi/fw/api/rx.h | 26 +-
sys/contrib/dev/iwlwifi/fw/api/scan.h | 49 +-
sys/contrib/dev/iwlwifi/fw/api/sta.h | 4 +-
sys/contrib/dev/iwlwifi/fw/api/stats.h | 153 +-
sys/contrib/dev/iwlwifi/fw/api/time-event.h | 80 +-
sys/contrib/dev/iwlwifi/fw/api/tx.h | 23 +-
sys/contrib/dev/iwlwifi/fw/api/txq.h | 14 +-
sys/contrib/dev/iwlwifi/fw/dbg.c | 295 ++-
sys/contrib/dev/iwlwifi/fw/dbg.h | 4 +-
sys/contrib/dev/iwlwifi/fw/debugfs.c | 17 +-
sys/contrib/dev/iwlwifi/fw/dump.c | 3 +-
sys/contrib/dev/iwlwifi/fw/error-dump.h | 33 +-
sys/contrib/dev/iwlwifi/fw/file.h | 71 +-
sys/contrib/dev/iwlwifi/fw/img.h | 4 +-
sys/contrib/dev/iwlwifi/fw/init.c | 7 +-
sys/contrib/dev/iwlwifi/fw/notif-wait.h | 3 +-
sys/contrib/dev/iwlwifi/fw/pnvm.c | 49 +-
sys/contrib/dev/iwlwifi/fw/regulatory.c | 639 +++++++
sys/contrib/dev/iwlwifi/fw/regulatory.h | 220 +++
sys/contrib/dev/iwlwifi/fw/rs.c | 1 -
sys/contrib/dev/iwlwifi/fw/runtime.h | 30 +-
sys/contrib/dev/iwlwifi/fw/uefi.c | 462 ++++-
sys/contrib/dev/iwlwifi/fw/uefi.h | 245 ++-
sys/contrib/dev/iwlwifi/iwl-config.h | 43 +-
sys/contrib/dev/iwlwifi/iwl-context-info-gen3.h | 13 +-
sys/contrib/dev/iwlwifi/iwl-csr.h | 10 +-
sys/contrib/dev/iwlwifi/iwl-dbg-tlv.c | 94 +-
sys/contrib/dev/iwlwifi/iwl-dbg-tlv.h | 6 +-
sys/contrib/dev/iwlwifi/iwl-debug.c | 5 +-
sys/contrib/dev/iwlwifi/iwl-devtrace.h | 2 +
sys/contrib/dev/iwlwifi/iwl-drv.c | 151 +-
sys/contrib/dev/iwlwifi/iwl-drv.h | 12 +-
sys/contrib/dev/iwlwifi/iwl-eeprom-parse.c | 879 ---------
sys/contrib/dev/iwlwifi/iwl-eeprom-read.c | 397 ----
sys/contrib/dev/iwlwifi/iwl-eeprom-read.h | 12 -
sys/contrib/dev/iwlwifi/iwl-fh.h | 85 +-
sys/contrib/dev/iwlwifi/iwl-io.c | 4 +-
sys/contrib/dev/iwlwifi/iwl-modparams.h | 21 +-
sys/contrib/dev/iwlwifi/iwl-nvm-parse.c | 223 ++-
sys/contrib/dev/iwlwifi/iwl-nvm-parse.h | 23 +-
sys/contrib/dev/iwlwifi/iwl-nvm-utils.c | 118 ++
.../{iwl-eeprom-parse.h => iwl-nvm-utils.h} | 19 +-
sys/contrib/dev/iwlwifi/iwl-op-mode.h | 32 +-
sys/contrib/dev/iwlwifi/iwl-prph.h | 42 +-
sys/contrib/dev/iwlwifi/iwl-trans.c | 456 ++++-
sys/contrib/dev/iwlwifi/iwl-trans.h | 736 ++------
sys/contrib/dev/iwlwifi/mei/iwl-mei.h | 7 +-
sys/contrib/dev/iwlwifi/mvm/coex.c | 124 +-
sys/contrib/dev/iwlwifi/mvm/constants.h | 26 +-
sys/contrib/dev/iwlwifi/mvm/d3.c | 649 ++++++-
sys/contrib/dev/iwlwifi/mvm/debugfs-vif.c | 272 ++-
sys/contrib/dev/iwlwifi/mvm/debugfs.c | 418 ++---
sys/contrib/dev/iwlwifi/mvm/debugfs.h | 1 +
sys/contrib/dev/iwlwifi/mvm/ftm-initiator.c | 277 ++-
sys/contrib/dev/iwlwifi/mvm/ftm-responder.c | 49 +-
sys/contrib/dev/iwlwifi/mvm/fw.c | 522 ++----
sys/contrib/dev/iwlwifi/mvm/link.c | 953 +++++++++-
sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c | 117 +-
sys/contrib/dev/iwlwifi/mvm/mac80211.c | 1423 +++++++++------
sys/contrib/dev/iwlwifi/mvm/mld-key.c | 42 +-
sys/contrib/dev/iwlwifi/mvm/mld-mac.c | 11 +-
sys/contrib/dev/iwlwifi/mvm/mld-mac80211.c | 672 ++++---
sys/contrib/dev/iwlwifi/mvm/mld-sta.c | 98 +-
sys/contrib/dev/iwlwifi/mvm/mvm.h | 592 ++++--
sys/contrib/dev/iwlwifi/mvm/nvm.c | 19 +-
sys/contrib/dev/iwlwifi/mvm/offloading.c | 8 +-
sys/contrib/dev/iwlwifi/mvm/ops.c | 319 +++-
sys/contrib/dev/iwlwifi/mvm/phy-ctxt.c | 115 +-
sys/contrib/dev/iwlwifi/mvm/power.c | 179 +-
sys/contrib/dev/iwlwifi/mvm/rfi.c | 8 +-
sys/contrib/dev/iwlwifi/mvm/rs-fw.c | 33 +-
sys/contrib/dev/iwlwifi/mvm/rx.c | 329 +++-
sys/contrib/dev/iwlwifi/mvm/rxmq.c | 473 ++---
sys/contrib/dev/iwlwifi/mvm/scan.c | 694 +++++--
sys/contrib/dev/iwlwifi/mvm/sf.c | 5 +-
sys/contrib/dev/iwlwifi/mvm/sta.c | 258 ++-
sys/contrib/dev/iwlwifi/mvm/sta.h | 47 +-
sys/contrib/dev/iwlwifi/mvm/tdls.c | 39 +-
sys/contrib/dev/iwlwifi/mvm/testmode.h | 92 +
sys/contrib/dev/iwlwifi/mvm/time-event.c | 470 ++++-
sys/contrib/dev/iwlwifi/mvm/time-event.h | 21 +-
sys/contrib/dev/iwlwifi/mvm/tt.c | 146 +-
sys/contrib/dev/iwlwifi/mvm/tx.c | 325 ++--
sys/contrib/dev/iwlwifi/mvm/utils.c | 99 +-
sys/contrib/dev/iwlwifi/pcie/ctxt-info-gen3.c | 42 +-
sys/contrib/dev/iwlwifi/pcie/ctxt-info.c | 6 +-
sys/contrib/dev/iwlwifi/pcie/drv.c | 211 ++-
sys/contrib/dev/iwlwifi/pcie/internal.h | 362 +++-
sys/contrib/dev/iwlwifi/pcie/rx.c | 47 +-
sys/contrib/dev/iwlwifi/pcie/trans-gen2.c | 29 +-
sys/contrib/dev/iwlwifi/pcie/trans.c | 482 ++---
sys/contrib/dev/iwlwifi/pcie/tx-gen2.c | 1191 +++++++++++-
sys/contrib/dev/iwlwifi/pcie/tx.c | 1270 +++++++++++--
sys/contrib/dev/iwlwifi/queue/tx.c | 1903 --------------------
sys/contrib/dev/iwlwifi/queue/tx.h | 183 --
sys/contrib/dev/iwlwifi/tests/Makefile | 7 +
sys/contrib/dev/iwlwifi/tests/devinfo.c | 78 +
sys/contrib/dev/iwlwifi/tests/module.c | 10 +
sys/modules/iwlwifi/Makefile | 7 +-
usr.sbin/fwget/pci/pci_network_intel | 33 +-
127 files changed, 14821 insertions(+), 9009 deletions(-)
diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4
index b4dce91f1ee4..04317c22936f 100644
--- a/share/man/man4/iwlwifi.4
+++ b/share/man/man4/iwlwifi.4
@@ -220,15 +220,19 @@ Intel(R) Wi-Fi 6 AX101
.It
Intel(R) Wi-Fi 6 AX203
.It
-Intel(R) Wi-Fi 6E AX221 160MHz
-.It
Intel(R) Wi-Fi 6E AX231 160MHz
.It
-Intel(R) TBD Bz device
+Intel(R) Wi-Fi 7 BE201 320MHz
+.It
+Intel(R) Wi-Fi 7 BE200 320MHz
.It
-Intel(R) Wi-Fi 6 AX204 160MHz
+Intel(R) Wi-Fi 7 BE202 160MHz
.It
Intel(R) TBD Sc device
+.It
+Intel(R) TBD Sc2 device
+.It
+Intel(R) TBD Sc2f device
.\" --------------------------------------------------------------------
.El
.Sh SEE ALSO
diff --git a/share/man/man4/iwlwififw.4 b/share/man/man4/iwlwififw.4
index debd0cda36b5..491a634e70b5 100644
--- a/share/man/man4/iwlwififw.4
+++ b/share/man/man4/iwlwififw.4
@@ -1,5 +1,5 @@
.\"-
-.\" Copyright (c) 2021-2023 The FreeBSD Foundation
+.\" Copyright (c) 2021-2024 The FreeBSD Foundation
.\"
.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
.\" the FreeBSD Foundation.
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 21, 2023
+.Dd October 12, 2024
.Dt iwlwififw 4
.Os
.Sh NAME
@@ -43,13 +43,18 @@ models supported by the
.Xr iwlwifi 4
driver.
.Pp
+One can use
+.Xr fwget 8
+to install the correct firmware package.
+.Pp
.Bl -column -compact "Vendor" "Device" "Subv. " "Subd. " "Firmware-Prefix"
.It Ar Name
.It Ar Vendor Ta Ar Device Ta Ar Subv. Ta Ar Subd. Ta Ar Firmware-Prefix
-.\" ---------------------------------------------------------------------
-.\" This list is manually generated from a sysctl and post-processing.
-.\" Edits will be overwritten on next update.
-.\" ---------------------------------------------------------------------
+.% ---------------------------------------------------------------------
+.% This list is manually generated from a sysctl and post-processing
+.% by sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh generating the list.
+.% Edits will be overwritten on next update.
+.% ---------------------------------------------------------------------
.It ""
.It Intel(R) Dual Band Wireless AC 7260
.It 0x8086 Ta 0x08b1 Ta any Ta 0x4070 Ta iwlwifi-7260
@@ -735,6 +740,198 @@ driver.
.It Intel(R) Dual Band Wireless AC 8265
.It 0x8086 Ta 0x24fd Ta any Ta 0x9074 Ta iwlwifi-8265
.It ""
+.It (unknown)
+.It 0x8086 Ta 0x2526 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x271b Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x271c Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x30dc Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x31dc Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x9df0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa370 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x02f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x06f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x34f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x3df0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x4df0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x43f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa0f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x2723 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x2725 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x7a70 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x7af0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x51f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x51f1 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x54f0 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x7f70 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x2729 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x7e40 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x2727 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x272d Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x272b Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 000000 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0090 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0094 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0098 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x009c Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00c0 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00c4 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00e0 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00e4 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00e8 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x00ec Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0100 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0110 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0114 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0118 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x011c Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0310 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0314 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0510 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x0a10 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1671 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1672 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1771 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1772 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1791 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x1792 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x4090 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x40c4 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x40e0 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x4110 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xa840 Ta any Ta 0x4314 Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x7740 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x4d40 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xe440 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xe340 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0xd340 Ta any Ta any Ta (unknown)
+.It ""
+.It (unknown)
+.It 0x8086 Ta 0x6e70 Ta any Ta any Ta (unknown)
+.It ""
.It Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz
.It 0x8086 Ta 0x2526 Ta any Ta 0x1550 Ta iwlwifi-9260-th-b0-jf-b0
.It ""
@@ -1290,9 +1487,6 @@ driver.
.It Intel(R) Wi-Fi 6E AX211 160MHz
.It 0x8086 Ta any Ta any Ta any Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6E AX221 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta (null)
-.It ""
.It Intel(R) Wi-Fi 6E AX231 160MHz
.It 0x8086 Ta any Ta any Ta any Ta (null)
.It ""
@@ -1311,9 +1505,6 @@ driver.
.It Intel(R) Wi-Fi 6E AX411 160MHz
.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-gf4-a0
.It ""
-.It Intel(R) TBD Bz device
-.It 0x8086 Ta any Ta any Ta any Ta (null)
-.It ""
.It Intel(R) Wireless-AC 9560 160MHz
.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
.It ""
@@ -1332,14 +1523,23 @@ driver.
.It Intel(R) Wireless-AC 9462
.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-jf-b0
.It ""
-.It Intel(R) Wi-Fi 6 AX204 160MHz
-.It 0x8086 Ta any Ta any Ta any Ta iwlwifi-so-a0-mr-a0
+.It Intel(R) Wi-Fi 7 BE201 320MHz
+.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It ""
+.It Intel(R) Wi-Fi 7 BE200 320MHz
+.It 0x8086 Ta any Ta any Ta any Ta (null)
.It ""
-.It Intel(R) Wi-Fi 6 AX204 160MHz
+.It Intel(R) Wi-Fi 7 BE202 160MHz
.It 0x8086 Ta any Ta any Ta any Ta (null)
.It ""
.It Intel(R) TBD Sc device
.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It ""
+.It Intel(R) TBD Sc2 device
+.It 0x8086 Ta any Ta any Ta any Ta (null)
+.It ""
+.It Intel(R) TBD Sc2f device
+.It 0x8086 Ta any Ta any Ta any Ta (null)
.\" ---------------------------------------------------------------------
.El
.Pp
@@ -1350,10 +1550,14 @@ in the above listing).
.Sh FILES
A copy of the
.Xr iwlwifi 4
-firmware license is installed at
-.Em /usr/share/doc/legal/intel_iwlwifi_firmware.LICENCE .
+firmware license is installed along with the
+.Pa wifi-firmware-iwlwifi-kmod
+package or the
+.Pa ports/net/wifi-firmware-iwlwifi-kmod
+port (or each of its flavors).
.Sh SEE ALSO
.Xr iwlwifi 4 ,
+.Xr fwget 8 ,
.Xr firmware 9
.Sh HISTORY
The
diff --git a/sys/contrib/dev/iwlwifi/cfg/22000.c b/sys/contrib/dev/iwlwifi/cfg/22000.c
index d594694206b3..2e2fcb3807ef 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-2023 Intel Corporation
+ * Copyright (C) 2018-2024 Intel Corporation
*/
#include <linux/module.h>
#include <linux/stringify.h>
@@ -13,7 +13,7 @@
#define IWL_22000_UCODE_API_MAX 77
/* Lowest firmware API version supported */
-#define IWL_22000_UCODE_API_MIN 50
+#define IWL_22000_UCODE_API_MIN 77
/* NVM versions */
#define IWL_22000_NVM_VERSION 0x0a1d
diff --git a/sys/contrib/dev/iwlwifi/cfg/ax210.c b/sys/contrib/dev/iwlwifi/cfg/ax210.c
index 8d5f9dce71d5..975e8aed1526 100644
--- a/sys/contrib/dev/iwlwifi/cfg/ax210.c
+++ b/sys/contrib/dev/iwlwifi/cfg/ax210.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-2023 Intel Corporation
+ * Copyright (C) 2018-2024 Intel Corporation
*/
#include <linux/module.h>
#include <linux/stringify.h>
@@ -10,10 +10,10 @@
#include "fw/api/txq.h"
/* Highest firmware API version supported */
-#define IWL_AX210_UCODE_API_MAX 83
+#define IWL_AX210_UCODE_API_MAX 89
/* Lowest firmware API version supported */
-#define IWL_AX210_UCODE_API_MIN 59
+#define IWL_AX210_UCODE_API_MIN 77
/* NVM versions */
#define IWL_AX210_NVM_VERSION 0x0a1d
@@ -299,3 +299,9 @@ MODULE_FIRMWARE(IWL_MA_B_HR_B_FW_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_MA_B_GF_A_FW_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_MA_B_GF4_A_FW_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_MA_B_MR_A_FW_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX));
+
+MODULE_FIRMWARE("iwlwifi-so-a0-gf-a0.pnvm");
+MODULE_FIRMWARE("iwlwifi-so-a0-gf4-a0.pnvm");
+MODULE_FIRMWARE("iwlwifi-ty-a0-gf-a0.pnvm");
+MODULE_FIRMWARE("iwlwifi-ma-b0-gf-a0.pnvm");
+MODULE_FIRMWARE("iwlwifi-ma-b0-gf4-a0.pnvm");
diff --git a/sys/contrib/dev/iwlwifi/cfg/bz.c b/sys/contrib/dev/iwlwifi/cfg/bz.c
index b9893b22e41d..3b6b8b410be5 100644
--- a/sys/contrib/dev/iwlwifi/cfg/bz.c
+++ b/sys/contrib/dev/iwlwifi/cfg/bz.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-2023 Intel Corporation
+ * Copyright (C) 2018-2024 Intel Corporation
*/
#include <linux/module.h>
#include <linux/stringify.h>
@@ -10,10 +10,10 @@
#include "fw/api/txq.h"
/* Highest firmware API version supported */
-#define IWL_BZ_UCODE_API_MAX 83
+#define IWL_BZ_UCODE_API_MAX 92
/* Lowest firmware API version supported */
-#define IWL_BZ_UCODE_API_MIN 80
+#define IWL_BZ_UCODE_API_MIN 90
/* NVM versions */
#define IWL_BZ_NVM_VERSION 0x0a1d
@@ -129,17 +129,11 @@ static const struct iwl_base_params iwl_bz_base_params = {
IWL_DEVICE_BZ_COMMON, \
.ht_params = &iwl_22000_ht_params
-#define IWL_DEVICE_GL_A \
- IWL_DEVICE_BZ_COMMON, \
- .ht_params = &iwl_gl_a_ht_params
-
/*
- * If the device doesn't support HE, no need to have that many buffers.
- * These sizes were picked according to 8 MSDUs inside 256 A-MSDUs in an
+ * This size was picked according to 8 MSDUs inside 512 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_BZ_HE 4096
+#define IWL_NUM_RBDS_BZ_EHT (512 * 16)
const struct iwl_cfg_trans_params iwl_bz_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_BZ,
@@ -155,21 +149,24 @@ const struct iwl_cfg_trans_params iwl_bz_trans_cfg = {
};
const char iwl_bz_name[] = "Intel(R) TBD Bz device";
+const char iwl_fm_name[] = "Intel(R) Wi-Fi 7 BE201 320MHz";
+const char iwl_gl_name[] = "Intel(R) Wi-Fi 7 BE200 320MHz";
+const char iwl_mtp_name[] = "Intel(R) Wi-Fi 7 BE202 160MHz";
const struct iwl_cfg iwl_cfg_bz = {
.fw_name_mac = "bz",
.uhb_supported = true,
IWL_DEVICE_BZ,
- .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
- .num_rbds = IWL_NUM_RBDS_BZ_HE,
+ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM,
+ .num_rbds = IWL_NUM_RBDS_BZ_EHT,
};
const struct iwl_cfg iwl_cfg_gl = {
.fw_name_mac = "gl",
.uhb_supported = true,
IWL_DEVICE_BZ,
- .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
- .num_rbds = IWL_NUM_RBDS_BZ_HE,
+ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM,
+ .num_rbds = IWL_NUM_RBDS_BZ_EHT,
};
@@ -181,3 +178,5 @@ MODULE_FIRMWARE(IWL_BZ_A_FM_C_MODULE_FIRMWARE(IWL_BZ_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_BZ_A_FM4_B_MODULE_FIRMWARE(IWL_BZ_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_GL_B_FM_B_MODULE_FIRMWARE(IWL_BZ_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_GL_C_FM_C_MODULE_FIRMWARE(IWL_BZ_UCODE_API_MAX));
+
+MODULE_FIRMWARE("iwlwifi-gl-c0-fm-c0.pnvm");
diff --git a/sys/contrib/dev/iwlwifi/cfg/sc.c b/sys/contrib/dev/iwlwifi/cfg/sc.c
index ad283fd22e2a..4ccb0b7bdc20 100644
--- a/sys/contrib/dev/iwlwifi/cfg/sc.c
+++ b/sys/contrib/dev/iwlwifi/cfg/sc.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-2023 Intel Corporation
+ * Copyright (C) 2018-2024 Intel Corporation
*/
#include <linux/module.h>
#include <linux/stringify.h>
@@ -10,10 +10,10 @@
#include "fw/api/txq.h"
/* Highest firmware API version supported */
-#define IWL_SC_UCODE_API_MAX 83
+#define IWL_SC_UCODE_API_MAX 92
/* Lowest firmware API version supported */
-#define IWL_SC_UCODE_API_MIN 82
+#define IWL_SC_UCODE_API_MIN 90
/* NVM versions */
#define IWL_SC_NVM_VERSION 0x0a1d
@@ -33,6 +33,10 @@
#define IWL_SC_A_GF_A_FW_PRE "iwlwifi-sc-a0-gf-a0"
#define IWL_SC_A_GF4_A_FW_PRE "iwlwifi-sc-a0-gf4-a0"
#define IWL_SC_A_WH_A_FW_PRE "iwlwifi-sc-a0-wh-a0"
+#define IWL_SC2_A_FM_C_FW_PRE "iwlwifi-sc2-a0-fm-c0"
+#define IWL_SC2_A_WH_A_FW_PRE "iwlwifi-sc2-a0-wh-a0"
+#define IWL_SC2F_A_FM_C_FW_PRE "iwlwifi-sc2f-a0-fm-c0"
+#define IWL_SC2F_A_WH_A_FW_PRE "iwlwifi-sc2f-a0-wh-a0"
#define IWL_SC_A_FM_B_FW_MODULE_FIRMWARE(api) \
IWL_SC_A_FM_B_FW_PRE "-" __stringify(api) ".ucode"
@@ -48,6 +52,14 @@
IWL_SC_A_GF4_A_FW_PRE "-" __stringify(api) ".ucode"
#define IWL_SC_A_WH_A_FW_MODULE_FIRMWARE(api) \
IWL_SC_A_WH_A_FW_PRE "-" __stringify(api) ".ucode"
+#define IWL_SC2_A_FM_C_FW_MODULE_FIRMWARE(api) \
+ IWL_SC2_A_FM_C_FW_PRE "-" __stringify(api) ".ucode"
+#define IWL_SC2_A_WH_A_FW_MODULE_FIRMWARE(api) \
+ IWL_SC2_A_WH_A_FW_PRE "-" __stringify(api) ".ucode"
+#define IWL_SC2F_A_FM_C_FW_MODULE_FIRMWARE(api) \
+ IWL_SC2F_A_FM_C_FW_PRE "-" __stringify(api) ".ucode"
+#define IWL_SC2F_A_WH_A_FW_MODULE_FIRMWARE(api) \
+ IWL_SC2F_A_WH_A_FW_PRE "-" __stringify(api) ".ucode"
static const struct iwl_base_params iwl_sc_base_params = {
.eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
@@ -124,15 +136,16 @@ static const struct iwl_base_params iwl_sc_base_params = {
#define IWL_DEVICE_SC \
IWL_DEVICE_BZ_COMMON, \
+ .uhb_supported = true, \
+ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \
+ .num_rbds = IWL_NUM_RBDS_SC_EHT, \
.ht_params = &iwl_22000_ht_params
/*
- * If the device doesn't support HE, no need to have that many buffers.
- * These sizes were picked according to 8 MSDUs inside 256 A-MSDUs in an
+ * This size was picked according to 8 MSDUs inside 512 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_SC_HE 4096
+#define IWL_NUM_RBDS_SC_EHT (512 * 16)
const struct iwl_cfg_trans_params iwl_sc_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_SC,
@@ -151,10 +164,21 @@ const char iwl_sc_name[] = "Intel(R) TBD Sc device";
const struct iwl_cfg iwl_cfg_sc = {
.fw_name_mac = "sc",
- .uhb_supported = true,
IWL_DEVICE_SC,
- .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
- .num_rbds = IWL_NUM_RBDS_SC_HE,
+};
+
+const char iwl_sc2_name[] = "Intel(R) TBD Sc2 device";
+
+const struct iwl_cfg iwl_cfg_sc2 = {
+ .fw_name_mac = "sc2",
+ IWL_DEVICE_SC,
+};
+
+const char iwl_sc2f_name[] = "Intel(R) TBD Sc2f device";
+
+const struct iwl_cfg iwl_cfg_sc2f = {
+ .fw_name_mac = "sc2f",
+ IWL_DEVICE_SC,
};
MODULE_FIRMWARE(IWL_SC_A_FM_B_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
@@ -164,3 +188,7 @@ MODULE_FIRMWARE(IWL_SC_A_HR_B_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_SC_A_GF_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_SC_A_GF4_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_SC_A_WH_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC2_A_FM_C_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC2_A_WH_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC2F_A_FM_C_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC2F_A_WH_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX));
diff --git a/sys/contrib/dev/iwlwifi/fw/acpi.c b/sys/contrib/dev/iwlwifi/fw/acpi.c
index dfe8357036eb..8c8880b44827 100644
--- a/sys/contrib/dev/iwlwifi/fw/acpi.c
+++ b/sys/contrib/dev/iwlwifi/fw/acpi.c
@@ -1,10 +1,9 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
* Copyright (C) 2017 Intel Deutschland GmbH
- * Copyright (C) 2019-2023 Intel Corporation
+ * Copyright (C) 2019-2024 Intel Corporation
*/
#include <linux/uuid.h>
-#include <linux/dmi.h>
#include "iwl-drv.h"
#include "iwl-debug.h"
#include "acpi.h"
@@ -13,63 +12,22 @@
const guid_t iwl_guid = GUID_INIT(0xF21202BF, 0x8F78, 0x4DC6,
0xA5, 0xB3, 0x1F, 0x73,
0x8E, 0x28, 0x5A, 0xDE);
-IWL_EXPORT_SYMBOL(iwl_guid);
-const guid_t iwl_rfi_guid = GUID_INIT(0x7266172C, 0x220B, 0x4B29,
- 0x81, 0x4F, 0x75, 0xE4,
- 0xDD, 0x26, 0xB5, 0xFD);
-IWL_EXPORT_SYMBOL(iwl_rfi_guid);
-
-static const struct dmi_system_id dmi_ppag_approved_list[] = {
- { .ident = "HP",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "HP"),
- },
- },
- { .ident = "SAMSUNG",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD"),
- },
- },
- { .ident = "MSFT",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
- },
- },
- { .ident = "ASUS",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
- },
- },
- { .ident = "GOOGLE-HP",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Google"),
- DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
- },
- },
- { .ident = "GOOGLE-ASUS",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Google"),
- DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTek COMPUTER INC."),
- },
- },
- { .ident = "GOOGLE-SAMSUNG",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Google"),
- DMI_MATCH(DMI_BOARD_VENDOR, "SAMSUNG ELECTRONICS CO., LTD"),
- },
- },
- { .ident = "DELL",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
- },
- },
- { .ident = "DELL",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
- },
- },
- {}
+static const size_t acpi_dsm_size[DSM_FUNC_NUM_FUNCS] = {
+ [DSM_FUNC_QUERY] = sizeof(u32),
+ [DSM_FUNC_DISABLE_SRD] = sizeof(u8),
+ [DSM_FUNC_ENABLE_INDONESIA_5G2] = sizeof(u8),
+ [DSM_FUNC_ENABLE_6E] = sizeof(u32),
+ [DSM_FUNC_REGULATORY_CONFIG] = sizeof(u32),
+ /* Not supported in driver */
+ [5] = (size_t)0,
+ [DSM_FUNC_11AX_ENABLEMENT] = sizeof(u32),
+ [DSM_FUNC_ENABLE_UNII4_CHAN] = sizeof(u32),
+ [DSM_FUNC_ACTIVATE_CHANNEL] = sizeof(u32),
+ [DSM_FUNC_FORCE_DISABLE_CHANNELS] = sizeof(u32),
+ [DSM_FUNC_ENERGY_DETECTION_THRESHOLD] = sizeof(u32),
+ [DSM_FUNC_RFI_CONFIG] = sizeof(u32),
+ [DSM_FUNC_ENABLE_11BE] = sizeof(u32),
};
static int iwl_acpi_get_handle(struct device *dev, acpi_string method,
@@ -195,46 +153,41 @@ out:
}
/*
- * Evaluate a DSM with no arguments and a u8 return value,
+ * This function receives a DSM function number, calculates its expected size
+ * according to Intel BIOS spec, and fills in the value in a 32-bit field.
+ * In case the expected size is smaller than 32-bit, padding will be added.
*/
-int iwl_acpi_get_dsm_u8(struct device *dev, int rev, int func,
- const guid_t *guid, u8 *value)
+int iwl_acpi_get_dsm(struct iwl_fw_runtime *fwrt,
+ enum iwl_dsm_funcs func, u32 *value)
{
+ size_t expected_size;
+ u64 tmp;
int ret;
- u64 val;
- ret = iwl_acpi_get_dsm_integer(dev, rev, func,
- guid, &val, sizeof(u8));
+ BUILD_BUG_ON(ARRAY_SIZE(acpi_dsm_size) != DSM_FUNC_NUM_FUNCS);
- if (ret < 0)
- return ret;
-
- /* cast val (u64) to be u8 */
- *value = (u8)val;
- return 0;
-}
-IWL_EXPORT_SYMBOL(iwl_acpi_get_dsm_u8);
+ if (WARN_ON(func >= ARRAY_SIZE(acpi_dsm_size)))
+ return -EINVAL;
-/*
- * Evaluate a DSM with no arguments and a u32 return value,
- */
-int iwl_acpi_get_dsm_u32(struct device *dev, int rev, int func,
- const guid_t *guid, u32 *value)
-{
- int ret;
- u64 val;
+ expected_size = acpi_dsm_size[func];
- ret = iwl_acpi_get_dsm_integer(dev, rev, func,
- guid, &val, sizeof(u32));
+ /* Currently all ACPI DSMs are either 8-bit or 32-bit */
+ if (expected_size != sizeof(u8) && expected_size != sizeof(u32))
+ return -EOPNOTSUPP;
- if (ret < 0)
+ ret = iwl_acpi_get_dsm_integer(fwrt->dev, ACPI_DSM_REV, func,
+ &iwl_guid, &tmp, expected_size);
+ if (ret)
return ret;
- /* cast val (u64) to be u32 */
- *value = (u32)val;
+ if ((expected_size == sizeof(u8) && tmp != (u8)tmp) ||
+ (expected_size == sizeof(u32) && tmp != (u32)tmp))
+ IWL_DEBUG_RADIO(fwrt,
+ "DSM value overflows the expected size, truncating\n");
+ *value = (u32)tmp;
+
return 0;
}
-IWL_EXPORT_SYMBOL(iwl_acpi_get_dsm_u32);
static union acpi_object *
iwl_acpi_get_wifi_pkg_range(struct device *dev,
@@ -302,9 +255,8 @@ iwl_acpi_get_wifi_pkg(struct device *dev,
tbl_rev);
}
-
-int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
- union iwl_tas_config_cmd *cmd, int fw_ver)
+int iwl_acpi_get_tas_table(struct iwl_fw_runtime *fwrt,
+ struct iwl_tas_data *tas_data)
{
union acpi_object *wifi_pkg, *data;
int ret, tbl_rev, i, block_list_size, enabled;
@@ -326,22 +278,9 @@ int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
ACPI_TYPE_INTEGER) {
u32 tas_selection =
(u32)wifi_pkg->package.elements[1].integer.value;
- u16 override_iec =
- (tas_selection & ACPI_WTAS_OVERRIDE_IEC_MSK) >> ACPI_WTAS_OVERRIDE_IEC_POS;
- u16 enabled_iec = (tas_selection & ACPI_WTAS_ENABLE_IEC_MSK) >>
- ACPI_WTAS_ENABLE_IEC_POS;
- u8 usa_tas_uhb = (tas_selection & ACPI_WTAS_USA_UHB_MSK) >> ACPI_WTAS_USA_UHB_POS;
-
- enabled = tas_selection & ACPI_WTAS_ENABLED_MSK;
- if (fw_ver <= 3) {
- cmd->v3.override_tas_iec = cpu_to_le16(override_iec);
- cmd->v3.enable_tas_iec = cpu_to_le16(enabled_iec);
- } else {
- cmd->v4.usa_tas_uhb_allowed = usa_tas_uhb;
- cmd->v4.override_tas_iec = (u8)override_iec;
- cmd->v4.enable_tas_iec = (u8)enabled_iec;
- }
+ enabled = iwl_parse_tas_selection(fwrt, tas_data,
+ tas_selection);
} else if (tbl_rev == 0 &&
wifi_pkg->package.elements[1].type == ACPI_TYPE_INTEGER) {
@@ -360,22 +299,16 @@ int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
IWL_DEBUG_RADIO(fwrt, "Reading TAS table revision %d\n", tbl_rev);
if (wifi_pkg->package.elements[2].type != ACPI_TYPE_INTEGER ||
wifi_pkg->package.elements[2].integer.value >
- APCI_WTAS_BLACK_LIST_MAX) {
+ IWL_WTAS_BLACK_LIST_MAX) {
IWL_DEBUG_RADIO(fwrt, "TAS invalid array size %llu\n",
wifi_pkg->package.elements[2].integer.value);
ret = -EINVAL;
goto out_free;
}
block_list_size = wifi_pkg->package.elements[2].integer.value;
- cmd->v4.block_list_size = cpu_to_le32(block_list_size);
+ tas_data->block_list_size = cpu_to_le32(block_list_size);
IWL_DEBUG_RADIO(fwrt, "TAS array size %u\n", block_list_size);
- if (block_list_size > APCI_WTAS_BLACK_LIST_MAX) {
- IWL_DEBUG_RADIO(fwrt, "TAS invalid array size value %u\n",
- block_list_size);
- ret = -EINVAL;
- goto out_free;
- }
for (i = 0; i < block_list_size; i++) {
u32 country;
@@ -389,7 +322,7 @@ int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
}
country = wifi_pkg->package.elements[3 + i].integer.value;
- cmd->v4.block_list_array[i] = cpu_to_le32(country);
+ tas_data->block_list_array[i] = cpu_to_le32(country);
IWL_DEBUG_RADIO(fwrt, "TAS block list country %d\n", country);
}
@@ -398,19 +331,19 @@ out_free:
kfree(data);
return ret;
}
-IWL_EXPORT_SYMBOL(iwl_acpi_get_tas);
-int iwl_acpi_get_mcc(struct device *dev, char *mcc)
+int iwl_acpi_get_mcc(struct iwl_fw_runtime *fwrt, char *mcc)
{
union acpi_object *wifi_pkg, *data;
u32 mcc_val;
int ret, tbl_rev;
- data = iwl_acpi_get_object(dev, ACPI_WRDD_METHOD);
+ data = iwl_acpi_get_object(fwrt->dev, ACPI_WRDD_METHOD);
if (IS_ERR(data))
return PTR_ERR(data);
- wifi_pkg = iwl_acpi_get_wifi_pkg(dev, data, ACPI_WRDD_WIFI_DATA_SIZE,
+ wifi_pkg = iwl_acpi_get_wifi_pkg(fwrt->dev, data,
+ ACPI_WRDD_WIFI_DATA_SIZE,
&tbl_rev);
*** 36914 LINES SKIPPED ***