Commit b7226f10 authored by Luca Coelho's avatar Luca Coelho

iwlwifi: remove support for 9000 A-step devices

We don't support 9000 A-step devices anymore, so we can remove support
for loading both the a0/a0 and a0/b0 FWs.
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 606b9ab6
...@@ -73,21 +73,12 @@ ...@@ -73,21 +73,12 @@
#define IWL9000_SMEM_OFFSET 0x400000 #define IWL9000_SMEM_OFFSET 0x400000
#define IWL9000_SMEM_LEN 0x68000 #define IWL9000_SMEM_LEN 0x68000
#define IWL9000A_FW_PRE "iwlwifi-9000-pu-a0-jf-a0-" #define IWL9000_FW_PRE "iwlwifi-9000-pu-b0-jf-b0-"
#define IWL9000B_FW_PRE "iwlwifi-9000-pu-b0-jf-b0-" #define IWL9260_FW_PRE "iwlwifi-9260-th-b0-jf-b0-"
#define IWL9000RFB_FW_PRE "iwlwifi-9000-pu-a0-jf-b0-" #define IWL9000_MODULE_FIRMWARE(api) \
#define IWL9260A_FW_PRE "iwlwifi-9260-th-a0-jf-a0-" IWL9000_FW_PRE __stringify(api) ".ucode"
#define IWL9260B_FW_PRE "iwlwifi-9260-th-b0-jf-b0-" #define IWL9260_MODULE_FIRMWARE(api) \
#define IWL9000A_MODULE_FIRMWARE(api) \ IWL9260_FW_PRE __stringify(api) ".ucode"
IWL9000A_FW_PRE __stringify(api) ".ucode"
#define IWL9000B_MODULE_FIRMWARE(api) \
IWL9000B_FW_PRE __stringify(api) ".ucode"
#define IWL9000RFB_MODULE_FIRMWARE(api) \
IWL9000RFB_FW_PRE __stringify(api) ".ucode"
#define IWL9260A_MODULE_FIRMWARE(api) \
IWL9260A_FW_PRE __stringify(api) ".ucode"
#define IWL9260B_MODULE_FIRMWARE(api) \
IWL9260B_FW_PRE __stringify(api) ".ucode"
static const struct iwl_base_params iwl9000_base_params = { static const struct iwl_base_params iwl9000_base_params = {
.eeprom_size = OTP_LOW_IMAGE_SIZE_32K, .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
...@@ -162,81 +153,67 @@ static const struct iwl_tt_params iwl9000_tt_params = { ...@@ -162,81 +153,67 @@ static const struct iwl_tt_params iwl9000_tt_params = {
const struct iwl_cfg iwl9160_2ac_cfg = { const struct iwl_cfg iwl9160_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 9160", .name = "Intel(R) Dual Band Wireless AC 9160",
.fw_name_pre = IWL9260A_FW_PRE, .fw_name_pre = IWL9260_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
}; };
const struct iwl_cfg iwl9260_2ac_cfg = { const struct iwl_cfg iwl9260_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 9260", .name = "Intel(R) Dual Band Wireless AC 9260",
.fw_name_pre = IWL9260A_FW_PRE, .fw_name_pre = IWL9260_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
}; };
const struct iwl_cfg iwl9260_killer_2ac_cfg = { const struct iwl_cfg iwl9260_killer_2ac_cfg = {
.name = "Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW)", .name = "Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW)",
.fw_name_pre = IWL9260A_FW_PRE, .fw_name_pre = IWL9260_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
}; };
const struct iwl_cfg iwl9270_2ac_cfg = { const struct iwl_cfg iwl9270_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 9270", .name = "Intel(R) Dual Band Wireless AC 9270",
.fw_name_pre = IWL9260A_FW_PRE, .fw_name_pre = IWL9260_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
}; };
const struct iwl_cfg iwl9460_2ac_cfg = { const struct iwl_cfg iwl9460_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 9460", .name = "Intel(R) Dual Band Wireless AC 9460",
.fw_name_pre = IWL9260A_FW_PRE, .fw_name_pre = IWL9260_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
}; };
const struct iwl_cfg iwl9460_2ac_cfg_soc = { const struct iwl_cfg iwl9460_2ac_cfg_soc = {
.name = "Intel(R) Dual Band Wireless AC 9460", .name = "Intel(R) Dual Band Wireless AC 9460",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
}; };
const struct iwl_cfg iwl9461_2ac_cfg_soc = { const struct iwl_cfg iwl9461_2ac_cfg_soc = {
.name = "Intel(R) Dual Band Wireless AC 9461", .name = "Intel(R) Dual Band Wireless AC 9461",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, IWL_DEVICE_9000,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE, .integrated = true,
IWL_DEVICE_9000, .soc_latency = 5000,
.integrated = true,
.soc_latency = 5000,
}; };
const struct iwl_cfg iwl9462_2ac_cfg_soc = { const struct iwl_cfg iwl9462_2ac_cfg_soc = {
.name = "Intel(R) Dual Band Wireless AC 9462", .name = "Intel(R) Dual Band Wireless AC 9462",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, IWL_DEVICE_9000,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE, .integrated = true,
IWL_DEVICE_9000, .soc_latency = 5000,
.integrated = true,
.soc_latency = 5000,
}; };
const struct iwl_cfg iwl9560_2ac_cfg = { const struct iwl_cfg iwl9560_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 9560", .name = "Intel(R) Dual Band Wireless AC 9560",
.fw_name_pre = IWL9260A_FW_PRE, .fw_name_pre = IWL9260_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
}; };
const struct iwl_cfg iwl9560_2ac_cfg_soc = { const struct iwl_cfg iwl9560_2ac_cfg_soc = {
.name = "Intel(R) Dual Band Wireless AC 9560", .name = "Intel(R) Dual Band Wireless AC 9560",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -244,9 +221,7 @@ const struct iwl_cfg iwl9560_2ac_cfg_soc = { ...@@ -244,9 +221,7 @@ const struct iwl_cfg iwl9560_2ac_cfg_soc = {
const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = { const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = {
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)", .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -254,9 +229,7 @@ const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = { ...@@ -254,9 +229,7 @@ const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = {
const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = { const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = {
.name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)", .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -264,9 +237,7 @@ const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = { ...@@ -264,9 +237,7 @@ const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = {
const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = { const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = {
.name = "Intel(R) Dual Band Wireless AC 9460", .name = "Intel(R) Dual Band Wireless AC 9460",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -275,9 +246,7 @@ const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = { ...@@ -275,9 +246,7 @@ const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = {
const struct iwl_cfg iwl9461_2ac_cfg_shared_clk = { const struct iwl_cfg iwl9461_2ac_cfg_shared_clk = {
.name = "Intel(R) Dual Band Wireless AC 9461", .name = "Intel(R) Dual Band Wireless AC 9461",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -286,9 +255,7 @@ const struct iwl_cfg iwl9461_2ac_cfg_shared_clk = { ...@@ -286,9 +255,7 @@ const struct iwl_cfg iwl9461_2ac_cfg_shared_clk = {
const struct iwl_cfg iwl9462_2ac_cfg_shared_clk = { const struct iwl_cfg iwl9462_2ac_cfg_shared_clk = {
.name = "Intel(R) Dual Band Wireless AC 9462", .name = "Intel(R) Dual Band Wireless AC 9462",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -297,9 +264,7 @@ const struct iwl_cfg iwl9462_2ac_cfg_shared_clk = { ...@@ -297,9 +264,7 @@ const struct iwl_cfg iwl9462_2ac_cfg_shared_clk = {
const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = { const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = {
.name = "Intel(R) Dual Band Wireless AC 9560", .name = "Intel(R) Dual Band Wireless AC 9560",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -308,9 +273,7 @@ const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = { ...@@ -308,9 +273,7 @@ const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = {
const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = { const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = {
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)", .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
...@@ -319,17 +282,12 @@ const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = { ...@@ -319,17 +282,12 @@ const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = {
const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk = { const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk = {
.name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)", .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
.fw_name_pre = IWL9000A_FW_PRE, .fw_name_pre = IWL9000_FW_PRE,
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
IWL_DEVICE_9000, IWL_DEVICE_9000,
.integrated = true, .integrated = true,
.soc_latency = 5000, .soc_latency = 5000,
.extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK
}; };
MODULE_FIRMWARE(IWL9000A_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL9000_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL9000B_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL9260_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL9000RFB_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL9260A_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL9260B_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
...@@ -335,10 +335,6 @@ struct iwl_csr_params { ...@@ -335,10 +335,6 @@ struct iwl_csr_params {
* @fw_name_pre: Firmware filename prefix. The api version and extension * @fw_name_pre: Firmware filename prefix. The api version and extension
* (.ucode) will be added to filename before loading from disk. The * (.ucode) will be added to filename before loading from disk. The
* filename is constructed as fw_name_pre<api>.ucode. * filename is constructed as fw_name_pre<api>.ucode.
* @fw_name_pre_b_or_c_step: same as @fw_name_pre, only for b or c steps
* (if supported)
* @fw_name_pre_rf_next_step: same as @fw_name_pre_b_or_c_step, only for rf
* next step. Supported only in integrated solutions.
* @ucode_api_max: Highest version of uCode API supported by driver. * @ucode_api_max: Highest version of uCode API supported by driver.
* @ucode_api_min: Lowest version of uCode API supported by driver. * @ucode_api_min: Lowest version of uCode API supported by driver.
* @max_inst_size: The maximal length of the fw inst section (only DVM) * @max_inst_size: The maximal length of the fw inst section (only DVM)
...@@ -392,8 +388,6 @@ struct iwl_cfg { ...@@ -392,8 +388,6 @@ struct iwl_cfg {
/* params specific to an individual device within a device family */ /* params specific to an individual device within a device family */
const char *name; const char *name;
const char *fw_name_pre; const char *fw_name_pre;
const char *fw_name_pre_b_or_c_step;
const char *fw_name_pre_rf_next_step;
/* params not likely to change within a device family */ /* params not likely to change within a device family */
const struct iwl_base_params *base_params; const struct iwl_base_params *base_params;
/* params likely to change within a device family */ /* params likely to change within a device family */
......
...@@ -210,18 +210,15 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) ...@@ -210,18 +210,15 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first)
{ {
const struct iwl_cfg *cfg = drv->trans->cfg; const struct iwl_cfg *cfg = drv->trans->cfg;
char tag[8]; char tag[8];
const char *fw_pre_name;
if (drv->trans->cfg->device_family == IWL_DEVICE_FAMILY_9000 && if (drv->trans->cfg->device_family == IWL_DEVICE_FAMILY_9000 &&
(CSR_HW_REV_STEP(drv->trans->hw_rev) == SILICON_B_STEP || (CSR_HW_REV_STEP(drv->trans->hw_rev) != SILICON_B_STEP &&
CSR_HW_REV_STEP(drv->trans->hw_rev) == SILICON_C_STEP)) CSR_HW_REV_STEP(drv->trans->hw_rev) != SILICON_C_STEP)) {
fw_pre_name = cfg->fw_name_pre_b_or_c_step; IWL_ERR(drv,
else if (drv->trans->cfg->integrated && "Only HW steps B and C are currently supported (0x%0x)\n",
CSR_HW_RFID_STEP(drv->trans->hw_rf_id) == SILICON_B_STEP && drv->trans->hw_rev);
cfg->fw_name_pre_rf_next_step) return -EINVAL;
fw_pre_name = cfg->fw_name_pre_rf_next_step; }
else
fw_pre_name = cfg->fw_name_pre;
if (first) { if (first) {
drv->fw_index = cfg->ucode_api_max; drv->fw_index = cfg->ucode_api_max;
...@@ -235,15 +232,13 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) ...@@ -235,15 +232,13 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first)
IWL_ERR(drv, "no suitable firmware found!\n"); IWL_ERR(drv, "no suitable firmware found!\n");
if (cfg->ucode_api_min == cfg->ucode_api_max) { if (cfg->ucode_api_min == cfg->ucode_api_max) {
IWL_ERR(drv, "%s%d is required\n", fw_pre_name, IWL_ERR(drv, "%s%d is required\n", cfg->fw_name_pre,
cfg->ucode_api_max); cfg->ucode_api_max);
} else { } else {
IWL_ERR(drv, "minimum version required: %s%d\n", IWL_ERR(drv, "minimum version required: %s%d\n",
fw_pre_name, cfg->fw_name_pre, cfg->ucode_api_min);
cfg->ucode_api_min);
IWL_ERR(drv, "maximum version supported: %s%d\n", IWL_ERR(drv, "maximum version supported: %s%d\n",
fw_pre_name, cfg->fw_name_pre, cfg->ucode_api_max);
cfg->ucode_api_max);
} }
IWL_ERR(drv, IWL_ERR(drv,
...@@ -252,7 +247,7 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) ...@@ -252,7 +247,7 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first)
} }
snprintf(drv->firmware_name, sizeof(drv->firmware_name), "%s%s.ucode", snprintf(drv->firmware_name, sizeof(drv->firmware_name), "%s%s.ucode",
fw_pre_name, tag); cfg->fw_name_pre, tag);
IWL_DEBUG_INFO(drv, "attempting to load firmware '%s'\n", IWL_DEBUG_INFO(drv, "attempting to load firmware '%s'\n",
drv->firmware_name); drv->firmware_name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment