From ebc1a98be713491fc20a6c8a98b2f88647f5e191 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 8 May 2025 15:12:55 +0300 Subject: [PATCH] wifi: iwlwifi: cfg: build ax210 family FW names dynamically Add support for the TY MAC (discrete device) and GF4 RF to the list of MAC/RF types, and use that to remove fw_name_pre for the ax210 family devices. Signed-off-by: Johannes Berg Link: https://patch.msgid.link/20250508121306.1277801-5-miriam.rachel.korenblit@intel.com Signed-off-by: Miri Korenblit --- .../net/wireless/intel/iwlwifi/cfg/ax210.c | 25 ----- .../net/wireless/intel/iwlwifi/iwl-config.h | 4 +- drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 6 ++ drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 102 +++++++++--------- 4 files changed, 58 insertions(+), 79 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index e7bba29fe755..21b1e257f751 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -196,41 +196,18 @@ const char iwl_ax411_killer_1690i_name[] = "Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)"; const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0 = { - .fw_name_pre = IWL_SO_A_JF_B_FW_PRE, IWL_DEVICE_AX210, .num_rbds = IWL_NUM_RBDS_NON_HE, }; const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz = { - .fw_name_pre = IWL_SO_A_JF_B_FW_PRE, IWL_DEVICE_AX210, .num_rbds = IWL_NUM_RBDS_NON_HE, .bw_limit = 80, }; -const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = { - .fw_name_pre = IWL_SO_A_GF_A_FW_PRE, - .uhb_supported = true, - IWL_DEVICE_AX210, - .num_rbds = IWL_NUM_RBDS_AX210_HE, -}; - const char iwl_ax210_name[] = "Intel(R) Wi-Fi 6 AX210 160MHz"; -const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = { - .fw_name_pre = IWL_TY_A_GF_A_FW_PRE, - .uhb_supported = true, - IWL_DEVICE_AX210, - .num_rbds = IWL_NUM_RBDS_AX210_HE, -}; - -const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = { - .fw_name_pre = IWL_SO_A_GF4_A_FW_PRE, - .uhb_supported = true, - IWL_DEVICE_AX210, - .num_rbds = IWL_NUM_RBDS_AX210_HE, -}; - const struct iwl_cfg iwl_cfg_ma = { .uhb_supported = true, IWL_DEVICE_AX210, @@ -238,13 +215,11 @@ const struct iwl_cfg iwl_cfg_ma = { }; const struct iwl_cfg iwl_cfg_so_a0_hr_a0 = { - .fw_name_pre = IWL_SO_A_HR_B_FW_PRE, IWL_DEVICE_AX210, .num_rbds = IWL_NUM_RBDS_AX210_HE, }; const struct iwl_cfg iwl_cfg_so_a0_hr_a0_80mhz = { - .fw_name_pre = IWL_SO_A_HR_B_FW_PRE, IWL_DEVICE_AX210, .num_rbds = IWL_NUM_RBDS_AX210_HE, .bw_limit = 80, diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index f978449af106..0977a683459a 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -412,6 +412,7 @@ struct iwl_cfg { #define IWL_CFG_MAC_TYPE_QU 0x33 #define IWL_CFG_MAC_TYPE_QUZ 0x35 #define IWL_CFG_MAC_TYPE_SO 0x37 +#define IWL_CFG_MAC_TYPE_TY 0x42 #define IWL_CFG_MAC_TYPE_SOF 0x43 #define IWL_CFG_MAC_TYPE_MA 0x44 #define IWL_CFG_MAC_TYPE_BZ 0x46 @@ -673,9 +674,6 @@ extern const struct iwl_cfg iwl_qu_hr_80mhz; extern const struct iwl_cfg iwl_ax200_cfg_cc; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz; -extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0; -extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0; -extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0; extern const struct iwl_cfg iwl_cfg_ma; diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c index acfc3eb89afe..eb57981e4c8c 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c @@ -209,6 +209,11 @@ const char *iwl_drv_get_fwname_pre(struct iwl_trans *trans, char *buf) case IWL_CFG_MAC_TYPE_SO: case IWL_CFG_MAC_TYPE_SOF: mac = "so"; + mac_step = 'a'; + break; + case IWL_CFG_MAC_TYPE_TY: + mac = "ty"; + mac_step = 'a'; break; case IWL_CFG_MAC_TYPE_MA: mac = "ma"; @@ -254,6 +259,7 @@ const char *iwl_drv_get_fwname_pre(struct iwl_trans *trans, char *buf) break; case IWL_CFG_RF_TYPE_GF: rf = "gf"; + rf_step = 'a'; break; case IWL_CFG_RF_TYPE_FM: rf = "fm"; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 934671d3d454..bffe3bb3e3f0 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -970,23 +970,23 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x51F0), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_160_name, DEVICE(0x51F0), SUBDEV(0x1551)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name, DEVICE(0x51F0), SUBDEV(0x1691)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name, DEVICE(0x51F0), SUBDEV(0x1692)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name, DEVICE(0x51F1), SUBDEV(0x1692)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name, DEVICE(0x54F0), SUBDEV(0x1691)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name, DEVICE(0x54F0), SUBDEV(0x1692)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name, DEVICE(0x7A70), SUBDEV(0x1691)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name, DEVICE(0x7A70), SUBDEV(0x1692)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name, DEVICE(0x7AF0), SUBDEV(0x1691)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name, DEVICE(0x7AF0), SUBDEV(0x1692)), IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9260_1_name, @@ -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(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x2725), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x2020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0024)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0xE020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0xE024)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x4020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x6020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x6024)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675w_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_killer_1675w_name, DEVICE(0x2725), SUBDEV(0x1673)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675x_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax210_killer_1675x_name, DEVICE(0x2725), SUBDEV(0x1674)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0098)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name, DEVICE(0x7A70), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0098)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name, DEVICE(0x7AF0), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0A10)), /* So with JF */ @@ -1203,29 +1203,29 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x7AF0), SUBDEV(0x1552)), /* SO with GF2 */ - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, DEVICE(0x51F0), SUBDEV(0x1671)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x51F0), SUBDEV(0x1672)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, DEVICE(0x51F1), SUBDEV(0x1671)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x51F1), SUBDEV(0x1672)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, DEVICE(0x54F0), SUBDEV(0x1671)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x54F0), SUBDEV(0x1672)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, DEVICE(0x7A70), SUBDEV(0x1671)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x7A70), SUBDEV(0x1672)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, DEVICE(0x7AF0), SUBDEV(0x1671)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x7AF0), SUBDEV(0x1672)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, DEVICE(0x7F70), SUBDEV(0x1671)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x7F70), SUBDEV(0x1672)), /* MA with GF2 */ @@ -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(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, MAC_TYPE(SOF), + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, MAC_TYPE(SOF), RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, MAC_TYPE(SOF), + IWL_DEV_INFO(iwl_cfg_ma, 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(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, MAC_TYPE(SO), + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_name, MAC_TYPE(SO), RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, MAC_TYPE(SO), + IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_name, MAC_TYPE(SO), RF_TYPE(GF), BW_NOT_LIMITED, CDB), /* So with JF2 */ -- 2.50.1