wifi: iwlwifi: cfg: add GF RF config

This is equivalent to just the previous iwl_cfg_ma, but
really should also be used for Bz/Gf and Sc/Gf, instead
of those using EHT sizes.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://patch.msgid.link/20250509104454.2582160-6-miriam.rachel.korenblit@intel.com
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
This commit is contained in:
Johannes Berg
2025-05-09 13:44:44 +03:00
committed by Miri Korenblit
parent 2ffa48ab99
commit 3a515211a0
5 changed files with 85 additions and 82 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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,
};

View File

@@ -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)

View File

@@ -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 */