From 0efcd6bbabdd02898e4c9a3dd60fd1af204f7276 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:19 +0300 Subject: [PATCH 01/16] wifi: iwlwifi: cfg: unify and add some Killer devices Unify a number of Killer devices now that we no longer need to distinguish the MAC type, and add a few more that wouldn't have gotten the right name before. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.a16b1c2740f8.I147b97ef2c8e99451806ea0e34a9eb5bff37c326@changeid --- .../net/wireless/intel/iwlwifi/cfg/rf-fm.c | 9 ++ .../net/wireless/intel/iwlwifi/iwl-config.h | 4 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 122 +++++------------- 3 files changed, 43 insertions(+), 92 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c index dfd075bb0865..2d0cad9c5f2c 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c @@ -31,3 +31,12 @@ const struct iwl_rf_cfg iwl_rf_fm_160mhz = { IWL_DEVICE_FM, .bw_limit = 160, }; + +const char iwl_killer_be1750s_name[] = + "Killer(R) Wi-Fi 7 BE1750s 320MHz Wireless Network Adapter (BE201D2W)"; +const char iwl_killer_be1750i_name[] = + "Killer(R) Wi-Fi 7 BE1750i 320MHz Wireless Network Adapter (BE201NGW)"; +const char iwl_killer_be1750w_name[] = + "Killer(TM) Wi-Fi 7 BE1750w 320MHz Wireless Network Adapter (BE200D2W)"; +const char iwl_killer_be1750x_name[] = + "Killer(TM) Wi-Fi 7 BE1750x 320MHz Wireless Network Adapter (BE200NGW)"; diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 719986ccf316..69cbe138bad2 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -642,6 +642,10 @@ extern const char iwl_gl_name[]; extern const char iwl_mtp_name[]; extern const char iwl_dr_name[]; extern const char iwl_br_name[]; +extern const char iwl_killer_be1750s_name[]; +extern const char iwl_killer_be1750i_name[]; +extern const char iwl_killer_be1750w_name[]; +extern const char iwl_killer_be1750x_name[]; #if IS_ENABLED(CONFIG_IWLDVM) extern const struct iwl_rf_cfg iwl5300_agn_cfg; extern const struct iwl_rf_cfg iwl5350_agn_cfg; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 8d4aee2f7ce0..b41b8aa75739 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -944,45 +944,37 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, DEVICE(0x24FD), SUBDEV(0x0012)), +/* HR RF */ + /* FIXME - should have some RF match */ + IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_name, DEVICE(0x2723)), + /* Killer CRFs */ IWL_DEV_INFO(iwl_rf_jf, iwl9260_killer_1550_name, SUBDEV(0x1550)), IWL_DEV_INFO(iwl_rf_jf, iwl9560_killer_1550s_name, SUBDEV(0x1551)), IWL_DEV_INFO(iwl_rf_jf, iwl9560_killer_1550i_name, SUBDEV(0x1552)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name, - DEVICE(0x51F0), SUBDEV(0x1691)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, - DEVICE(0x51F0), SUBDEV(0x1692)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, - DEVICE(0x51F1), SUBDEV(0x1692)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name, - DEVICE(0x54F0), SUBDEV(0x1691)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, - DEVICE(0x54F0), SUBDEV(0x1692)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name, - DEVICE(0x7A70), SUBDEV(0x1691)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, - DEVICE(0x7A70), SUBDEV(0x1692)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name, - DEVICE(0x7AF0), SUBDEV(0x1691)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, - DEVICE(0x7AF0), SUBDEV(0x1692)), + IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, SUBDEV(0x1651)), + IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, SUBDEV(0x1652)), - IWL_DEV_INFO(iwl_rf_jf, iwl9260_1_name, - DEVICE(0x271C), SUBDEV(0x0214)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name, - DEVICE(0x7E40), SUBDEV(0x1691)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, - DEVICE(0x7E40), SUBDEV(0x1692)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, SUBDEV(0x1671)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, SUBDEV(0x1672)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_killer_1675w_name, SUBDEV(0x1673)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_killer_1675x_name, SUBDEV(0x1674)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690s_name, SUBDEV(0x1691)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_killer_1690i_name, SUBDEV(0x1692)), -/* AX200 */ - IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_name, - DEVICE(0x2723)), +/* Killer discrete */ IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_killer_1650w_name, DEVICE(0x2723), SUBDEV(0x1653)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_killer_1650x_name, DEVICE(0x2723), SUBDEV(0x1654)), +/* JF RF */ + IWL_DEV_INFO(iwl_rf_jf, iwl9260_1_name, + DEVICE(0x271C), SUBDEV(0x0214)), + +/* AX200 */ + /* Qu with Hr */ IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x43F0), SUBDEV(0x0070)), @@ -992,10 +984,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x43F0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x43F0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x43F0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x43F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x43F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1010,10 +998,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0xA0F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0xA0F0), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0xA0F0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0xA0F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0xA0F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1032,10 +1016,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x02F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x02F0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x02F0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x02F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x02F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1050,10 +1030,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x06F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x06F0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x06F0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x06F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x06F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1068,10 +1044,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x34F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x34F0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x34F0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x34F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x34F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1087,10 +1059,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x3DF0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x3DF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x3DF0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x3DF0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x3DF0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1106,10 +1074,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x4DF0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x4DF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x4DF0), SUBDEV(0x1651)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x4DF0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, DEVICE(0x4DF0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, @@ -1142,10 +1106,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x2725), SUBDEV(0x6020)), IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x6024)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_killer_1675w_name, - DEVICE(0x2725), SUBDEV(0x1673)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_killer_1675x_name, - DEVICE(0x2725), SUBDEV(0x1674)), IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0090)), IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, @@ -1171,37 +1131,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0A10)), - /* SO with GF2 */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x51F0), SUBDEV(0x1671)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, - DEVICE(0x51F0), SUBDEV(0x1672)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x51F1), SUBDEV(0x1671)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, - DEVICE(0x51F1), SUBDEV(0x1672)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x54F0), SUBDEV(0x1671)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, - DEVICE(0x54F0), SUBDEV(0x1672)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x7A70), SUBDEV(0x1671)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, - DEVICE(0x7A70), SUBDEV(0x1672)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x7AF0), SUBDEV(0x1671)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, - DEVICE(0x7AF0), SUBDEV(0x1672)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x7F70), SUBDEV(0x1671)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675i_name, - DEVICE(0x7F70), SUBDEV(0x1672)), - /* MA with GF2 */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_killer_1675s_name, - DEVICE(0x7E40), SUBDEV(0x1671)), - 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), RF_TYPE(JF1), RF_ID(JF1), @@ -1344,9 +1274,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { RF_TYPE(HR1), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, MAC_TYPE(SO), RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x51f0), SUBDEV(0x1652), - MAC_TYPE(SO), RF_TYPE(HR2)), /* So-F with Hr */ IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, MAC_TYPE(SOF), @@ -1404,6 +1331,17 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { #if IS_ENABLED(CONFIG_IWLMLD) IWL_DEV_INFO(iwl_rf_fm, iwl_ax231_name, MAC_TYPE(MA), RF_TYPE(FM), NO_CDB), + +/* Killer CRFs */ + IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750s_name, SUBDEV(0x1771)), + IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750i_name, SUBDEV(0x1772)), + +/* Killer discrete */ + IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750w_name, + DEVICE(0x272B), SUBDEV(0x1773)), + IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750x_name, + DEVICE(0x272B), SUBDEV(0x1774)), + /* Bz */ IWL_DEV_INFO(iwl_rf_fm, iwl_ax201_name, MAC_TYPE(BZ), RF_TYPE(HR2)), -- 2.51.0 From daf14c9da14611d075eeb957b3afe3f6631956e4 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:20 +0300 Subject: [PATCH 02/16] wifi: iwlwifi: cfg: clean up HR device matching We only need a few entries on top of the Killer ones. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.fa0cde465de0.I6a3f9ed9a7341e2c58c69af50a9f126992a745f2@changeid --- .../net/wireless/intel/iwlwifi/cfg/22000.c | 5 - drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 1 - .../net/wireless/intel/iwlwifi/cfg/rf-hr.c | 5 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 154 +----------------- 4 files changed, 8 insertions(+), 157 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c index 5855cf430798..52e0beebf9ce 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c @@ -123,11 +123,6 @@ const struct iwl_mac_cfg iwl_ax200_mac_cfg = { .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_ax200_killer_1650w_name[] = "Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)"; const char iwl_ax200_killer_1650x_name[] = diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c index 8b07289f4921..6184d7ca55f9 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c @@ -33,7 +33,6 @@ #if !IS_ENABLED(CONFIG_IWLMVM) const char iwl_ax211_name[] = "Intel(R) Wi-Fi 6E AX211 160MHz"; -const char iwl_ax201_name[] = "Intel(R) Wi-Fi 6 AX201 160MHz"; #endif static const struct iwl_family_base_params iwl_bz_base = { diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c index 7d444ee0a187..db02664e3917 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c @@ -35,3 +35,8 @@ const struct iwl_rf_cfg iwl_rf_hr_80mhz = { IWL_DEVICE_HR, .bw_limit = 80, }; + +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"; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index b41b8aa75739..415523acfa40 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -945,7 +945,9 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x24FD), SUBDEV(0x0012)), /* HR RF */ - /* FIXME - should have some RF match */ + IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, RF_TYPE(HR2)), + IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax101_name, RF_TYPE(HR1)), + IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, RF_TYPE(HR2), BW_LIMITED), IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_name, DEVICE(0x2723)), /* Killer CRFs */ @@ -973,114 +975,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_jf, iwl9260_1_name, DEVICE(0x271C), SUBDEV(0x0214)), -/* AX200 */ - - /* Qu with Hr */ - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x4070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x4070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x6074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x6074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x4070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x4070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x4070)), - - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x4070)), - - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0078)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x007C)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x2074)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x4070)), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x6074)), - /* So with HR */ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, DEVICE(0x2725), SUBDEV(0x0090)), @@ -1241,48 +1135,10 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* Qu with Hr */ /* Qu B step */ - IWL_DEV_INFO(iwl_rf_hr1, iwl_ax101_name, MAC_TYPE(QU), - MAC_STEP(B), RF_TYPE(HR1), NO_CDB), - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(B), - RF_TYPE(HR2), BW_LIMITED, NO_CDB), - - /* Qu C step */ - IWL_DEV_INFO(iwl_rf_hr1, iwl_ax101_name, MAC_TYPE(QU), - MAC_STEP(C), RF_TYPE(HR1), NO_CDB), - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(HR2), BW_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), - - /* QuZ */ - IWL_DEV_INFO(iwl_rf_hr1, iwl_ax101_name, MAC_TYPE(QUZ), - RF_TYPE(HR1), NO_CDB), - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, MAC_TYPE(QUZ), - MAC_STEP(B), RF_TYPE(HR2), BW_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, MAC_TYPE(QUZ), - MAC_STEP(B), RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), /* Ma */ - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, MAC_TYPE(MA), RF_TYPE(HR2), - NO_CDB), IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(MA), RF_TYPE(GF)), -/* So with Hr */ - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, MAC_TYPE(SO), - RF_TYPE(HR2), BW_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax101_name, MAC_TYPE(SO), - RF_TYPE(HR1), BW_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, MAC_TYPE(SO), - RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), - -/* So-F with Hr */ - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, MAC_TYPE(SOF), - RF_TYPE(HR2), BW_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax101_name, MAC_TYPE(SOF), - RF_TYPE(HR1), BW_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, MAC_TYPE(SOF), - RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), - /* So-F with Gf */ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SOF), RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), @@ -1343,16 +1199,12 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x272B), SUBDEV(0x1774)), /* Bz */ - IWL_DEV_INFO(iwl_rf_fm, iwl_ax201_name, MAC_TYPE(BZ), RF_TYPE(HR2)), - IWL_DEV_INFO(iwl_rf_fm, iwl_ax211_name, MAC_TYPE(BZ), RF_TYPE(GF)), IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(BZ), RF_TYPE(FM)), IWL_DEV_INFO(iwl_rf_fm, iwl_wh_name, MAC_TYPE(BZ), RF_TYPE(WH)), - IWL_DEV_INFO(iwl_rf_fm, iwl_ax201_name, MAC_TYPE(BZ_W), RF_TYPE(HR2)), - IWL_DEV_INFO(iwl_rf_fm, iwl_ax211_name, MAC_TYPE(BZ_W), RF_TYPE(GF)), IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(BZ_W), RF_TYPE(FM)), -- 2.51.0 From 3de6694beb491b086a538e18c6e20f4434366525 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:21 +0300 Subject: [PATCH 03/16] wifi: iwlwifi: tests: make subdev match test more precise It's OK to match with subdevice_mask as long as that doesn't overlap the RF ID/BW limit/cores fields in that. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.87cc0ad360a8.I9be361caedd7258e8e817d4100c549681396f307@changeid --- drivers/net/wireless/intel/iwlwifi/tests/devinfo.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index 115642c75d10..bd0102ef7384 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -104,9 +104,17 @@ static void devinfo_check_subdev_match(struct kunit *test) if (di->bw_limit == 1) KUNIT_EXPECT_NE(test, di->cfg->bw_limit, 0); + /* if subdevice is ANY we can have RF ID/BW limit/cores */ if (di->subdevice == (u16)IWL_CFG_ANY) continue; + /* same if the subdevice mask doesn't overlap them */ + if (IWL_SUBDEVICE_RF_ID(di->subdevice_mask) == 0 && + IWL_SUBDEVICE_BW_LIM(di->subdevice_mask) == 0 && + IWL_SUBDEVICE_CORES(di->subdevice_mask) == 0) + continue; + + /* but otherwise they shouldn't be used */ KUNIT_EXPECT_EQ(test, di->rf_id, (u8)IWL_CFG_ANY); KUNIT_EXPECT_EQ(test, di->bw_limit, (u8)IWL_CFG_ANY); KUNIT_EXPECT_EQ(test, di->cores, (u8)IWL_CFG_ANY); -- 2.51.0 From 1d5253681ff11c9968453b5c1352de55947755c5 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:22 +0300 Subject: [PATCH 04/16] wifi: iwlwifi: cfg: clean up JF device matching This really only needs to be distinguished based on the RF type, bandwidth limit and possibly diversity (JF1). Some of the names that are defined don't even exist. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.bca83604aa92.I35301d2d8b57c072284fff7bf6682b4a9424e56c@changeid --- drivers/net/wireless/intel/iwlwifi/cfg/9000.c | 21 --- .../net/wireless/intel/iwlwifi/cfg/rf-jf.c | 16 ++ drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 164 ++---------------- 3 files changed, 35 insertions(+), 166 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/9000.c b/drivers/net/wireless/intel/iwlwifi/cfg/9000.c index 816cf72e32e7..ac1fa291cf2f 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/9000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/9000.c @@ -100,26 +100,5 @@ const struct iwl_mac_cfg iwl9560_shared_clk_mac_cfg = { .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK }; -const char iwl9162_name[] = "Intel(R) Wireless-AC 9162"; -const char iwl9260_name[] = "Intel(R) Wireless-AC 9260"; -const char iwl9260_1_name[] = "Intel(R) Wireless-AC 9260-1"; -const char iwl9270_name[] = "Intel(R) Wireless-AC 9270"; -const char iwl9461_name[] = "Intel(R) Wireless-AC 9461"; -const char iwl9462_name[] = "Intel(R) Wireless-AC 9462"; -const char iwl9560_name[] = "Intel(R) Wireless-AC 9560"; -const char iwl9162_160_name[] = "Intel(R) Wireless-AC 9162 160MHz"; -const char iwl9260_160_name[] = "Intel(R) Wireless-AC 9260 160MHz"; -const char iwl9270_160_name[] = "Intel(R) Wireless-AC 9270 160MHz"; -const char iwl9461_160_name[] = "Intel(R) Wireless-AC 9461 160MHz"; -const char iwl9462_160_name[] = "Intel(R) Wireless-AC 9462 160MHz"; -const char iwl9560_160_name[] = "Intel(R) Wireless-AC 9560 160MHz"; - -const char iwl9260_killer_1550_name[] = - "Killer(R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz"; -const char iwl9560_killer_1550i_name[] = - "Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz"; -const char iwl9560_killer_1550s_name[] = - "Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz"; - MODULE_FIRMWARE(IWL9000_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL9260_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c index 60f5fcfb1f46..467eaeae6deb 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c @@ -66,3 +66,19 @@ const struct iwl_rf_cfg iwl_rf_jf_80mhz = { IWL_DEVICE_JF, .bw_limit = 80, }; + +const char iwl9260_name[] = "Intel(R) Wireless-AC 9260"; +const char iwl9461_name[] = "Intel(R) Wireless-AC 9461"; +const char iwl9462_name[] = "Intel(R) Wireless-AC 9462"; +const char iwl9560_name[] = "Intel(R) Wireless-AC 9560"; +const char iwl9260_160_name[] = "Intel(R) Wireless-AC 9260 160MHz"; +const char iwl9461_160_name[] = "Intel(R) Wireless-AC 9461 160MHz"; +const char iwl9462_160_name[] = "Intel(R) Wireless-AC 9462 160MHz"; +const char iwl9560_160_name[] = "Intel(R) Wireless-AC 9560 160MHz"; + +const char iwl9260_killer_1550_name[] = + "Killer(R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz"; +const char iwl9560_killer_1550i_name[] = + "Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz"; +const char iwl9560_killer_1550s_name[] = + "Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz"; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 415523acfa40..d9df88d10324 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -944,6 +944,25 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, DEVICE(0x24FD), SUBDEV(0x0012)), +/* JF1 RF */ + IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, + RF_TYPE(JF1)), + IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, + RF_TYPE(JF1), BW_LIMITED), + IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, + RF_TYPE(JF1), RF_ID(JF1_DIV)), + IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED), +/* JF2 RF */ + IWL_DEV_INFO(iwl_rf_jf, iwl9260_160_name, + RF_TYPE(JF2)), + IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9260_name, + RF_TYPE(JF2), BW_LIMITED), + IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, + RF_TYPE(JF2), RF_ID(JF)), + IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, + RF_TYPE(JF2), RF_ID(JF), BW_LIMITED), + /* HR RF */ IWL_DEV_INFO(iwl_rf_hr, iwl_ax201_name, RF_TYPE(HR2)), IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax101_name, RF_TYPE(HR1)), @@ -972,9 +991,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x2723), SUBDEV(0x1654)), /* JF RF */ - IWL_DEV_INFO(iwl_rf_jf, iwl9260_1_name, - DEVICE(0x271C), SUBDEV(0x0214)), - /* So with HR */ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, DEVICE(0x2725), SUBDEV(0x0090)), @@ -1025,116 +1041,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0A10)), - /* MA with GF2 */ - - IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, MAC_TYPE(PU), - RF_TYPE(JF1), RF_ID(JF1), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, MAC_TYPE(PU), - RF_TYPE(JF1), RF_ID(JF1), - BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, MAC_TYPE(PU), - RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, MAC_TYPE(PU), - RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_LIMITED, CORES(BT), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, MAC_TYPE(PU), - RF_TYPE(JF2), RF_ID(JF), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, MAC_TYPE(PU), - RF_TYPE(JF2), RF_ID(JF), - BW_LIMITED, CORES(BT), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9270_160_name, DEVICE(0x2526), - MAC_TYPE(TH), RF_TYPE(JF2), - BW_NOT_LIMITED, CORES(BT_GNSS), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9270_name, DEVICE(0x2526), - MAC_TYPE(TH), RF_TYPE(JF2), - BW_LIMITED, CORES(BT_GNSS), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9162_160_name, DEVICE(0x271B), - MAC_TYPE(TH), RF_TYPE(JF1), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9162_name, DEVICE(0x271B), - MAC_TYPE(TH), RF_TYPE(JF1), - BW_LIMITED, CORES(BT), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9260_160_name, DEVICE(0x2526), - MAC_TYPE(TH), RF_TYPE(JF2), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9260_name, DEVICE(0x2526), - MAC_TYPE(TH), RF_TYPE(JF2), - BW_LIMITED, CORES(BT), NO_CDB), - -/* Qu with Jf */ - /* Qu B step */ - IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, - MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, - MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1), - BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, - MAC_TYPE(QU), MAC_STEP(B), - RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, - MAC_TYPE(QU), MAC_STEP(B), - RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_LIMITED, CORES(BT), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, - MAC_TYPE(QU), MAC_STEP(B), - RF_TYPE(JF2), RF_ID(JF), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, - MAC_TYPE(QU), MAC_STEP(B), - RF_TYPE(JF2), RF_ID(JF), - BW_LIMITED, CORES(BT), NO_CDB), - - /* Qu C step */ - IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, - MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(JF1), RF_ID(JF1), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, - MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(JF1), RF_ID(JF1), - BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, - MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, - MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_LIMITED, CORES(BT), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, MAC_TYPE(QU), - MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, MAC_TYPE(QU), - MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), - NO_CDB), - - /* QuZ */ - IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), - - IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, MAC_TYPE(QUZ), - RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, MAC_TYPE(QUZ), - RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), - -/* Qu with Hr */ - /* Qu B step */ /* Ma */ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(MA), RF_TYPE(GF)), @@ -1145,44 +1051,12 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, MAC_TYPE(SOF), RF_TYPE(GF), BW_NOT_LIMITED, CDB), -/* SoF with JF2 */ - IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, MAC_TYPE(SOF), - RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, MAC_TYPE(SOF), - RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), - -/* SoF with JF */ - IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), - /* So with GF */ IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SO), RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, MAC_TYPE(SO), RF_TYPE(GF), BW_NOT_LIMITED, CDB), -/* So with JF2 */ - IWL_DEV_INFO(iwl_rf_jf, iwl9560_160_name, MAC_TYPE(SO), - RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9560_name, MAC_TYPE(SO), - RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), - -/* So with JF */ - IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf, iwl9462_160_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9461_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl_rf_jf_80mhz, iwl9462_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), - #endif /* CONFIG_IWLMVM */ #if IS_ENABLED(CONFIG_IWLMLD) IWL_DEV_INFO(iwl_rf_fm, iwl_ax231_name, MAC_TYPE(MA), RF_TYPE(FM), -- 2.51.0 From 7f3791cbe3cf0aa35d4269e1ec5497a9c09761f3 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:23 +0300 Subject: [PATCH 05/16] wifi: iwlwifi: cfg: clean up GF device matching Again some names don't actually exist, and we only need a few entries to cover Ty (discrete) and AX211/AX411. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.8888f6798581.If332ebfc3b3f4a335a79ccee13e90f93b1ee4df7@changeid --- .../net/wireless/intel/iwlwifi/cfg/ax210.c | 17 ---- drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 4 - .../net/wireless/intel/iwlwifi/cfg/rf-gf.c | 17 ++++ drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 80 ++----------------- 4 files changed, 22 insertions(+), 96 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index 2002b14bb82d..15309e6815c7 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -134,24 +134,7 @@ const struct iwl_mac_cfg iwl_ma_mac_cfg = { .umac_prph_offset = 0x300000 }; -const char iwl_ax211_name[] = "Intel(R) Wi-Fi 6E AX211 160MHz"; const char iwl_ax231_name[] = "Intel(R) Wi-Fi 6E AX231 160MHz"; -const char iwl_ax411_name[] = "Intel(R) Wi-Fi 6E AX411 160MHz"; - -const char iwl_ax210_killer_1675w_name[] = - "Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W)"; -const char iwl_ax210_killer_1675x_name[] = - "Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW)"; -const char iwl_ax211_killer_1675s_name[] = - "Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)"; -const char iwl_ax211_killer_1675i_name[] = - "Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)"; -const char iwl_ax411_killer_1690s_name[] = - "Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)"; -const char iwl_ax411_killer_1690i_name[] = - "Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)"; - -const char iwl_ax210_name[] = "Intel(R) Wi-Fi 6 AX210 160MHz"; 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)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c index 6184d7ca55f9..424f92b34510 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c @@ -31,10 +31,6 @@ #define IWL_BZ_A_HR_B_MODULE_FIRMWARE(api) \ IWL_BZ_A_HR_B_FW_PRE "-" __stringify(api) ".ucode" -#if !IS_ENABLED(CONFIG_IWLMVM) -const char iwl_ax211_name[] = "Intel(R) Wi-Fi 6E AX211 160MHz"; -#endif - static const struct iwl_family_base_params iwl_bz_base = { .num_of_queues = 512, .max_tfd_queue_size = 65536, diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c index a90dba322094..f55c286e83be 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c @@ -23,3 +23,20 @@ const struct iwl_rf_cfg iwl_rf_gf = { .nvm_type = IWL_NVM_EXT, .num_rbds = IWL_NUM_RBDS_HE, }; + +const char iwl_ax210_killer_1675w_name[] = + "Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W)"; +const char iwl_ax210_killer_1675x_name[] = + "Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW)"; +const char iwl_ax211_killer_1675s_name[] = + "Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211D2W)"; +const char iwl_ax211_killer_1675i_name[] = + "Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)"; +const char iwl_ax411_killer_1690s_name[] = + "Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)"; +const char iwl_ax411_killer_1690i_name[] = + "Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)"; + +const char iwl_ax210_name[] = "Intel(R) Wi-Fi 6E AX210 160MHz"; +const char iwl_ax211_name[] = "Intel(R) Wi-Fi 6E AX211 160MHz"; +const char iwl_ax411_name[] = "Intel(R) Wi-Fi 6E AX411 160MHz"; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index d9df88d10324..7e6edf6f2040 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -969,6 +969,11 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_hr_80mhz, iwl_ax203_name, RF_TYPE(HR2), BW_LIMITED), IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_name, DEVICE(0x2723)), +/* GF RF */ + IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, RF_TYPE(GF)), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, RF_TYPE(GF), CDB), + IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, DEVICE(0x2725)), + /* Killer CRFs */ IWL_DEV_INFO(iwl_rf_jf, iwl9260_killer_1550_name, SUBDEV(0x1550)), IWL_DEV_INFO(iwl_rf_jf, iwl9560_killer_1550s_name, SUBDEV(0x1551)), @@ -989,74 +994,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x2723), SUBDEV(0x1653)), IWL_DEV_INFO(iwl_rf_hr, iwl_ax200_killer_1650x_name, DEVICE(0x2723), SUBDEV(0x1654)), - -/* JF RF */ - /* So with HR */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x2725), SUBDEV(0x0090)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x0020)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x2020)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x0024)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x0510)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0xE020)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0xE024)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x4020)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x6020)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax210_name, - DEVICE(0x2725), SUBDEV(0x6024)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7A70), SUBDEV(0x0090)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7A70), SUBDEV(0x0098)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, - DEVICE(0x7A70), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7A70), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7A70), SUBDEV(0x0510)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7A70), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7AF0), SUBDEV(0x0090)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7AF0), SUBDEV(0x0098)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, - DEVICE(0x7AF0), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7AF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7AF0), SUBDEV(0x0510)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, - DEVICE(0x7AF0), SUBDEV(0x0A10)), - - -/* Ma */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(MA), RF_TYPE(GF)), - -/* So-F with Gf */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SOF), - RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, MAC_TYPE(SOF), - RF_TYPE(GF), BW_NOT_LIMITED, CDB), - -/* So with GF */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SO), - RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax411_name, MAC_TYPE(SO), - RF_TYPE(GF), BW_NOT_LIMITED, CDB), - #endif /* CONFIG_IWLMVM */ #if IS_ENABLED(CONFIG_IWLMLD) IWL_DEV_INFO(iwl_rf_fm, iwl_ax231_name, MAC_TYPE(MA), RF_TYPE(FM), @@ -1073,14 +1010,10 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x272B), SUBDEV(0x1774)), /* Bz */ - IWL_DEV_INFO(iwl_rf_fm, iwl_ax211_name, MAC_TYPE(BZ), RF_TYPE(GF)), - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(BZ), RF_TYPE(FM)), IWL_DEV_INFO(iwl_rf_fm, iwl_wh_name, MAC_TYPE(BZ), RF_TYPE(WH)), - IWL_DEV_INFO(iwl_rf_fm, iwl_ax211_name, MAC_TYPE(BZ_W), RF_TYPE(GF)), - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(BZ_W), RF_TYPE(FM)), IWL_DEV_INFO(iwl_rf_fm, iwl_wh_name, MAC_TYPE(BZ_W), RF_TYPE(WH)), @@ -1092,21 +1025,18 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { BW_LIMITED, NO_CDB), /* Sc */ - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SC), RF_TYPE(GF)), IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(SC), RF_TYPE(FM)), IWL_DEV_INFO(iwl_rf_wh, iwl_wh_name, MAC_TYPE(SC), RF_TYPE(WH), BW_NOT_LIMITED), IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_sp_name, MAC_TYPE(SC), RF_TYPE(WH), BW_LIMITED), IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SC2), RF_TYPE(GF)), IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(SC2), RF_TYPE(FM)), IWL_DEV_INFO(iwl_rf_wh, iwl_wh_name, MAC_TYPE(SC2), RF_TYPE(WH), BW_NOT_LIMITED), IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_sp_name, MAC_TYPE(SC2), RF_TYPE(WH), BW_LIMITED), IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC2), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_gf, iwl_ax211_name, MAC_TYPE(SC2F), RF_TYPE(GF)), IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(SC2F), RF_TYPE(FM)), IWL_DEV_INFO(iwl_rf_wh, iwl_wh_name, MAC_TYPE(SC2F), RF_TYPE(WH), BW_NOT_LIMITED), -- 2.51.0 From 9e4cb38739574b21e5a1ee0b05c3bf5aebf3d347 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:24 +0300 Subject: [PATCH 06/16] wifi: iwlwifi: cfg: fix and clean up FM/WH device matching We only need a few entries, and there don't seem to be any such devices actually limited to 160 MHz. Also add PCI IDs for the new Killer device on LNL platforms. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.ba2964bee671.If7aaaf10b236115e39b17d37296341de6c821069@changeid --- drivers/net/wireless/intel/iwlwifi/Makefile | 2 +- .../net/wireless/intel/iwlwifi/cfg/ax210.c | 2 - drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 5 -- .../net/wireless/intel/iwlwifi/cfg/rf-fm.c | 9 ++++ .../net/wireless/intel/iwlwifi/cfg/rf-wh.c | 15 ++++++ drivers/net/wireless/intel/iwlwifi/cfg/sc.c | 1 - .../net/wireless/intel/iwlwifi/iwl-config.h | 23 +++++---- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 49 +++++++------------ 8 files changed, 56 insertions(+), 50 deletions(-) create mode 100644 drivers/net/wireless/intel/iwlwifi/cfg/rf-wh.c diff --git a/drivers/net/wireless/intel/iwlwifi/Makefile b/drivers/net/wireless/intel/iwlwifi/Makefile index 0d7daa6d3ebd..89e7df5bf6ef 100644 --- a/drivers/net/wireless/intel/iwlwifi/Makefile +++ b/drivers/net/wireless/intel/iwlwifi/Makefile @@ -23,7 +23,7 @@ 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 cfg/rf-gf.o -iwlwifi-$(CONFIG_IWLMLD) += cfg/rf-fm.o +iwlwifi-$(CONFIG_IWLMLD) += cfg/rf-fm.o cfg/rf-wh.o iwlwifi-objs += iwl-dbg-tlv.o iwlwifi-objs += iwl-trans.o diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index 15309e6815c7..18d0de13f564 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -134,8 +134,6 @@ const struct iwl_mac_cfg iwl_ma_mac_cfg = { .umac_prph_offset = 0x300000 }; -const char iwl_ax231_name[] = "Intel(R) Wi-Fi 6E AX231 160MHz"; - 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); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c index 424f92b34510..05e45fff8b36 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c @@ -107,11 +107,6 @@ const struct iwl_mac_cfg iwl_gl_mac_cfg = { .low_latency_xtal = true, }; -const char iwl_fm_name[] = "Intel(R) Wi-Fi 7 BE201 320MHz"; -const char iwl_wh_name[] = "Intel(R) Wi-Fi 7 BE211 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"; - MODULE_FIRMWARE(IWL_BZ_A_HR_B_MODULE_FIRMWARE(IWL_BZ_UCODE_API_MAX)); IWL_FW_AND_PNVM(IWL_BZ_A_GF_A_FW_PRE, IWL_BZ_UCODE_API_MAX); IWL_FW_AND_PNVM(IWL_BZ_A_GF4_A_FW_PRE, IWL_BZ_UCODE_API_MAX); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c index 2d0cad9c5f2c..456a666c8dfd 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c @@ -40,3 +40,12 @@ const char iwl_killer_be1750w_name[] = "Killer(TM) Wi-Fi 7 BE1750w 320MHz Wireless Network Adapter (BE200D2W)"; const char iwl_killer_be1750x_name[] = "Killer(TM) Wi-Fi 7 BE1750x 320MHz Wireless Network Adapter (BE200NGW)"; +const char iwl_killer_be1790s_name[] = + "Killer(R) Wi-Fi 7 BE1790s 320MHz Wireless Network Adapter (BE401D2W)"; +const char iwl_killer_be1790i_name[] = + "Killer(R) Wi-Fi 7 BE1790i 320MHz Wireless Network Adapter (BE401NGW)"; + +const char iwl_be201_name[] = "Intel(R) Wi-Fi 7 BE201 320MHz"; +const char iwl_be200_name[] = "Intel(R) Wi-Fi 7 BE200 320MHz"; +const char iwl_be202_name[] = "Intel(R) Wi-Fi 7 BE202 160MHz"; +const char iwl_be401_name[] = "Intel(R) Wi-Fi 7 BE401 320MHz"; diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-wh.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-wh.c new file mode 100644 index 000000000000..97735175cb0e --- /dev/null +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-wh.c @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Copyright (C) 2025 Intel Corporation + */ +#include "iwl-config.h" + +/* currently iwl_rf_wh/iwl_rf_wh_160mhz are just defines for the FM ones */ + +const char iwl_killer_be1775s_name[] = + "Killer(R) Wi-Fi 7 BE1775s 320MHz Wireless Network Adapter (BE211D2W)"; +const char iwl_killer_be1775i_name[] = + "Killer(R) Wi-Fi 7 BE1775i 320MHz Wireless Network Adapter (BE211NGW)"; + +const char iwl_be211_name[] = "Intel(R) Wi-Fi 7 BE211 320MHz"; +const char iwl_be213_name[] = "Intel(R) Wi-Fi 7 BE213 160MHz"; diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c index 5ccb8fff01f4..3078e7d0c1fe 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c @@ -105,7 +105,6 @@ const struct iwl_mac_cfg iwl_sc_mac_cfg = { .ltr_delay = IWL_CFG_TRANS_LTR_DELAY_2500US, }; -const char iwl_sp_name[] = "Intel(R) Wi-Fi 7 BE213 160MHz"; const char iwl_pe_name[] = "Intel(R) Wi-Fi 8 BN201"; IWL_FW_AND_PNVM(IWL_SC_A_FM_B_FW_PRE, IWL_SC_UCODE_API_MAX); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 69cbe138bad2..7bf18658763e 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -632,20 +632,24 @@ extern const char iwl_ax411_killer_1690s_name[]; extern const char iwl_ax411_killer_1690i_name[]; extern const char iwl_ax210_name[]; extern const char iwl_ax211_name[]; -extern const char iwl_ax231_name[]; extern const char iwl_ax411_name[]; -extern const char iwl_fm_name[]; -extern const char iwl_wh_name[]; -extern const char iwl_sp_name[]; -extern const char iwl_pe_name[]; -extern const char iwl_gl_name[]; -extern const char iwl_mtp_name[]; -extern const char iwl_dr_name[]; -extern const char iwl_br_name[]; extern const char iwl_killer_be1750s_name[]; extern const char iwl_killer_be1750i_name[]; extern const char iwl_killer_be1750w_name[]; extern const char iwl_killer_be1750x_name[]; +extern const char iwl_killer_be1790s_name[]; +extern const char iwl_killer_be1790i_name[]; +extern const char iwl_be201_name[]; +extern const char iwl_be200_name[]; +extern const char iwl_be202_name[]; +extern const char iwl_be401_name[]; +extern const char iwl_be213_name[]; +extern const char iwl_killer_be1775s_name[]; +extern const char iwl_killer_be1775i_name[]; +extern const char iwl_be211_name[]; +extern const char iwl_pe_name[]; +extern const char iwl_dr_name[]; +extern const char iwl_br_name[]; #if IS_ENABLED(CONFIG_IWLDVM) extern const struct iwl_rf_cfg iwl5300_agn_cfg; extern const struct iwl_rf_cfg iwl5350_agn_cfg; @@ -702,7 +706,6 @@ extern const struct iwl_rf_cfg iwl_rf_fm_160mhz; #define iwl_rf_wh iwl_rf_fm #define iwl_rf_wh_160mhz iwl_rf_fm_160mhz #define iwl_rf_pe iwl_rf_fm -#define iwl_rf_pe_160mhz iwl_rf_fm_160mhz #endif /* CONFIG_IWLMLD */ #endif /* __IWL_CONFIG_H__ */ diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 7e6edf6f2040..f52c3c19beb7 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -531,6 +531,8 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct pci_device_id iwl_hw_card_ids[] = { {IWL_PCI_DEVICE(0xA840, 0x40E0, iwl_bz_mac_cfg)}, {IWL_PCI_DEVICE(0xA840, 0x4110, iwl_bz_mac_cfg)}, {IWL_PCI_DEVICE(0xA840, 0x4314, iwl_bz_mac_cfg)}, + {IWL_PCI_DEVICE(0xA840, 0x1775, iwl_bz_mac_cfg)}, + {IWL_PCI_DEVICE(0xA840, 0x1776, iwl_bz_mac_cfg)}, {IWL_PCI_DEVICE(0x7740, PCI_ANY_ID, iwl_bz_mac_cfg)}, {IWL_PCI_DEVICE(0x4D40, PCI_ANY_ID, iwl_bz_mac_cfg)}, @@ -996,12 +998,20 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x2723), SUBDEV(0x1654)), #endif /* CONFIG_IWLMVM */ #if IS_ENABLED(CONFIG_IWLMLD) - IWL_DEV_INFO(iwl_rf_fm, iwl_ax231_name, MAC_TYPE(MA), RF_TYPE(FM), - NO_CDB), +/* FM RF */ + IWL_DEV_INFO(iwl_rf_fm, iwl_be201_name, RF_TYPE(FM)), + IWL_DEV_INFO(iwl_rf_fm, iwl_be401_name, RF_TYPE(FM), CDB), + /* the discrete NICs got the RF B0, it's only for the name anyway */ + IWL_DEV_INFO(iwl_rf_fm, iwl_be200_name, RF_TYPE(FM), + DEVICE(0x272B), RF_STEP(B)), + IWL_DEV_INFO(iwl_rf_fm_160mhz, iwl_be202_name, + RF_TYPE(FM), BW_LIMITED), /* Killer CRFs */ IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750s_name, SUBDEV(0x1771)), IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750i_name, SUBDEV(0x1772)), + IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1790s_name, SUBDEV(0x1791)), + IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1790i_name, SUBDEV(0x1792)), /* Killer discrete */ IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750w_name, @@ -1009,44 +1019,21 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_fm, iwl_killer_be1750x_name, DEVICE(0x272B), SUBDEV(0x1774)), -/* Bz */ - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(BZ), RF_TYPE(FM)), +/* WH RF */ + IWL_DEV_INFO(iwl_rf_wh, iwl_be211_name, RF_TYPE(WH)), + IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_be213_name, RF_TYPE(WH), BW_LIMITED), - IWL_DEV_INFO(iwl_rf_fm, iwl_wh_name, MAC_TYPE(BZ), RF_TYPE(WH)), - - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(BZ_W), RF_TYPE(FM)), - - IWL_DEV_INFO(iwl_rf_fm, iwl_wh_name, MAC_TYPE(BZ_W), RF_TYPE(WH)), - -/* Ga (Gl) */ - IWL_DEV_INFO(iwl_rf_fm, iwl_gl_name, MAC_TYPE(GL), RF_TYPE(FM), - BW_NOT_LIMITED, NO_CDB), - IWL_DEV_INFO(iwl_rf_fm_160mhz, iwl_mtp_name, MAC_TYPE(GL), RF_TYPE(FM), - BW_LIMITED, NO_CDB), +/* Killer */ + IWL_DEV_INFO(iwl_rf_wh, iwl_killer_be1775s_name, SUBDEV(0x1776)), + IWL_DEV_INFO(iwl_rf_wh, iwl_killer_be1775i_name, SUBDEV(0x1775)), /* Sc */ - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(SC), RF_TYPE(FM)), - IWL_DEV_INFO(iwl_rf_wh, iwl_wh_name, MAC_TYPE(SC), RF_TYPE(WH), - BW_NOT_LIMITED), - IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_sp_name, MAC_TYPE(SC), RF_TYPE(WH), - BW_LIMITED), IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(SC2), RF_TYPE(FM)), - IWL_DEV_INFO(iwl_rf_wh, iwl_wh_name, MAC_TYPE(SC2), RF_TYPE(WH), - BW_NOT_LIMITED), - IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_sp_name, MAC_TYPE(SC2), RF_TYPE(WH), - BW_LIMITED), IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC2), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_fm, iwl_fm_name, MAC_TYPE(SC2F), RF_TYPE(FM)), - IWL_DEV_INFO(iwl_rf_wh, iwl_wh_name, MAC_TYPE(SC2F), RF_TYPE(WH), - BW_NOT_LIMITED), - IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_sp_name, MAC_TYPE(SC2F), RF_TYPE(WH), - BW_LIMITED), IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC2F), RF_TYPE(PE)), /* Dr */ IWL_DEV_INFO(iwl_rf_pe, iwl_dr_name, MAC_TYPE(DR), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_wh, iwl_dr_name, MAC_TYPE(DR), RF_TYPE(WH)), /* Br */ IWL_DEV_INFO(iwl_rf_pe, iwl_br_name, MAC_TYPE(BR), RF_TYPE(PE)), -- 2.51.0 From 910edaea547cfde9f67b47110d11f3adfe254bba Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:25 +0300 Subject: [PATCH 07/16] wifi: iwlwifi: cfg: fix PE RF names There are a couple of variants of this, match them correctly to their names and clean up a bit. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.d03eaad5be56.I276a09f0cad364e51ed4730ca81fbe504e61f2c7@changeid --- drivers/net/wireless/intel/iwlwifi/Makefile | 2 +- drivers/net/wireless/intel/iwlwifi/cfg/rf-pe.c | 16 ++++++++++++++++ drivers/net/wireless/intel/iwlwifi/cfg/sc.c | 2 -- drivers/net/wireless/intel/iwlwifi/iwl-config.h | 6 +++++- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 17 +++++++---------- 5 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 drivers/net/wireless/intel/iwlwifi/cfg/rf-pe.c diff --git a/drivers/net/wireless/intel/iwlwifi/Makefile b/drivers/net/wireless/intel/iwlwifi/Makefile index 89e7df5bf6ef..031babc65a0d 100644 --- a/drivers/net/wireless/intel/iwlwifi/Makefile +++ b/drivers/net/wireless/intel/iwlwifi/Makefile @@ -23,7 +23,7 @@ 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 cfg/rf-gf.o -iwlwifi-$(CONFIG_IWLMLD) += cfg/rf-fm.o cfg/rf-wh.o +iwlwifi-$(CONFIG_IWLMLD) += cfg/rf-fm.o cfg/rf-wh.o cfg/rf-pe.o iwlwifi-objs += iwl-dbg-tlv.o iwlwifi-objs += iwl-trans.o diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/rf-pe.c b/drivers/net/wireless/intel/iwlwifi/cfg/rf-pe.c new file mode 100644 index 000000000000..483f21659eff --- /dev/null +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-pe.c @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Copyright (C) 2025 Intel Corporation + */ +#include "iwl-config.h" + +/* currently iwl_rf_wh/iwl_rf_wh_160mhz are just defines for the FM ones */ + +const char iwl_killer_bn1850w2_name[] = + "Killer(R) Wi-Fi 8 BN1850w2 320MHz Wireless Network Adapter (BN201.D2W)"; +const char iwl_killer_bn1850i_name[] = + "Killer(R) Wi-Fi 8 BN1850i 320MHz Wireless Network Adapter (BN201.NGW)"; + +const char iwl_bn201_name[] = "Intel(R) Wi-Fi 8 BN201"; +const char iwl_be221_name[] = "Intel(R) Wi-Fi 7 BE221"; +const char iwl_be223_name[] = "Intel(R) Wi-Fi 7 BE223"; diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c index 3078e7d0c1fe..b2e4d4035296 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c @@ -105,8 +105,6 @@ const struct iwl_mac_cfg iwl_sc_mac_cfg = { .ltr_delay = IWL_CFG_TRANS_LTR_DELAY_2500US, }; -const char iwl_pe_name[] = "Intel(R) Wi-Fi 8 BN201"; - IWL_FW_AND_PNVM(IWL_SC_A_FM_B_FW_PRE, IWL_SC_UCODE_API_MAX); IWL_FW_AND_PNVM(IWL_SC_A_FM_C_FW_PRE, IWL_SC_UCODE_API_MAX); MODULE_FIRMWARE(IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 7bf18658763e..5b3229304616 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -647,7 +647,11 @@ extern const char iwl_be213_name[]; extern const char iwl_killer_be1775s_name[]; extern const char iwl_killer_be1775i_name[]; extern const char iwl_be211_name[]; -extern const char iwl_pe_name[]; +extern const char iwl_killer_bn1850w2_name[]; +extern const char iwl_killer_bn1850i_name[]; +extern const char iwl_bn201_name[]; +extern const char iwl_be221_name[]; +extern const char iwl_be223_name[]; extern const char iwl_dr_name[]; extern const char iwl_br_name[]; #if IS_ENABLED(CONFIG_IWLDVM) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index f52c3c19beb7..e2f9b1dea58f 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -1023,20 +1023,17 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_rf_wh, iwl_be211_name, RF_TYPE(WH)), IWL_DEV_INFO(iwl_rf_wh_160mhz, iwl_be213_name, RF_TYPE(WH), BW_LIMITED), +/* PE RF */ + IWL_DEV_INFO(iwl_rf_pe, iwl_bn201_name, RF_TYPE(PE)), + IWL_DEV_INFO(iwl_rf_pe, iwl_be223_name, RF_TYPE(PE), SUBDEV(0x0524)), + IWL_DEV_INFO(iwl_rf_pe, iwl_be221_name, RF_TYPE(PE), SUBDEV(0x0324)), + /* Killer */ IWL_DEV_INFO(iwl_rf_wh, iwl_killer_be1775s_name, SUBDEV(0x1776)), IWL_DEV_INFO(iwl_rf_wh, iwl_killer_be1775i_name, SUBDEV(0x1775)), -/* Sc */ - IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC2), RF_TYPE(PE)), - IWL_DEV_INFO(iwl_rf_pe, iwl_pe_name, MAC_TYPE(SC2F), RF_TYPE(PE)), - -/* Dr */ - IWL_DEV_INFO(iwl_rf_pe, iwl_dr_name, MAC_TYPE(DR), RF_TYPE(PE)), - -/* Br */ - IWL_DEV_INFO(iwl_rf_pe, iwl_br_name, MAC_TYPE(BR), RF_TYPE(PE)), + IWL_DEV_INFO(iwl_rf_pe, iwl_killer_bn1850w2_name, SUBDEV(0x1851)), + IWL_DEV_INFO(iwl_rf_pe, iwl_killer_bn1850i_name, SUBDEV(0x1852)), #endif /* CONFIG_IWLMLD */ }; EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_dev_info_table); -- 2.51.0 From b745c307d0a849c26e29f486cb890f50ed637faa Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:26 +0300 Subject: [PATCH 08/16] wifi: iwlwifi: cfg: add a couple of older devices There are some devices that are misidentified, such as 7265-N and Killer 1435 variants. Add their names, and for some of them also add the PCI IDs to match at all. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.ca03a90c294e.I04d64964c664d49ab16760d754968f09c607f36a@changeid --- drivers/net/wireless/intel/iwlwifi/cfg/8000.c | 5 +++ .../net/wireless/intel/iwlwifi/iwl-config.h | 2 ++ drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 36 +++++++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/8000.c b/drivers/net/wireless/intel/iwlwifi/cfg/8000.c index 6bfc8e38296b..b56574006ee0 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/8000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/8000.c @@ -105,6 +105,11 @@ const char iwl8265_2ac_name[] = "Intel(R) Dual Band Wireless-AC 8265"; const char iwl8275_2ac_name[] = "Intel(R) Dual Band Wireless-AC 8275"; const char iwl4165_2ac_name[] = "Intel(R) Dual Band Wireless-AC 4165"; +const char iwl_killer_1435i_name[] = + "Killer(R) Wireless-AC 1435i Wireless Network Adapter (8265D2W)"; +const char iwl_killer_1434_kix_name[] = + "Killer(R) Wireless-AC 1435-KIX Wireless Network Adapter (8265NGW)"; + const struct iwl_rf_cfg iwl8260_cfg = { .fw_name_pre = IWL8000_FW_PRE, IWL_DEVICE_8260, diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 5b3229304616..b1caa7205850 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -598,6 +598,8 @@ extern const char iwl8260_2ac_name[]; extern const char iwl8265_2ac_name[]; extern const char iwl8275_2ac_name[]; extern const char iwl4165_2ac_name[]; +extern const char iwl_killer_1435i_name[]; +extern const char iwl_killer_1434_kix_name[]; extern const char iwl9162_name[]; extern const char iwl9260_name[]; extern const char iwl9260_1_name[]; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index e2f9b1dea58f..39d46b83b5da 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -434,6 +434,8 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct pci_device_id iwl_hw_card_ids[] = { {IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24F3, 0x4010, iwl8000_mac_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xC030, iwl8000_mac_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xD030, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8000_mac_cfg)}, @@ -461,6 +463,8 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct pci_device_id iwl_hw_card_ids[] = { {IWL_PCI_DEVICE(0x24FD, 0x0012, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24FD, 0x0014, iwl8000_mac_cfg)}, {IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8000_mac_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1431, iwl8000_mac_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1432, iwl8000_mac_cfg)}, /* 9000 Series */ {IWL_PCI_DEVICE(0x2526, PCI_ANY_ID, iwl9000_mac_cfg)}, @@ -920,21 +924,49 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x095A), SUBDEV(0x5020)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x502A)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5090)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5190)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5100)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5400)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x5420)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5490)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5C10)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5590)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x9000)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x900A)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x9400)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, DEVICE(0x095B)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095B), SUBDEV(0x520A)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, DEVICE(0x095B), SUBDEV(0x5302)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095B), SUBDEV(0x5200)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, DEVICE(0x095B), SUBDEV(0x5202)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095B), SUBDEV(0x9200)), /* 8000 Series */ IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, DEVICE(0x24F3)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2n_name, + DEVICE(0x24F3), SUBDEV(0x0004)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2n_name, + DEVICE(0x24F3), SUBDEV(0x0044)), IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, DEVICE(0x24FD)), IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, @@ -945,6 +977,10 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x24FD), SUBDEV(0x1012)), IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, DEVICE(0x24FD), SUBDEV(0x0012)), + IWL_DEV_INFO(iwl8265_cfg, iwl_killer_1435i_name, + DEVICE(0x24FD), SUBDEV(0x1431)), + IWL_DEV_INFO(iwl8265_cfg, iwl_killer_1434_kix_name, + DEVICE(0x24FD), SUBDEV(0x1432)), /* JF1 RF */ IWL_DEV_INFO(iwl_rf_jf, iwl9461_160_name, -- 2.51.0 From d227b73f1ed5f33d526378c4a70a8fbe13244428 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 10 May 2025 21:48:27 +0300 Subject: [PATCH 09/16] wifi: iwlwifi: cfg: remove MAC type/step matching Now that it's all split into MAC and RF configs, remove the matching on MAC type and step. If we ever need to do something based on the MAC step, we'll have to find some new mechanism (since the MAC type is known already from the PCI IDs table, but not the step), or just handle the (likely small) differences in code. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250510214621.fca99a5ab315.Iae27b781221fd29845493adf2c29d9e4f7a9c33b@changeid --- drivers/net/wireless/intel/iwlwifi/iwl-config.h | 5 +---- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 17 +---------------- .../net/wireless/intel/iwlwifi/tests/devinfo.c | 5 ++--- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index b1caa7205850..0b18f44af774 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -482,9 +482,7 @@ struct iwl_dev_info { u16 subdevice; u16 subdevice_mask; u16 rf_type; - u8 mac_type; u8 bw_limit; - u8 mac_step; u8 rf_step; u8 rf_id; u8 cores; @@ -498,8 +496,7 @@ struct iwl_dev_info { extern const struct iwl_dev_info iwl_dev_info_table[]; extern const unsigned int iwl_dev_info_table_size; const struct iwl_dev_info * -iwl_pci_find_dev_info(u16 device, u16 subsystem_device, - u8 mac_type, u8 mac_step, u16 rf_type, u8 cdb, +iwl_pci_find_dev_info(u16 device, u16 subsystem_device, u16 rf_type, u8 cdb, u8 jacket, u8 rf_id, u8 bw_limit, u8 cores, u8 rf_step); extern const struct pci_device_id iwl_hw_card_ids[]; #endif diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 39d46b83b5da..1d149843f335 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -561,8 +561,6 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); .device = IWL_CFG_ANY, \ .subdevice = IWL_CFG_ANY, \ .subdevice_mask = ~0, \ - .mac_type = IWL_CFG_ANY, \ - .mac_step = IWL_CFG_ANY, \ .rf_type = IWL_CFG_ANY, \ .rf_step = IWL_CFG_ANY, \ .bw_limit = IWL_CFG_ANY, \ @@ -580,8 +578,6 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); #define SUBDEV_MASKED(v, m) \ .subdevice = (v), \ .subdevice_mask = (m) -#define MAC_TYPE(n) .mac_type = IWL_CFG_MAC_TYPE_##n -#define MAC_STEP(n) .mac_step = SILICON_##n##_STEP #define RF_TYPE(n) .rf_type = IWL_CFG_RF_TYPE_##n #define RF_STEP(n) .rf_step = SILICON_##n##_STEP #define CORES(n) .cores = IWL_CFG_CORES_##n @@ -1220,8 +1216,7 @@ out: #define PCI_CFG_RETRY_TIMEOUT 0x041 VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info * -iwl_pci_find_dev_info(u16 device, u16 subsystem_device, - u8 mac_type, u8 mac_step, u16 rf_type, u8 cdb, +iwl_pci_find_dev_info(u16 device, u16 subsystem_device, u16 rf_type, u8 cdb, u8 jacket, u8 rf_id, u8 bw_limit, u8 cores, u8 rf_step) { int num_devices = ARRAY_SIZE(iwl_dev_info_table); @@ -1241,14 +1236,6 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device, dev_info->subdevice != (subsystem_device & dev_info->subdevice_mask)) continue; - if (dev_info->mac_type != (u8)IWL_CFG_ANY && - dev_info->mac_type != mac_type) - continue; - - if (dev_info->mac_step != (u8)IWL_CFG_ANY && - dev_info->mac_step != mac_step) - continue; - if (dev_info->rf_type != (u16)IWL_CFG_ANY && dev_info->rf_type != rf_type) continue; @@ -1392,8 +1379,6 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) info.hw_rev, info.hw_rf_id); dev_info = iwl_pci_find_dev_info(pdev->device, pdev->subsystem_device, - CSR_HW_REV_TYPE(info.hw_rev), - info.hw_rev_step, CSR_HW_RFID_TYPE(info.hw_rf_id), CSR_HW_RFID_IS_CDB(info.hw_rf_id), CSR_HW_RFID_IS_JACKET(info.hw_rf_id), diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index bd0102ef7384..69b26de4aff8 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -13,8 +13,8 @@ MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING"); static void iwl_pci_print_dev_info(const char *pfx, const struct iwl_dev_info *di) { - printk(KERN_DEBUG "%sdev=%.4x,subdev=%.4x,mac_type=%.4x,mac_step=%.4x,rf_type=%.4x,cdb=%d,jacket=%d,rf_id=%.2x,bw_limit=%d,cores=%.2x\n", - pfx, di->device, di->subdevice, di->mac_type, di->mac_step, + printk(KERN_DEBUG "%sdev=%.4x subdev=%.4x rf_type=%.4x cdb=%d jacket=%d rf_id=%.2x bw_limit=%d cores=%.2x\n", + pfx, di->device, di->subdevice, di->rf_type, di->cdb, di->jacket, di->rf_id, di->bw_limit, di->cores); } @@ -28,7 +28,6 @@ static void devinfo_table_order(struct kunit *test) const struct iwl_dev_info *ret; ret = iwl_pci_find_dev_info(di->device, di->subdevice, - di->mac_type, di->mac_step, di->rf_type, di->cdb, di->jacket, di->rf_id, di->bw_limit, -- 2.51.0 From 691f1f69ba312410a1fe16fff071ac7fbced1fc7 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 11 May 2025 19:53:07 +0300 Subject: [PATCH 10/16] wifi: iwlwifi: cfg: mark Ty devices as discrete Looks like these were never marked discrete, since they always used the iwl_so_mac_cfg (earlier iwl_so_trans_cfg). Mark them as discrete since they are. Signed-off-by: Johannes Berg PerCI-Ready: Miriam Rachel Korenblit Tested-by: Miriam Rachel Korenblit Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250511195137.f3a75ae80f28.I79964f4426389f04798b70841a9e847be48bf9c3@changeid --- drivers/net/wireless/intel/iwlwifi/cfg/ax210.c | 10 ++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-config.h | 1 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index 18d0de13f564..3bf9fdbe01c6 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -88,6 +88,16 @@ static const struct iwl_family_base_params iwl_ax210_base = { .ucode_api_max = IWL_AX210_UCODE_API_MAX, }; +const struct iwl_mac_cfg iwl_ty_mac_cfg = { + .mq_rx_supported = true, + .gen2 = true, + .device_family = IWL_DEVICE_FAMILY_AX210, + .base = &iwl_ax210_base, + .umac_prph_offset = 0x300000, + /* TODO: the following values need to be checked */ + .xtal_latency = 500, +}; + const struct iwl_mac_cfg iwl_so_mac_cfg = { .mq_rx_supported = true, .gen2 = true, diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 0b18f44af774..363ef060d68e 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -527,6 +527,7 @@ extern const struct iwl_mac_cfg iwl_qu_mac_cfg; extern const struct iwl_mac_cfg iwl_qu_medium_latency_mac_cfg; extern const struct iwl_mac_cfg iwl_qu_long_latency_mac_cfg; extern const struct iwl_mac_cfg iwl_ax200_mac_cfg; +extern const struct iwl_mac_cfg iwl_ty_mac_cfg; extern const struct iwl_mac_cfg iwl_so_mac_cfg; extern const struct iwl_mac_cfg iwl_so_long_latency_mac_cfg; extern const struct iwl_mac_cfg iwl_so_long_latency_imr_mac_cfg; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 1d149843f335..d270dfaa6c83 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -488,8 +488,8 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct pci_device_id iwl_hw_card_ids[] = { {IWL_PCI_DEVICE(0x2723, PCI_ANY_ID, iwl_ax200_mac_cfg)}, -/* So devices */ - {IWL_PCI_DEVICE(0x2725, PCI_ANY_ID, iwl_so_mac_cfg)}, +/* Ty/So devices */ + {IWL_PCI_DEVICE(0x2725, PCI_ANY_ID, iwl_ty_mac_cfg)}, {IWL_PCI_DEVICE(0x7A70, PCI_ANY_ID, iwl_so_long_latency_imr_mac_cfg)}, {IWL_PCI_DEVICE(0x7AF0, PCI_ANY_ID, iwl_so_mac_cfg)}, {IWL_PCI_DEVICE(0x51F0, PCI_ANY_ID, iwl_so_long_latency_mac_cfg)}, -- 2.51.0 From fabddb0267607d483408308d113ec8599038ec04 Mon Sep 17 00:00:00 2001 From: Pagadala Yesu Anjaneyulu Date: Sun, 11 May 2025 19:53:08 +0300 Subject: [PATCH 11/16] wifi: iwlwifi: Add helper function to extract device ID Add iwl_trans_get_device_id() to extract the device ID from the hw_id member in the iwl_trans structure. hw_id member contains both sub-device ID and device ID, with the device ID occupying bits 16 to 31. Signed-off-by: Pagadala Yesu Anjaneyulu Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250511195137.4411402701f2.I81cde20de05e3bb993977f8d4bbf90707819347f@changeid --- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h index d76caf5bf4c9..57a7747c92c4 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h @@ -832,6 +832,8 @@ struct iwl_txq { * @hw_crf_id: the device CRF ID * @hw_wfpm_id: the device wfpm ID * @hw_id: the ID of the device / sub-device + * Bits 0:15 represent the sub-device ID + * Bits 16:31 represent the device ID. * @pcie_link_speed: current PCIe link speed (%PCI_EXP_LNKSTA_CLS_*), * only valid for discrete (not integrated) NICs * @num_rxqs: number of RX queues allocated by the transport @@ -1263,4 +1265,9 @@ static inline void iwl_trans_set_info(struct iwl_trans *trans, *write = *info; } +static inline u16 iwl_trans_get_device_id(struct iwl_trans *trans) +{ + return u32_get_bits(trans->info.hw_id, GENMASK(31, 16)); +} + #endif /* __iwl_trans_h__ */ -- 2.51.0 From 2538406172989c04a49447e7adfac1bdbbba6567 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 11 May 2025 19:53:09 +0300 Subject: [PATCH 12/16] wifi: iwlwifi: cfg: clean up dr/br configs We don't need the configs that won't end up being used, such as the "br" config for discrete devices, remove them. Also remove the module firmware for test chips, that's never needed. For now keep the iwl_dr_mac_cfg even if it's unused, we'll add platforms with it once we have their PCI IDs. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250511195137.15e2056ec40f.I75a6ce4ad0b14d2b4413615f05523a8f62f08954@changeid --- drivers/net/wireless/intel/iwlwifi/cfg/dr.c | 23 +------------------ .../net/wireless/intel/iwlwifi/iwl-config.h | 3 --- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 3 --- 3 files changed, 1 insertion(+), 28 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/dr.c b/drivers/net/wireless/intel/iwlwifi/cfg/dr.c index ecf36a8a1135..45e55cef42ea 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/dr.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/dr.c @@ -19,15 +19,9 @@ #define IWL_DR_SMEM_LEN 0xD0000 #define IWL_DR_A_PE_A_FW_PRE "iwlwifi-dr-a0-pe-a0" -#define IWL_BR_A_PET_A_FW_PRE "iwlwifi-br-a0-petc-a0" -#define IWL_BR_A_PE_A_FW_PRE "iwlwifi-br-a0-pe-a0" #define IWL_DR_A_PE_A_FW_MODULE_FIRMWARE(api) \ IWL_DR_A_PE_A_FW_PRE "-" __stringify(api) ".ucode" -#define IWL_BR_A_PET_A_FW_MODULE_FIRMWARE(api) \ - IWL_BR_A_PET_A_FW_PRE "-" __stringify(api) ".ucode" -#define IWL_BR_A_PE_A_FW_MODULE_FIRMWARE(api) \ - IWL_BR_A_PE_A_FW_PRE "-" __stringify(api) ".ucode" static const struct iwl_family_base_params iwl_dr_base = { .num_of_queues = 512, @@ -95,20 +89,5 @@ const struct iwl_mac_cfg iwl_dr_mac_cfg = { .ltr_delay = IWL_CFG_TRANS_LTR_DELAY_2500US, }; -const char iwl_dr_name[] = "Intel(R) TBD Dr device"; - -const struct iwl_mac_cfg iwl_br_mac_cfg = { - .device_family = IWL_DEVICE_FAMILY_DR, - .base = &iwl_dr_base, - .mq_rx_supported = true, - .gen2 = true, - .umac_prph_offset = 0x300000, - .xtal_latency = 12000, - .low_latency_xtal = true, -}; - -const char iwl_br_name[] = "Intel(R) TBD Br device"; - MODULE_FIRMWARE(IWL_DR_A_PE_A_FW_MODULE_FIRMWARE(IWL_DR_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL_BR_A_PET_A_FW_MODULE_FIRMWARE(IWL_DR_UCODE_API_MAX)); -MODULE_FIRMWARE(IWL_BR_A_PE_A_FW_MODULE_FIRMWARE(IWL_DR_UCODE_API_MAX)); + diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 363ef060d68e..84befef470cb 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -536,7 +536,6 @@ extern const struct iwl_mac_cfg iwl_bz_mac_cfg; extern const struct iwl_mac_cfg iwl_gl_mac_cfg; extern const struct iwl_mac_cfg iwl_sc_mac_cfg; extern const struct iwl_mac_cfg iwl_dr_mac_cfg; -extern const struct iwl_mac_cfg iwl_br_mac_cfg; extern const char iwl1000_bgn_name[]; extern const char iwl1000_bg_name[]; @@ -652,8 +651,6 @@ extern const char iwl_killer_bn1850i_name[]; extern const char iwl_bn201_name[]; extern const char iwl_be221_name[]; extern const char iwl_be223_name[]; -extern const char iwl_dr_name[]; -extern const char iwl_br_name[]; #if IS_ENABLED(CONFIG_IWLDVM) extern const struct iwl_rf_cfg iwl5300_agn_cfg; extern const struct iwl_rf_cfg iwl5350_agn_cfg; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index d270dfaa6c83..8ffc3a0e7862 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -545,9 +545,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct pci_device_id iwl_hw_card_ids[] = { {IWL_PCI_DEVICE(0xE340, PCI_ANY_ID, iwl_sc_mac_cfg)}, {IWL_PCI_DEVICE(0xD340, PCI_ANY_ID, iwl_sc_mac_cfg)}, {IWL_PCI_DEVICE(0x6E70, PCI_ANY_ID, iwl_sc_mac_cfg)}, - -/* Dr devices */ - {IWL_PCI_DEVICE(0x272F, PCI_ANY_ID, iwl_dr_mac_cfg)}, #endif /* CONFIG_IWLMLD */ {0} -- 2.51.0 From ee92656eba26d1b8b52704d32280b4de59b7f069 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 11 May 2025 19:53:10 +0300 Subject: [PATCH 13/16] wifi: iwlwifi: cfg: reduce configuration struct size We don't need the CORES() match nor jacket (which really doesn't even make sense to match to the RF anyway), and since the subdevice masks we care about are contiguous, we can encode them as highest and lowest bit set (automatically.) By encoding whether to match or not as separate flags and taking advantage of the limited range of the RF type, step and ID we can reduce the amount of memory needed for the table, while also making the logic (apart perhaps from the subdevice mask) easier to understand. This reduces the size of the module by about 1.5KiB on x86-64. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250511195137.38a805a7c96f.Ieece00476cea6054b0827cd075eb8ba5943373df@changeid --- .../net/wireless/intel/iwlwifi/iwl-config.h | 26 ++++--- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 76 ++++++++----------- .../wireless/intel/iwlwifi/tests/devinfo.c | 69 +++++++++++++---- 3 files changed, 102 insertions(+), 69 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 84befef470cb..91f22ce36d74 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -478,18 +478,22 @@ struct iwl_rf_cfg { #define IWL_SUBDEVICE_CORES(subdevice) ((u16)((subdevice) & 0x1C00) >> 10) struct iwl_dev_info { - u16 device; - u16 subdevice; - u16 subdevice_mask; - u16 rf_type; - u8 bw_limit; - u8 rf_step; - u8 rf_id; - u8 cores; - u8 cdb; - u8 jacket; const struct iwl_rf_cfg *cfg; const char *name; + u16 device; + u16 subdevice; + u32 subdevice_m_l:4, + subdevice_m_h:4, + match_rf_type:1, + rf_type:9, + match_bw_limit:1, + bw_limit:1, + match_rf_step:1, + rf_step:4, + match_rf_id:1, + rf_id:4, + match_cdb:1, + cdb:1; }; #if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS) @@ -497,7 +501,7 @@ extern const struct iwl_dev_info iwl_dev_info_table[]; extern const unsigned int iwl_dev_info_table_size; const struct iwl_dev_info * iwl_pci_find_dev_info(u16 device, u16 subsystem_device, u16 rf_type, u8 cdb, - u8 jacket, u8 rf_id, u8 bw_limit, u8 cores, u8 rf_step); + u8 rf_id, u8 bw_limit, u8 rf_step); extern const struct pci_device_id iwl_hw_card_ids[]; #endif diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 8ffc3a0e7862..656f8b06c27b 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -557,32 +557,33 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); .name = _name, \ .device = IWL_CFG_ANY, \ .subdevice = IWL_CFG_ANY, \ - .subdevice_mask = ~0, \ - .rf_type = IWL_CFG_ANY, \ - .rf_step = IWL_CFG_ANY, \ - .bw_limit = IWL_CFG_ANY, \ - .jacket = IWL_CFG_ANY, \ - .cores = IWL_CFG_ANY, \ - .rf_id = IWL_CFG_ANY, \ - .cdb = IWL_CFG_ANY, \ + .subdevice_m_h = 15, \ __VA_ARGS__ \ } #define IWL_DEV_INFO(_cfg, _name, ...) \ _IWL_DEV_INFO(_cfg, _name, __VA_ARGS__) -#define DEVICE(n) .device = (n) -#define SUBDEV(n) .subdevice = (n) -#define SUBDEV_MASKED(v, m) \ - .subdevice = (v), \ - .subdevice_mask = (m) -#define RF_TYPE(n) .rf_type = IWL_CFG_RF_TYPE_##n -#define RF_STEP(n) .rf_step = SILICON_##n##_STEP -#define CORES(n) .cores = IWL_CFG_CORES_##n -#define RF_ID(n) .rf_id = IWL_CFG_RF_ID_##n -#define NO_CDB .cdb = IWL_CFG_NO_CDB -#define CDB .cdb = IWL_CFG_CDB -#define BW_NOT_LIMITED .bw_limit = 0 -#define BW_LIMITED .bw_limit = 1 +#define DEVICE(n) .device = (n) +#define SUBDEV(n) .subdevice = (n) +#define _LOWEST_BIT(n) (__builtin_ffs(n) - 1) +#define _BIT_ABOVE_MASK(n) ((n) + (1 << _LOWEST_BIT(n))) +#define _HIGHEST_BIT(n) (__builtin_ffs(_BIT_ABOVE_MASK(n)) - 2) +#define _IS_POW2(n) (((n) & ((n) - 1)) == 0) +#define _IS_CONTIG(n) _IS_POW2(_BIT_ABOVE_MASK(n)) +#define _CHECK_MASK(m) BUILD_BUG_ON_ZERO(!_IS_CONTIG(m)) +#define SUBDEV_MASKED(v, m) .subdevice = (v) + _CHECK_MASK(m), \ + .subdevice_m_l = _LOWEST_BIT(m), \ + .subdevice_m_h = _HIGHEST_BIT(m) +#define RF_TYPE(n) .match_rf_type = 1, \ + .rf_type = IWL_CFG_RF_TYPE_##n +#define RF_STEP(n) .match_rf_step = 1, \ + .rf_step = SILICON_##n##_STEP +#define RF_ID(n) .match_rf_id = 1, \ + .rf_id = IWL_CFG_RF_ID_##n +#define NO_CDB .match_cdb = 1, .cdb = 0 +#define CDB .match_cdb = 1, .cdb = 1 +#define BW_NOT_LIMITED .match_bw_limit = 1, .bw_limit = 0 +#define BW_LIMITED .match_bw_limit = 1, .bw_limit = 1 VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { #if IS_ENABLED(CONFIG_IWLDVM) @@ -1214,7 +1215,7 @@ out: VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info * iwl_pci_find_dev_info(u16 device, u16 subsystem_device, u16 rf_type, u8 cdb, - u8 jacket, u8 rf_id, u8 bw_limit, u8 cores, u8 rf_step) + u8 rf_id, u8 bw_limit, u8 rf_step) { int num_devices = ARRAY_SIZE(iwl_dev_info_table); int i; @@ -1224,41 +1225,32 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device, u16 rf_type, u8 cdb, for (i = num_devices - 1; i >= 0; i--) { const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i]; + u16 subdevice_mask; if (dev_info->device != (u16)IWL_CFG_ANY && dev_info->device != device) continue; - if (dev_info->subdevice != (u16)IWL_CFG_ANY && - dev_info->subdevice != (subsystem_device & dev_info->subdevice_mask)) - continue; + subdevice_mask = GENMASK(dev_info->subdevice_m_h, + dev_info->subdevice_m_l); - if (dev_info->rf_type != (u16)IWL_CFG_ANY && - dev_info->rf_type != rf_type) - continue; - - if (dev_info->cdb != (u8)IWL_CFG_ANY && - dev_info->cdb != cdb) + if (dev_info->subdevice != (u16)IWL_CFG_ANY && + dev_info->subdevice != (subsystem_device & subdevice_mask)) continue; - if (dev_info->jacket != (u8)IWL_CFG_ANY && - dev_info->jacket != jacket) + if (dev_info->match_rf_type && dev_info->rf_type != rf_type) continue; - if (dev_info->rf_id != (u8)IWL_CFG_ANY && - dev_info->rf_id != rf_id) + if (dev_info->match_cdb && dev_info->cdb != cdb) continue; - if (dev_info->bw_limit != (u8)IWL_CFG_ANY && - dev_info->bw_limit != bw_limit) + if (dev_info->match_rf_id && dev_info->rf_id != rf_id) continue; - if (dev_info->cores != (u8)IWL_CFG_ANY && - dev_info->cores != cores) + if (dev_info->match_bw_limit && dev_info->bw_limit != bw_limit) continue; - if (dev_info->rf_step != (u8)IWL_CFG_ANY && - dev_info->rf_step != rf_step) + if (dev_info->match_rf_step && dev_info->rf_step != rf_step) continue; return dev_info; @@ -1378,10 +1370,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) dev_info = iwl_pci_find_dev_info(pdev->device, pdev->subsystem_device, CSR_HW_RFID_TYPE(info.hw_rf_id), CSR_HW_RFID_IS_CDB(info.hw_rf_id), - CSR_HW_RFID_IS_JACKET(info.hw_rf_id), IWL_SUBDEVICE_RF_ID(pdev->subsystem_device), IWL_SUBDEVICE_BW_LIM(pdev->subsystem_device), - IWL_SUBDEVICE_CORES(pdev->subsystem_device), CSR_HW_RFID_STEP(info.hw_rf_id)); if (dev_info) { iwl_trans->cfg = dev_info->cfg; diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index 69b26de4aff8..784433bb246a 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -13,10 +13,50 @@ MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING"); static void iwl_pci_print_dev_info(const char *pfx, const struct iwl_dev_info *di) { - printk(KERN_DEBUG "%sdev=%.4x subdev=%.4x rf_type=%.4x cdb=%d jacket=%d rf_id=%.2x bw_limit=%d cores=%.2x\n", - pfx, di->device, di->subdevice, - di->rf_type, di->cdb, di->jacket, di->rf_id, di->bw_limit, - di->cores); + u16 subdevice_mask = GENMASK(di->subdevice_m_h, di->subdevice_m_l); + char buf[100] = {}; + int pos = 0; + + if (di->match_rf_type) + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " rf_type=%03x", di->rf_type); + else + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " rf_type=*"); + + if (di->match_bw_limit) + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " bw_limit=%d", di->bw_limit); + else + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " bw_limit=*"); + + if (di->match_rf_step) + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " rf_step=%c", + di->rf_step == SILICON_Z_STEP ? 'Z' : + 'A' + di->rf_step); + else + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " rf_step=*"); + + if (di->match_rf_id) + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " rf_id=0x%x", di->rf_id); + else + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " rf_id=*"); + + if (di->match_cdb) + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " cdb=%d", di->cdb); + else + pos += scnprintf(buf + pos, sizeof(buf) - pos, + " cdb=*"); + + + printk(KERN_DEBUG "%sdev=%04x subdev=%04x/%04x%s\n", + pfx, di->device, di->subdevice, subdevice_mask, buf); } static void devinfo_table_order(struct kunit *test) @@ -29,9 +69,8 @@ static void devinfo_table_order(struct kunit *test) ret = iwl_pci_find_dev_info(di->device, di->subdevice, di->rf_type, di->cdb, - di->jacket, di->rf_id, - di->bw_limit, - di->cores, di->rf_step); + di->rf_id, di->bw_limit, + di->rf_step); if (!ret) { iwl_pci_print_dev_info("No entry found for: ", di); KUNIT_FAIL(test, @@ -98,25 +137,25 @@ static void devinfo_check_subdev_match(struct kunit *test) { for (int i = 0; i < iwl_dev_info_table_size; i++) { const struct iwl_dev_info *di = &iwl_dev_info_table[i]; + u16 subdevice_mask = GENMASK(di->subdevice_m_h, + di->subdevice_m_l); /* if BW limit bit is matched then must have a limit */ - if (di->bw_limit == 1) + if (di->match_bw_limit == 1 && di->bw_limit == 1) KUNIT_EXPECT_NE(test, di->cfg->bw_limit, 0); - /* if subdevice is ANY we can have RF ID/BW limit/cores */ + /* if subdevice is ANY we can have RF ID/BW limit */ if (di->subdevice == (u16)IWL_CFG_ANY) continue; /* same if the subdevice mask doesn't overlap them */ - if (IWL_SUBDEVICE_RF_ID(di->subdevice_mask) == 0 && - IWL_SUBDEVICE_BW_LIM(di->subdevice_mask) == 0 && - IWL_SUBDEVICE_CORES(di->subdevice_mask) == 0) + if (IWL_SUBDEVICE_RF_ID(subdevice_mask) == 0 && + IWL_SUBDEVICE_BW_LIM(subdevice_mask) == 0) continue; /* but otherwise they shouldn't be used */ - KUNIT_EXPECT_EQ(test, di->rf_id, (u8)IWL_CFG_ANY); - KUNIT_EXPECT_EQ(test, di->bw_limit, (u8)IWL_CFG_ANY); - KUNIT_EXPECT_EQ(test, di->cores, (u8)IWL_CFG_ANY); + KUNIT_EXPECT_EQ(test, (int)di->match_rf_id, 0); + KUNIT_EXPECT_EQ(test, (int)di->match_bw_limit, 0); } } -- 2.51.0 From 579724de9ee349b5a110fa9e9f65b53fb6bf834e Mon Sep 17 00:00:00 2001 From: Miri Korenblit Date: Sun, 27 Apr 2025 22:22:45 +0300 Subject: [PATCH 14/16] wifi: iwlwifi: stop supporting TX_CMD_API_S_VER_8 This version is not used on any device. Don't support it. Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/fw/api/tx.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h b/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h index 0b59fabde7f0..67355ac243c5 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h @@ -298,8 +298,7 @@ struct iwl_tx_cmd_gen3 { __le32 rate_n_flags; u8 reserved[8]; struct ieee80211_hdr hdr[]; -} __packed; /* TX_CMD_API_S_VER_8, - * TX_CMD_API_S_VER_10, +} __packed; /* TX_CMD_API_S_VER_10, * TX_CMD_API_S_VER_11 */ -- 2.51.0 From 1c97c73cdab0afc47465791b7b793141eada85eb Mon Sep 17 00:00:00 2001 From: Miri Korenblit Date: Sun, 11 May 2025 19:53:12 +0300 Subject: [PATCH 15/16] wifi: iwlwifi: use normal versioning convention for iwl_tx_cmd We have iwl_tx_cmd for devices older than 22000, iwl_tx_cmd_gen2 for 22000 devices, and iwl_tx_cmd_gen3 ax210 and up. But the convention for all other APIs is to have the latest version without any prefix and the older ones - with a _vX prefix, where X is the highest version that this struct support. The term 'gen' was introduced as the name of the (back then) new transport, and should not be used as a device name (for that we have the actual names: 22000, ax210, etc.) Now as a new transport, called 'gen3', is going to be written and it can be confused with this API. Move iwl_tx_cmd to use the regular versioning convention. Reviewed-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250511195137.806e40c8f767.Ibc0e95e43a6fa6d47f72823bf804314d5db84618@changeid --- .../wireless/intel/iwlwifi/fw/api/commands.h | 6 ++--- .../net/wireless/intel/iwlwifi/fw/api/tdls.h | 6 ++--- .../net/wireless/intel/iwlwifi/fw/api/tx.h | 18 +++++++-------- .../net/wireless/intel/iwlwifi/iwl-trans.c | 6 ++--- drivers/net/wireless/intel/iwlwifi/mld/tx.c | 4 ++-- .../net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 6 ++--- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 16 +++++++------- .../net/wireless/intel/iwlwifi/pcie/tx-gen2.c | 22 +++++++++---------- drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 16 +++++++------- 10 files changed, 51 insertions(+), 51 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/commands.h b/drivers/net/wireless/intel/iwlwifi/fw/api/commands.h index d43adb6f9220..1c86a858aaab 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/commands.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/commands.h @@ -2,7 +2,7 @@ /* * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2022, 2024 Intel Corporation + * Copyright (C) 2018-2022, 2024-2025 Intel Corporation */ #ifndef __iwl_fw_api_commands_h__ #define __iwl_fw_api_commands_h__ @@ -145,8 +145,8 @@ enum iwl_legacy_cmds { REMOVE_STA = 0x19, /** - * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2 or - * &struct iwl_tx_cmd_gen3, + * @TX_CMD: uses &struct iwl_tx_cmd_v6 or &struct iwl_tx_cmd_v9 or + * &struct iwl_tx_cmd, * response in &struct iwl_tx_resp or * &struct iwl_tx_resp_v3 */ diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h b/drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h index cfa6532a3cdd..58d5a6ef633e 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2012-2014, 2018, 2024 Intel Corporation + * Copyright (C) 2012-2014, 2018, 2024-2025 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016-2017 Intel Deutschland GmbH */ @@ -50,7 +50,7 @@ struct iwl_tdls_channel_switch_timing { */ struct iwl_tdls_channel_switch_frame { __le32 switch_time_offset; - struct iwl_tx_cmd tx_cmd; + struct iwl_tx_cmd_v6 tx_cmd; u8 data[IWL_TDLS_CH_SW_FRAME_MAX_SIZE]; } __packed; /* TDLS_STA_CHANNEL_SWITCH_FRAME_API_S_VER_1 */ @@ -131,7 +131,7 @@ struct iwl_tdls_config_cmd { struct iwl_tdls_sta_info sta_info[IWL_TDLS_STA_COUNT]; __le32 pti_req_data_offset; - struct iwl_tx_cmd pti_req_tx_cmd; + struct iwl_tx_cmd_v6 pti_req_tx_cmd; u8 pti_req_template[]; } __packed; /* TDLS_CONFIG_CMD_API_S_VER_1 */ diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h b/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h index 67355ac243c5..557832563f89 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/tx.h @@ -151,7 +151,7 @@ enum iwl_tx_cmd_sec_ctrl { #define IWL_LOW_RETRY_LIMIT 7 /** - * enum iwl_tx_offload_assist_flags_pos - set %iwl_tx_cmd offload_assist values + * enum iwl_tx_offload_assist_flags_pos - set %iwl_tx_cmd_v6 offload_assist values * @TX_CMD_OFFLD_IP_HDR: offset to start of IP header (in words) * from mac header end. For normal case it is 4 words for SNAP. * note: tx_cmd, mac header and pad are not counted in the offset. @@ -181,7 +181,7 @@ enum iwl_tx_offload_assist_flags_pos { /* TODO: complete documentation for try_cnt and btkill_cnt */ /** - * struct iwl_tx_cmd - TX command struct to FW + * struct iwl_tx_cmd_v6 - TX command struct to FW * ( TX_CMD = 0x1c ) * @len: in bytes of the payload, see below for details * @offload_assist: TX offload configuration @@ -221,7 +221,7 @@ enum iwl_tx_offload_assist_flags_pos { * After the struct fields the MAC header is placed, plus any padding, * and then the actial payload. */ -struct iwl_tx_cmd { +struct iwl_tx_cmd_v6 { __le16 len; __le16 offload_assist; __le32 tx_flags; @@ -258,7 +258,7 @@ struct iwl_dram_sec_info { } __packed; /* DRAM_SEC_INFO_API_S_VER_1 */ /** - * struct iwl_tx_cmd_gen2 - TX command struct to FW for 22000 devices + * struct iwl_tx_cmd_v9 - TX command struct to FW for 22000 devices * ( TX_CMD = 0x1c ) * @len: in bytes of the payload, see below for details * @offload_assist: TX offload configuration @@ -268,7 +268,7 @@ struct iwl_dram_sec_info { * cleared. Combination of RATE_MCS_* * @hdr: 802.11 header */ -struct iwl_tx_cmd_gen2 { +struct iwl_tx_cmd_v9 { __le16 len; __le16 offload_assist; __le32 flags; @@ -279,7 +279,7 @@ struct iwl_tx_cmd_gen2 { TX_CMD_API_S_VER_9 */ /** - * struct iwl_tx_cmd_gen3 - TX command struct to FW for AX210+ devices + * struct iwl_tx_cmd - TX command struct to FW for AX210+ devices * ( TX_CMD = 0x1c ) * @len: in bytes of the payload, see below for details * @flags: combination of &enum iwl_tx_cmd_flags @@ -290,7 +290,7 @@ struct iwl_tx_cmd_gen2 { * @reserved: reserved * @hdr: 802.11 header */ -struct iwl_tx_cmd_gen3 { +struct iwl_tx_cmd { __le16 len; __le16 flags; __le32 offload_assist; @@ -748,7 +748,7 @@ struct iwl_compressed_ba_notif { * @frame: the template of the beacon frame */ struct iwl_mac_beacon_cmd_v6 { - struct iwl_tx_cmd tx; + struct iwl_tx_cmd_v6 tx; __le32 template_id; __le32 tim_idx; __le32 tim_size; @@ -767,7 +767,7 @@ struct iwl_mac_beacon_cmd_v6 { * @frame: the template of the beacon frame */ struct iwl_mac_beacon_cmd_v7 { - struct iwl_tx_cmd tx; + struct iwl_tx_cmd_v6 tx; __le32 template_id; __le32 tim_idx; __le32 tim_size; diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c index b8165ee2b1e8..51bedd09dc69 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c @@ -287,13 +287,13 @@ int iwl_trans_init(struct iwl_trans *trans) return -EINVAL; if (!trans->mac_cfg->gen2) { - txcmd_size = sizeof(struct iwl_tx_cmd); + txcmd_size = sizeof(struct iwl_tx_cmd_v6); txcmd_align = sizeof(void *); } else if (trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_AX210) { - txcmd_size = sizeof(struct iwl_tx_cmd_gen2); + txcmd_size = sizeof(struct iwl_tx_cmd_v9); txcmd_align = 64; } else { - txcmd_size = sizeof(struct iwl_tx_cmd_gen3); + txcmd_size = sizeof(struct iwl_tx_cmd); txcmd_align = 128; } diff --git a/drivers/net/wireless/intel/iwlwifi/mld/tx.c b/drivers/net/wireless/intel/iwlwifi/mld/tx.c index 4d4d3308a90d..3b4b575aadaa 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/tx.c @@ -488,7 +488,7 @@ static __le32 iwl_mld_get_tx_rate_n_flags(struct iwl_mld *mld, } static void -iwl_mld_fill_tx_cmd_hdr(struct iwl_tx_cmd_gen3 *tx_cmd, +iwl_mld_fill_tx_cmd_hdr(struct iwl_tx_cmd *tx_cmd, struct sk_buff *skb, bool amsdu) { struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); @@ -534,7 +534,7 @@ iwl_mld_fill_tx_cmd(struct iwl_mld *mld, struct sk_buff *skb, struct ieee80211_hdr *hdr = (void *)skb->data; struct iwl_mld_sta *mld_sta = sta ? iwl_mld_sta_from_mac80211(sta) : NULL; - struct iwl_tx_cmd_gen3 *tx_cmd; + struct iwl_tx_cmd *tx_cmd; bool amsdu = ieee80211_is_data_qos(hdr->frame_control) && (*ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_A_MSDU_PRESENT); diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c index 7a103163b31c..9098a36530cc 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c @@ -976,7 +976,7 @@ u8 iwl_mvm_mac_ctxt_get_beacon_rate(struct iwl_mvm *mvm, static void iwl_mvm_mac_ctxt_set_tx(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct sk_buff *beacon, - struct iwl_tx_cmd *tx) + struct iwl_tx_cmd_v6 *tx) { struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); struct ieee80211_tx_info *info; diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h index 6df5158836db..a4f412e750d0 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h @@ -1837,9 +1837,9 @@ int iwl_mvm_tx_skb_sta(struct iwl_mvm *mvm, struct sk_buff *skb, struct ieee80211_sta *sta); int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb); void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb, - struct iwl_tx_cmd *tx_cmd, + struct iwl_tx_cmd_v6 *tx_cmd, struct ieee80211_tx_info *info, u8 sta_id); -void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd *tx_cmd, +void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd_v6 *tx_cmd, struct ieee80211_tx_info *info, struct ieee80211_sta *sta, __le16 fc); void iwl_mvm_mac_itxq_xmit(struct ieee80211_hw *hw, struct ieee80211_txq *txq); @@ -1870,7 +1870,7 @@ int iwl_mvm_set_sta_pkt_ext(struct iwl_mvm *mvm, void iwl_mvm_async_handlers_purge(struct iwl_mvm *mvm); static inline void iwl_mvm_set_tx_cmd_ccmp(struct ieee80211_tx_info *info, - struct iwl_tx_cmd *tx_cmd) + struct iwl_tx_cmd_v6 *tx_cmd) { struct ieee80211_key_conf *keyconf = info->control.hw_key; diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c index a8a2c77e5696..ac2cf1b8ce23 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -148,7 +148,7 @@ out: * Sets most of the Tx cmd's fields */ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb, - struct iwl_tx_cmd *tx_cmd, + struct iwl_tx_cmd_v6 *tx_cmd, struct ieee80211_tx_info *info, u8 sta_id) { struct ieee80211_hdr *hdr = (void *)skb->data; @@ -395,7 +395,7 @@ static __le32 iwl_mvm_get_tx_rate_n_flags(struct iwl_mvm *mvm, /* * Sets the fields in the Tx cmd that are rate related */ -void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd *tx_cmd, +void iwl_mvm_set_tx_cmd_rate(struct iwl_mvm *mvm, struct iwl_tx_cmd_v6 *tx_cmd, struct ieee80211_tx_info *info, struct ieee80211_sta *sta, __le16 fc) { @@ -458,7 +458,7 @@ static inline void iwl_mvm_set_tx_cmd_pn(struct ieee80211_tx_info *info, */ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm, struct ieee80211_tx_info *info, - struct iwl_tx_cmd *tx_cmd, + struct iwl_tx_cmd_v6 *tx_cmd, struct sk_buff *skb_frag, int hdrlen) { @@ -556,7 +556,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb, { struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; struct iwl_device_tx_cmd *dev_cmd; - struct iwl_tx_cmd *tx_cmd; + struct iwl_tx_cmd_v6 *tx_cmd; dev_cmd = iwl_trans_alloc_tx_cmd(mvm->trans); @@ -600,7 +600,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb, if (mvm->trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) { - struct iwl_tx_cmd_gen3 *cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd *cmd = (void *)dev_cmd->payload; u32 offload_assist = iwl_mvm_tx_csum(mvm, skb, info, amsdu); @@ -615,7 +615,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb, cmd->flags = cpu_to_le16(flags); cmd->rate_n_flags = rate_n_flags; } else { - struct iwl_tx_cmd_gen2 *cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd_v9 *cmd = (void *)dev_cmd->payload; u16 offload_assist = iwl_mvm_tx_csum(mvm, skb, info, amsdu); @@ -633,7 +633,7 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb, goto out; } - tx_cmd = (struct iwl_tx_cmd *)dev_cmd->payload; + tx_cmd = (struct iwl_tx_cmd_v6 *)dev_cmd->payload; if (info->control.hw_key) iwl_mvm_set_tx_cmd_crypto(mvm, info, tx_cmd, skb, hdrlen); @@ -1174,7 +1174,7 @@ static int iwl_mvm_tx_mpdu(struct iwl_mvm *mvm, struct sk_buff *skb, seq_number &= IEEE80211_SCTL_SEQ; if (!iwl_mvm_has_new_tx_api(mvm)) { - struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd_v6 *tx_cmd = (void *)dev_cmd->payload; hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); hdr->seq_ctrl |= cpu_to_le16(seq_number); diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c index ceb730baa494..53a02b45de5f 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c @@ -163,7 +163,7 @@ static int iwl_txq_gen2_build_amsdu(struct iwl_trans *trans, struct iwl_device_tx_cmd *dev_cmd) { #ifdef CONFIG_INET - struct iwl_tx_cmd_gen2 *tx_cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd_v9 *tx_cmd = (void *)dev_cmd->payload; struct ieee80211_hdr *hdr = (void *)skb->data; unsigned int snap_ip_tcp_hdrlen, ip_hdrlen, total_len, hdr_room; unsigned int mss = skb_shinfo(skb)->gso_size; @@ -490,21 +490,21 @@ struct iwl_tfh_tfd *iwl_txq_gen2_build_tfd(struct iwl_trans *trans, bool amsdu; /* There must be data left over for TB1 or this code must be changed */ - BUILD_BUG_ON(sizeof(struct iwl_tx_cmd_gen2) < IWL_FIRST_TB_SIZE); + BUILD_BUG_ON(sizeof(struct iwl_tx_cmd_v9) < IWL_FIRST_TB_SIZE); BUILD_BUG_ON(sizeof(struct iwl_cmd_header) + - offsetofend(struct iwl_tx_cmd_gen2, dram_info) > + offsetofend(struct iwl_tx_cmd_v9, dram_info) > IWL_FIRST_TB_SIZE); - BUILD_BUG_ON(sizeof(struct iwl_tx_cmd_gen3) < IWL_FIRST_TB_SIZE); + BUILD_BUG_ON(sizeof(struct iwl_tx_cmd) < IWL_FIRST_TB_SIZE); BUILD_BUG_ON(sizeof(struct iwl_cmd_header) + - offsetofend(struct iwl_tx_cmd_gen3, dram_info) > + offsetofend(struct iwl_tx_cmd, dram_info) > IWL_FIRST_TB_SIZE); memset(tfd, 0, sizeof(*tfd)); if (trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_AX210) - len = sizeof(struct iwl_tx_cmd_gen2); + len = sizeof(struct iwl_tx_cmd_v9); else - len = sizeof(struct iwl_tx_cmd_gen3); + len = sizeof(struct iwl_tx_cmd); amsdu = ieee80211_is_data_qos(hdr->frame_control) && (*ieee80211_get_qos_ctl(hdr) & @@ -781,15 +781,15 @@ int iwl_txq_gen2_tx(struct iwl_trans *trans, struct sk_buff *skb, } if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) { - struct iwl_tx_cmd_gen3 *tx_cmd_gen3 = + struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload; - cmd_len = le16_to_cpu(tx_cmd_gen3->len); + cmd_len = le16_to_cpu(tx_cmd->len); } else { - struct iwl_tx_cmd_gen2 *tx_cmd_gen2 = + struct iwl_tx_cmd_v9 *tx_cmd_v9 = (void *)dev_cmd->payload; - cmd_len = le16_to_cpu(tx_cmd_gen2->len); + cmd_len = le16_to_cpu(tx_cmd_v9->len); } /* Set up entry for this TFD in Tx byte-count array */ diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c index 715e1154faf5..d5ba4f3fd223 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c @@ -1910,7 +1910,7 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb, u16 tb1_len) { struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); - struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd_v6 *tx_cmd = (void *)dev_cmd->payload; struct ieee80211_hdr *hdr = (void *)skb->data; unsigned int snap_ip_tcp_hdrlen, ip_hdrlen, total_len, hdr_room; unsigned int mss = skb_shinfo(skb)->gso_size; @@ -2072,7 +2072,7 @@ static void iwl_txq_gen1_update_byte_cnt_tbl(struct iwl_trans *trans, u16 len = byte_cnt + IWL_TX_CRC_SIZE + IWL_TX_DELIMITER_SIZE; __le16 bc_ent; struct iwl_device_tx_cmd *dev_cmd = txq->entries[txq->write_ptr].cmd; - struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd_v6 *tx_cmd = (void *)dev_cmd->payload; u8 sta_id = tx_cmd->sta_id; scd_bc_tbl = trans_pcie->txqs.scd_bc_tbls.addr; @@ -2111,7 +2111,7 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, { struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); struct ieee80211_hdr *hdr; - struct iwl_tx_cmd *tx_cmd = (struct iwl_tx_cmd *)dev_cmd->payload; + struct iwl_tx_cmd_v6 *tx_cmd = (struct iwl_tx_cmd_v6 *)dev_cmd->payload; struct iwl_cmd_meta *out_meta; struct iwl_txq *txq; dma_addr_t tb0_phys, tb1_phys, scratch_phys; @@ -2184,7 +2184,7 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, tb0_phys = iwl_txq_get_first_tb_dma(txq, txq->write_ptr); scratch_phys = tb0_phys + sizeof(struct iwl_cmd_header) + - offsetof(struct iwl_tx_cmd, scratch); + offsetof(struct iwl_tx_cmd_v6, scratch); tx_cmd->dram_lsb_ptr = cpu_to_le32(scratch_phys); tx_cmd->dram_msb_ptr = iwl_get_dma_hi_addr(scratch_phys); @@ -2199,7 +2199,7 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, * (This calculation modifies the TX command, so do it before the * setup of the first TB) */ - len = sizeof(struct iwl_tx_cmd) + sizeof(struct iwl_cmd_header) + + len = sizeof(struct iwl_tx_cmd_v6) + sizeof(struct iwl_cmd_header) + hdr_len - IWL_FIRST_TB_SIZE; /* do not align A-MSDU to dword as the subframe header aligns it */ amsdu = ieee80211_is_data_qos(fc) && @@ -2222,9 +2222,9 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, IWL_FIRST_TB_SIZE, true); /* there must be data left over for TB1 or this code must be changed */ - BUILD_BUG_ON(sizeof(struct iwl_tx_cmd) < IWL_FIRST_TB_SIZE); + BUILD_BUG_ON(sizeof(struct iwl_tx_cmd_v6) < IWL_FIRST_TB_SIZE); BUILD_BUG_ON(sizeof(struct iwl_cmd_header) + - offsetofend(struct iwl_tx_cmd, scratch) > + offsetofend(struct iwl_tx_cmd_v6, scratch) > IWL_FIRST_TB_SIZE); /* map the data for TB1 */ @@ -2317,7 +2317,7 @@ static void iwl_txq_gen1_inval_byte_cnt_tbl(struct iwl_trans *trans, u8 sta_id = 0; __le16 bc_ent; struct iwl_device_tx_cmd *dev_cmd = txq->entries[read_ptr].cmd; - struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload; + struct iwl_tx_cmd_v6 *tx_cmd = (void *)dev_cmd->payload; WARN_ON(read_ptr >= TFD_QUEUE_SIZE_MAX); -- 2.51.0 From f74cb4d02cd7746a4902f27926da10283e12fd79 Mon Sep 17 00:00:00 2001 From: Miri Korenblit Date: Sun, 11 May 2025 19:53:13 +0300 Subject: [PATCH 16/16] wifi: iwlwifi: remove GEN3 from a couple of macros 'GEN3' here really means 'AX210'. Rename. Reviewed-by: Johannes Berg Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250511195137.b7fb5b854ded.Ib52b84c6e36e312b2eeb84a3cf71c6185fb52ee7@changeid --- drivers/net/wireless/intel/iwlwifi/iwl-fh.h | 8 ++++---- drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-fh.h b/drivers/net/wireless/intel/iwlwifi/iwl-fh.h index c1c24f33e637..df4bb499446a 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-fh.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-fh.h @@ -378,14 +378,14 @@ static inline unsigned int FH_MEM_CBBC_QUEUE(struct iwl_trans *trans, * Once the RXF-to-DRAM DMA is active, this flag is immediately turned off. */ #define RFH_GEN_STATUS 0xA09808 -#define RFH_GEN_STATUS_GEN3 0xA07824 +#define RFH_GEN_STATUS_AX210 0xA07824 #define RBD_FETCH_IDLE BIT(29) #define SRAM_DMA_IDLE BIT(30) #define RXF_DMA_IDLE BIT(31) /* DMA configuration */ #define RFH_RXF_DMA_CFG 0xA09820 -#define RFH_RXF_DMA_CFG_GEN3 0xA07880 +#define RFH_RXF_DMA_CFG_AX210 0xA07880 /* RB size */ #define RFH_RXF_DMA_RB_SIZE_MASK (0x000F0000) /* bits 16-19 */ #define RFH_RXF_DMA_RB_SIZE_POS 16 @@ -593,8 +593,8 @@ struct iwl_rb_status { #define TFD_QUEUE_CB_SIZE(x) (ilog2(x) - 3) #define TFD_QUEUE_SIZE_BC_DUP (64) #define TFD_QUEUE_BC_SIZE (TFD_QUEUE_SIZE_MAX + TFD_QUEUE_SIZE_BC_DUP) -#define TFD_QUEUE_BC_SIZE_GEN3_AX210 1024 -#define TFD_QUEUE_BC_SIZE_GEN3_BZ (1024 * 4) +#define TFD_QUEUE_BC_SIZE_AX210 1024 +#define TFD_QUEUE_BC_SIZE_BZ (1024 * 4) #define IWL_TX_DMA_MASK DMA_BIT_MASK(36) #define IWL_NUM_OF_TBS 20 #define IWL_TFH_NUM_TBS 25 diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c index c5fdadf7de1f..72ee9ddc1b19 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c @@ -146,8 +146,8 @@ int iwl_pcie_rx_stop(struct iwl_trans *trans) { if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) { /* TODO: remove this once fw does it */ - iwl_write_umac_prph(trans, RFH_RXF_DMA_CFG_GEN3, 0); - return iwl_poll_umac_prph_bit(trans, RFH_GEN_STATUS_GEN3, + iwl_write_umac_prph(trans, RFH_RXF_DMA_CFG_AX210, 0); + return iwl_poll_umac_prph_bit(trans, RFH_GEN_STATUS_AX210, RXF_DMA_IDLE, RXF_DMA_IDLE, 1000); } else if (trans->mac_cfg->mq_rx_supported) { iwl_write_prph(trans, RFH_RXF_DMA_CFG, 0); diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index bc4753ec4819..694e1ed1eae0 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -3834,10 +3834,10 @@ iwl_trans_pcie_alloc(struct pci_dev *pdev, if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_BZ) trans_pcie->txqs.bc_tbl_size = - sizeof(struct iwl_gen3_bc_tbl_entry) * TFD_QUEUE_BC_SIZE_GEN3_BZ; + sizeof(struct iwl_gen3_bc_tbl_entry) * TFD_QUEUE_BC_SIZE_BZ; else if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) trans_pcie->txqs.bc_tbl_size = - sizeof(struct iwl_gen3_bc_tbl_entry) * TFD_QUEUE_BC_SIZE_GEN3_AX210; + sizeof(struct iwl_gen3_bc_tbl_entry) * TFD_QUEUE_BC_SIZE_AX210; else trans_pcie->txqs.bc_tbl_size = sizeof(struct iwlagn_scd_bc_tbl); /* -- 2.51.0