From beba2316b8beb2e0b66a1fde9b5ad58acdeef549 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 8 May 2025 15:12:52 +0300 Subject: [PATCH] wifi: iwlwifi: build 9000 series FW filenames dynamically This is more maintainable than the fw_name_pre prefix, and requires fewer duplicate structs as well. Since only b0 FW exists, override the MAC/RF steps for these devices. Signed-off-by: Johannes Berg Link: https://patch.msgid.link/20250508121306.1277801-2-miriam.rachel.korenblit@intel.com Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/cfg/9000.c | 17 +----- .../net/wireless/intel/iwlwifi/iwl-config.h | 6 +- drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 6 +- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 60 +++++++++---------- 4 files changed, 38 insertions(+), 51 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/9000.c b/drivers/net/wireless/intel/iwlwifi/cfg/9000.c index af21cfdadc8f..70d941ac299b 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/9000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/9000.c @@ -177,24 +177,11 @@ const char iwl9560_killer_1550s_name[] = const char iwl9560_killer_1550s_160_name[] = "Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz"; -const struct iwl_cfg iwl9260_2ac_cfg = { - .fw_name_pre = IWL9260_FW_PRE, +const struct iwl_cfg iwl9000_2ac_cfg = { IWL_DEVICE_9000, }; -const struct iwl_cfg iwl9260_2ac_cfg_80mhz = { - .fw_name_pre = IWL9260_FW_PRE, - IWL_DEVICE_9000, - .bw_limit = 80, -}; - -const struct iwl_cfg iwl9560_2ac_cfg_soc = { - .fw_name_pre = IWL9000_FW_PRE, - IWL_DEVICE_9000, -}; - -const struct iwl_cfg iwl9560_2ac_cfg_soc_80mhz = { - .fw_name_pre = IWL9000_FW_PRE, +const struct iwl_cfg iwl9000_2ac_cfg_80mhz = { IWL_DEVICE_9000, .bw_limit = 80, }; diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 30725ed5e3bc..914f549e95ba 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -665,14 +665,12 @@ extern const struct iwl_cfg iwl7265_cfg; extern const struct iwl_cfg iwl7265d_cfg; extern const struct iwl_cfg iwl8260_cfg; extern const struct iwl_cfg iwl8265_cfg; -extern const struct iwl_cfg iwl9260_2ac_cfg; -extern const struct iwl_cfg iwl9260_2ac_cfg_80mhz; +extern const struct iwl_cfg iwl9000_2ac_cfg; +extern const struct iwl_cfg iwl9000_2ac_cfg_80mhz; extern const struct iwl_cfg iwl9560_qu_jf_cfg; extern const struct iwl_cfg iwl9560_qu_jf_cfg_80mhz; extern const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg; extern const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg_80mhz; -extern const struct iwl_cfg iwl9560_2ac_cfg_soc; -extern const struct iwl_cfg iwl9560_2ac_cfg_soc_80mhz; extern const struct iwl_cfg iwl_qu_hr1; extern const struct iwl_cfg iwl_qu_hr; extern const struct iwl_cfg iwl_qu_hr_80mhz; diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c index 6cd520d50c98..acfc3eb89afe 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c @@ -191,10 +191,12 @@ const char *iwl_drv_get_fwname_pre(struct iwl_trans *trans, char *buf) switch (CSR_HW_REV_TYPE(trans->info.hw_rev)) { case IWL_CFG_MAC_TYPE_PU: - mac = "pu"; + mac = "9000-pu"; + mac_step = 'b'; break; case IWL_CFG_MAC_TYPE_TH: - mac = "th"; + mac = "9260-th"; + mac_step = 'b'; break; case IWL_CFG_MAC_TYPE_QU: mac = "Qu"; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 3e535fed8ff5..fe2a8f40f6d4 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -944,31 +944,31 @@ 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)), /* 9000 */ - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_killer_1550_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9260_killer_1550_name, DEVICE(0x2526), SUBDEV(0x1550)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_name, DEVICE(0x2526), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_name, DEVICE(0x2526), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_name, DEVICE(0x30DC), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_name, DEVICE(0x30DC), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_name, DEVICE(0x31DC), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_name, DEVICE(0x31DC), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_name, DEVICE(0xA370), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_name, DEVICE(0xA370), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_160_name, DEVICE(0x54F0), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_name, DEVICE(0x54F0), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_160_name, DEVICE(0x51F0), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_160_name, DEVICE(0x51F0), SUBDEV(0x1551)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, DEVICE(0x51F0), SUBDEV(0x1691)), @@ -989,7 +989,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, DEVICE(0x7AF0), SUBDEV(0x1692)), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_1_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9260_1_name, DEVICE(0x271C), SUBDEV(0x0214)), IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name, DEVICE(0x7E40), SUBDEV(0x1691)), @@ -1193,13 +1193,13 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x7AF0), SUBDEV(0x0A10)), /* So with JF */ - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_160_name, DEVICE(0x7A70), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_160_name, DEVICE(0x7A70), SUBDEV(0x1552)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550s_160_name, DEVICE(0x7AF0), SUBDEV(0x1551)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name, + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_killer_1550i_160_name, DEVICE(0x7AF0), SUBDEV(0x1552)), /* SO with GF2 */ @@ -1234,44 +1234,44 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, DEVICE(0x7E40), SUBDEV(0x1672)), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9461_160_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9461_160_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9461_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9000_2ac_cfg_80mhz, iwl9461_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9462_160_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9462_160_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9462_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9000_2ac_cfg_80mhz, iwl9462_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_160_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9560_160_name, MAC_TYPE(PU), RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9560_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9000_2ac_cfg_80mhz, iwl9560_name, MAC_TYPE(PU), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9270_160_name, DEVICE(0x2526), + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9270_160_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_NOT_LIMITED, CORES(BT_GNSS), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9270_name, DEVICE(0x2526), + IWL_DEV_INFO(iwl9000_2ac_cfg_80mhz, iwl9270_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_LIMITED, CORES(BT_GNSS), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9162_160_name, DEVICE(0x271B), + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9162_160_name, DEVICE(0x271B), MAC_TYPE(TH), RF_TYPE(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9162_name, DEVICE(0x271B), + IWL_DEV_INFO(iwl9000_2ac_cfg_80mhz, iwl9162_name, DEVICE(0x271B), MAC_TYPE(TH), RF_TYPE(JF1), BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_160_name, DEVICE(0x2526), + IWL_DEV_INFO(iwl9000_2ac_cfg, iwl9260_160_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_NOT_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9260_name, DEVICE(0x2526), + IWL_DEV_INFO(iwl9000_2ac_cfg_80mhz, iwl9260_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_LIMITED, CORES(BT), NO_CDB), -- 2.25.1