@@ -22,7 +22,7 @@ iwlwifi-$(CONFIG_IWLMVM) += cfg/9000.o cfg/22000.o
iwlwifi-$(CONFIG_IWLMVM) += cfg/ax210.o
iwlwifi-$(CONFIG_IWLMLD) += cfg/bz.o cfg/sc.o cfg/dr.o
# RF configurations
-iwlwifi-$(CONFIG_IWLMVM) += cfg/rf-jf.o cfg/rf-hr.o
+iwlwifi-$(CONFIG_IWLMVM) += cfg/rf-jf.o cfg/rf-hr.o cfg/rf-gf.o
iwlwifi-objs += iwl-dbg-tlv.o
iwlwifi-objs += iwl-trans.o
@@ -15,9 +15,6 @@
/* Lowest firmware API version supported */
#define IWL_AX210_UCODE_API_MIN 77
-/* NVM versions */
-#define IWL_AX210_NVM_VERSION 0x0a1d
-
/* Memory offsets and lengths */
#define IWL_AX210_SMEM_OFFSET 0x400000
#define IWL_AX210_SMEM_LEN 0xD0000
@@ -91,19 +88,6 @@ static const struct iwl_family_base_params iwl_ax210_base = {
.ucode_api_max = IWL_AX210_UCODE_API_MAX,
};
-#define IWL_DEVICE_AX210 \
- .led_mode = IWL_LED_RF_STATE, \
- .non_shared_ant = ANT_B, \
- .vht_mu_mimo_supported = true, \
- .ht_params = { \
- .stbc = true, \
- .ldpc = true, \
- .ht40_bands = BIT(NL80211_BAND_2GHZ) | \
- BIT(NL80211_BAND_5GHZ), \
- }, \
- .nvm_ver = IWL_AX210_NVM_VERSION, \
- .nvm_type = IWL_NVM_EXT
-
const struct iwl_mac_cfg iwl_so_mac_cfg = {
.mq_rx_supported = true,
.gen2 = true,
@@ -169,12 +153,6 @@ const char iwl_ax411_killer_1690i_name[] =
const char iwl_ax210_name[] = "Intel(R) Wi-Fi 6 AX210 160MHz";
-const struct iwl_cfg iwl_cfg_ma = {
- .uhb_supported = true,
- IWL_DEVICE_AX210,
- .num_rbds = IWL_NUM_RBDS_HE,
-};
-
MODULE_FIRMWARE(IWL_SO_A_JF_B_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_SO_A_HR_B_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX));
IWL_FW_AND_PNVM(IWL_SO_A_GF_A_FW_PRE, IWL_AX210_UCODE_API_MAX);
new file mode 100644
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2015-2017 Intel Deutschland GmbH
+ * Copyright (C) 2018-2025 Intel Corporation
+ */
+#include "iwl-config.h"
+
+/* NVM versions */
+#define IWL_GF_NVM_VERSION 0x0a1d
+
+const struct iwl_cfg iwl_rf_gf = {
+ .uhb_supported = true,
+ .led_mode = IWL_LED_RF_STATE,
+ .non_shared_ant = ANT_B,
+ .vht_mu_mimo_supported = true,
+ .ht_params = {
+ .stbc = true,
+ .ldpc = true,
+ .ht40_bands = BIT(NL80211_BAND_2GHZ) |
+ BIT(NL80211_BAND_5GHZ),
+ },
+ .nvm_ver = IWL_GF_NVM_VERSION,
+ .nvm_type = IWL_NVM_EXT,
+ .num_rbds = IWL_NUM_RBDS_HE,
+};
@@ -690,7 +690,7 @@ extern const struct iwl_cfg iwl_rf_hr1;
extern const struct iwl_cfg iwl_rf_hr;
extern const struct iwl_cfg iwl_rf_hr_80mhz;
-extern const struct iwl_cfg iwl_cfg_ma;
+extern const struct iwl_cfg iwl_rf_gf;
#endif /* CONFIG_IWLMVM */
#if IS_ENABLED(CONFIG_IWLMLD)
@@ -970,30 +970,30 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
DEVICE(0x51F0), SUBDEV(0x1552)),
IWL_DEV_INFO(iwl_rf_jf, iwl9560_killer_1550i_160_name,
DEVICE(0x51F0), SUBDEV(0x1551)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name,
DEVICE(0x51F0), SUBDEV(0x1691)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name,
DEVICE(0x51F0), SUBDEV(0x1692)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name,
DEVICE(0x51F1), SUBDEV(0x1692)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name,
DEVICE(0x54F0), SUBDEV(0x1691)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name,
DEVICE(0x54F0), SUBDEV(0x1692)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name,
DEVICE(0x7A70), SUBDEV(0x1691)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name,
DEVICE(0x7A70), SUBDEV(0x1692)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name,
DEVICE(0x7AF0), SUBDEV(0x1691)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name,
DEVICE(0x7AF0), SUBDEV(0x1692)),
IWL_DEV_INFO(iwl_rf_jf, iwl9260_1_name,
DEVICE(0x271C), SUBDEV(0x0214)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name,
DEVICE(0x7E40), SUBDEV(0x1691)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name,
DEVICE(0x7E40), SUBDEV(0x1692)),
/* AX200 */
@@ -1139,57 +1139,57 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
DEVICE(0x4DF0), SUBDEV(0x6074)),
/* So with HR */
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x2725), SUBDEV(0x0090)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x0020)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x2020)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x0024)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x0310)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x0510)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x0A10)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0xE020)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0xE024)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x4020)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x6020)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name,
DEVICE(0x2725), SUBDEV(0x6024)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_killer_1675w_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_killer_1675w_name,
DEVICE(0x2725), SUBDEV(0x1673)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_killer_1675x_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_killer_1675x_name,
DEVICE(0x2725), SUBDEV(0x1674)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7A70), SUBDEV(0x0090)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7A70), SUBDEV(0x0098)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name,
DEVICE(0x7A70), SUBDEV(0x00B0)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7A70), SUBDEV(0x0310)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7A70), SUBDEV(0x0510)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7A70), SUBDEV(0x0A10)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7AF0), SUBDEV(0x0090)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7AF0), SUBDEV(0x0098)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name,
DEVICE(0x7AF0), SUBDEV(0x00B0)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7AF0), SUBDEV(0x0310)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7AF0), SUBDEV(0x0510)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name,
DEVICE(0x7AF0), SUBDEV(0x0A10)),
/* So with JF */
@@ -1203,35 +1203,35 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
DEVICE(0x7AF0), SUBDEV(0x1552)),
/* SO with GF2 */
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x51F0), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x51F0), SUBDEV(0x1672)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x51F1), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x51F1), SUBDEV(0x1672)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x54F0), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x54F0), SUBDEV(0x1672)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x7A70), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x7A70), SUBDEV(0x1672)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x7AF0), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x7AF0), SUBDEV(0x1672)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x7F70), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x7F70), SUBDEV(0x1672)),
/* MA with GF2 */
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name,
DEVICE(0x7E40), SUBDEV(0x1671)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name,
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name,
DEVICE(0x7E40), SUBDEV(0x1672)),
IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, MAC_TYPE(PU),
@@ -1379,10 +1379,10 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
MAC_STEP(B), RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB),
/* Ma */
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax201_name, MAC_TYPE(MA), RF_TYPE(HR2),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax201_name, MAC_TYPE(MA), RF_TYPE(HR2),
NO_CDB),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, MAC_TYPE(MA), RF_TYPE(GF)),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax231_name, MAC_TYPE(MA), RF_TYPE(FM),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(MA), RF_TYPE(GF)),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax231_name, MAC_TYPE(MA), RF_TYPE(FM),
NO_CDB),
/* So with Hr */
@@ -1405,9 +1405,9 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB),
/* So-F with Gf */
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, MAC_TYPE(SOF),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SOF),
RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name, MAC_TYPE(SOF),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, MAC_TYPE(SOF),
RF_TYPE(GF), BW_NOT_LIMITED, CDB),
/* SoF with JF2 */
@@ -1427,9 +1427,9 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB),
/* So with GF */
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, MAC_TYPE(SO),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SO),
RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB),
- IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name, MAC_TYPE(SO),
+ IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, MAC_TYPE(SO),
RF_TYPE(GF), BW_NOT_LIMITED, CDB),
/* So with JF2 */