wifi: iwlwifi: cfg: finish config split

A long time ago, when transport vs. device configs were
introduced, we wanted to eventually have a list of PCI
IDs and a separate list of devices, but for simplicity
embedded the transport config in the whole config, and
it all got confusing.

Finish splitting that out. Doing so requires having more
IWL_DEV_INFO() entries, but the whole trans/cfg aliasing
goes away and the code becomes a lot simpler.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250502155404.e03f65c0f693.I076a997f800db455b575008f9488b151738ad7ec@changeid
pull/1112/head
Johannes Berg 2025-05-02 15:56:24 +03:00 committed by Miri Korenblit
parent 3bf7c3980b
commit 35ac275ebe
14 changed files with 1473 additions and 796 deletions

View File

@ -2,7 +2,7 @@
/****************************************************************************** /******************************************************************************
* *
* Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2018 - 2020, 2023 Intel Corporation * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation
*****************************************************************************/ *****************************************************************************/
#include <linux/module.h> #include <linux/module.h>
@ -60,54 +60,59 @@ static const struct iwl_eeprom_params iwl1000_eeprom_params = {
} }
}; };
const struct iwl_cfg_trans_params iwl1000_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_1000,
.base_params = &iwl1000_base_params,
};
#define IWL_DEVICE_1000 \ #define IWL_DEVICE_1000 \
.fw_name_pre = IWL1000_FW_PRE, \ .fw_name_pre = IWL1000_FW_PRE, \
.ucode_api_max = IWL1000_UCODE_API_MAX, \ .ucode_api_max = IWL1000_UCODE_API_MAX, \
.ucode_api_min = IWL1000_UCODE_API_MIN, \ .ucode_api_min = IWL1000_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_1000, \
.max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \
.max_data_size = IWLAGN_RTC_DATA_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_1000_EEPROM_VERSION, \ .nvm_ver = EEPROM_1000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \
.trans.base_params = &iwl1000_base_params, \
.eeprom_params = &iwl1000_eeprom_params, \ .eeprom_params = &iwl1000_eeprom_params, \
.led_mode = IWL_LED_BLINK .led_mode = IWL_LED_BLINK
const struct iwl_cfg iwl1000_bgn_cfg = { const struct iwl_cfg iwl1000_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 1000 BGN",
IWL_DEVICE_1000, IWL_DEVICE_1000,
.ht_params = &iwl1000_ht_params, .ht_params = &iwl1000_ht_params,
}; };
const char iwl1000_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 1000 BGN";
const struct iwl_cfg iwl1000_bg_cfg = { const struct iwl_cfg iwl1000_bg_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 1000 BG",
IWL_DEVICE_1000, IWL_DEVICE_1000,
}; };
const char iwl1000_bg_name[] = "Intel(R) Centrino(R) Wireless-N 1000 BG";
#define IWL_DEVICE_100 \ #define IWL_DEVICE_100 \
.fw_name_pre = IWL100_FW_PRE, \ .fw_name_pre = IWL100_FW_PRE, \
.ucode_api_max = IWL100_UCODE_API_MAX, \ .ucode_api_max = IWL100_UCODE_API_MAX, \
.ucode_api_min = IWL100_UCODE_API_MIN, \ .ucode_api_min = IWL100_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_100, \
.max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \
.max_data_size = IWLAGN_RTC_DATA_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_1000_EEPROM_VERSION, \ .nvm_ver = EEPROM_1000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \
.trans.base_params = &iwl1000_base_params, \
.eeprom_params = &iwl1000_eeprom_params, \ .eeprom_params = &iwl1000_eeprom_params, \
.led_mode = IWL_LED_RF_STATE, \ .led_mode = IWL_LED_RF_STATE, \
.rx_with_siso_diversity = true .rx_with_siso_diversity = true
const struct iwl_cfg iwl100_bgn_cfg = { const struct iwl_cfg iwl100_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 100 BGN",
IWL_DEVICE_100, IWL_DEVICE_100,
.ht_params = &iwl1000_ht_params, .ht_params = &iwl1000_ht_params,
}; };
const char iwl100_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 100 BGN";
const struct iwl_cfg iwl100_bg_cfg = { const struct iwl_cfg iwl100_bg_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 100 BG",
IWL_DEVICE_100, IWL_DEVICE_100,
}; };
const char iwl100_bg_name[] = "Intel(R) Centrino(R) Wireless-N 100 BG";
MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_MAX)); MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_MAX));

View File

@ -2,7 +2,7 @@
/****************************************************************************** /******************************************************************************
* *
* Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2018 - 2020, 2023 Intel Corporation * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation
*****************************************************************************/ *****************************************************************************/
#include <linux/module.h> #include <linux/module.h>
@ -86,97 +86,103 @@ static const struct iwl_eeprom_params iwl20x0_eeprom_params = {
.enhanced_txpower = true, .enhanced_txpower = true,
}; };
const struct iwl_cfg_trans_params iwl2000_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_2000,
.base_params = &iwl2000_base_params,
};
#define IWL_DEVICE_2000 \ #define IWL_DEVICE_2000 \
.fw_name_pre = IWL2000_FW_PRE, \ .fw_name_pre = IWL2000_FW_PRE, \
.ucode_api_max = IWL2000_UCODE_API_MAX, \ .ucode_api_max = IWL2000_UCODE_API_MAX, \
.ucode_api_min = IWL2000_UCODE_API_MIN, \ .ucode_api_min = IWL2000_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_2000, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
.trans.base_params = &iwl2000_base_params, \
.eeprom_params = &iwl20x0_eeprom_params, \ .eeprom_params = &iwl20x0_eeprom_params, \
.led_mode = IWL_LED_RF_STATE .led_mode = IWL_LED_RF_STATE
const struct iwl_cfg iwl2000_2bgn_cfg = { const struct iwl_cfg iwl2000_2bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 2200 BGN",
IWL_DEVICE_2000, IWL_DEVICE_2000,
.ht_params = &iwl2000_ht_params, .ht_params = &iwl2000_ht_params,
}; };
const struct iwl_cfg iwl2000_2bgn_d_cfg = { const char iwl2000_2bgn_name[] = "Intel(R) Centrino(R) Wireless-N 2200 BGN";
.name = "Intel(R) Centrino(R) Wireless-N 2200D BGN", const char iwl2000_2bgn_d_name[] = "Intel(R) Centrino(R) Wireless-N 2200D BGN";
IWL_DEVICE_2000,
.ht_params = &iwl2000_ht_params, const struct iwl_cfg_trans_params iwl2030_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_2030,
.base_params = &iwl2030_base_params,
}; };
#define IWL_DEVICE_2030 \ #define IWL_DEVICE_2030 \
.fw_name_pre = IWL2030_FW_PRE, \ .fw_name_pre = IWL2030_FW_PRE, \
.ucode_api_max = IWL2030_UCODE_API_MAX, \ .ucode_api_max = IWL2030_UCODE_API_MAX, \
.ucode_api_min = IWL2030_UCODE_API_MIN, \ .ucode_api_min = IWL2030_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_2030, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
.trans.base_params = &iwl2030_base_params, \
.eeprom_params = &iwl20x0_eeprom_params, \ .eeprom_params = &iwl20x0_eeprom_params, \
.led_mode = IWL_LED_RF_STATE .led_mode = IWL_LED_RF_STATE
const struct iwl_cfg iwl2030_2bgn_cfg = { const struct iwl_cfg iwl2030_2bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 2230 BGN",
IWL_DEVICE_2030, IWL_DEVICE_2030,
.ht_params = &iwl2000_ht_params, .ht_params = &iwl2000_ht_params,
}; };
const char iwl2030_2bgn_name[] = "Intel(R) Centrino(R) Wireless-N 2230 BGN";
const struct iwl_cfg_trans_params iwl105_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_105,
.base_params = &iwl2000_base_params,
};
#define IWL_DEVICE_105 \ #define IWL_DEVICE_105 \
.fw_name_pre = IWL105_FW_PRE, \ .fw_name_pre = IWL105_FW_PRE, \
.ucode_api_max = IWL105_UCODE_API_MAX, \ .ucode_api_max = IWL105_UCODE_API_MAX, \
.ucode_api_min = IWL105_UCODE_API_MIN, \ .ucode_api_min = IWL105_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_105, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
.trans.base_params = &iwl2000_base_params, \
.eeprom_params = &iwl20x0_eeprom_params, \ .eeprom_params = &iwl20x0_eeprom_params, \
.led_mode = IWL_LED_RF_STATE, \ .led_mode = IWL_LED_RF_STATE, \
.rx_with_siso_diversity = true .rx_with_siso_diversity = true
const struct iwl_cfg iwl105_bgn_cfg = { const struct iwl_cfg iwl105_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 105 BGN",
IWL_DEVICE_105, IWL_DEVICE_105,
.ht_params = &iwl2000_ht_params, .ht_params = &iwl2000_ht_params,
}; };
const struct iwl_cfg iwl105_bgn_d_cfg = { const char iwl105_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 105 BGN";
.name = "Intel(R) Centrino(R) Wireless-N 105D BGN", const char iwl105_bgn_d_name[] = "Intel(R) Centrino(R) Wireless-N 105D BGN";
IWL_DEVICE_105,
.ht_params = &iwl2000_ht_params, const struct iwl_cfg_trans_params iwl135_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_135,
.base_params = &iwl2030_base_params,
}; };
#define IWL_DEVICE_135 \ #define IWL_DEVICE_135 \
.fw_name_pre = IWL135_FW_PRE, \ .fw_name_pre = IWL135_FW_PRE, \
.ucode_api_max = IWL135_UCODE_API_MAX, \ .ucode_api_max = IWL135_UCODE_API_MAX, \
.ucode_api_min = IWL135_UCODE_API_MIN, \ .ucode_api_min = IWL135_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_135, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
.trans.base_params = &iwl2030_base_params, \
.eeprom_params = &iwl20x0_eeprom_params, \ .eeprom_params = &iwl20x0_eeprom_params, \
.led_mode = IWL_LED_RF_STATE, \ .led_mode = IWL_LED_RF_STATE, \
.rx_with_siso_diversity = true .rx_with_siso_diversity = true
const struct iwl_cfg iwl135_bgn_cfg = { const struct iwl_cfg iwl135_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 135 BGN",
IWL_DEVICE_135, IWL_DEVICE_135,
.ht_params = &iwl2000_ht_params, .ht_params = &iwl2000_ht_params,
}; };
const char iwl135_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 135 BGN";
MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_MAX)); MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_MAX));
MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_MAX)); MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_MAX));

View File

@ -81,13 +81,10 @@ const struct iwl_ht_params iwl_22000_ht_params = {
.smem_len = IWL_22000_SMEM_LEN, \ .smem_len = IWL_22000_SMEM_LEN, \
.features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \
.apmg_not_supported = true, \ .apmg_not_supported = true, \
.trans.mq_rx_supported = true, \
.vht_mu_mimo_supported = true, \ .vht_mu_mimo_supported = true, \
.mac_addr_from_csr = 0x380, \ .mac_addr_from_csr = 0x380, \
.ht_params = &iwl_22000_ht_params, \ .ht_params = &iwl_22000_ht_params, \
.nvm_ver = IWL_22000_NVM_VERSION, \ .nvm_ver = IWL_22000_NVM_VERSION, \
.trans.rf_id = true, \
.trans.gen2 = true, \
.nvm_type = IWL_NVM_EXT, \ .nvm_type = IWL_NVM_EXT, \
.dbgc_supported = true, \ .dbgc_supported = true, \
.min_umac_error_event_table = 0x400000, \ .min_umac_error_event_table = 0x400000, \
@ -107,8 +104,6 @@ const struct iwl_ht_params iwl_22000_ht_params = {
#define IWL_DEVICE_22500 \ #define IWL_DEVICE_22500 \
IWL_DEVICE_22000_COMMON, \ IWL_DEVICE_22000_COMMON, \
.ucode_api_max = IWL_22000_UCODE_API_MAX, \ .ucode_api_max = IWL_22000_UCODE_API_MAX, \
.trans.device_family = IWL_DEVICE_FAMILY_22000, \
.trans.base_params = &iwl_22000_base_params, \
.gp2_reg_addr = 0xa02c68, \ .gp2_reg_addr = 0xa02c68, \
.mon_dram_regs = { \ .mon_dram_regs = { \
.write_ptr = { \ .write_ptr = { \

View File

@ -2,7 +2,7 @@
/****************************************************************************** /******************************************************************************
* *
* Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2018 - 2020, 2023 Intel Corporation * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation
*****************************************************************************/ *****************************************************************************/
#include <linux/module.h> #include <linux/module.h>
@ -58,21 +58,23 @@ static const struct iwl_eeprom_params iwl5000_eeprom_params = {
}, },
}; };
const struct iwl_cfg_trans_params iwl5000_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_5000,
.base_params = &iwl5000_base_params,
};
#define IWL_DEVICE_5000 \ #define IWL_DEVICE_5000 \
.fw_name_pre = IWL5000_FW_PRE, \ .fw_name_pre = IWL5000_FW_PRE, \
.ucode_api_max = IWL5000_UCODE_API_MAX, \ .ucode_api_max = IWL5000_UCODE_API_MAX, \
.ucode_api_min = IWL5000_UCODE_API_MIN, \ .ucode_api_min = IWL5000_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_5000, \
.max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \
.max_data_size = IWLAGN_RTC_DATA_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_5000_EEPROM_VERSION, \ .nvm_ver = EEPROM_5000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_5000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_5000_TX_POWER_VERSION, \
.trans.base_params = &iwl5000_base_params, \
.eeprom_params = &iwl5000_eeprom_params, \ .eeprom_params = &iwl5000_eeprom_params, \
.led_mode = IWL_LED_BLINK .led_mode = IWL_LED_BLINK
const struct iwl_cfg iwl5300_agn_cfg = { const struct iwl_cfg iwl5300_agn_cfg = {
.name = "Intel(R) Ultimate N WiFi Link 5300 AGN",
IWL_DEVICE_5000, IWL_DEVICE_5000,
/* at least EEPROM 0x11A has wrong info */ /* at least EEPROM 0x11A has wrong info */
.valid_tx_ant = ANT_ABC, /* .cfg overwrite */ .valid_tx_ant = ANT_ABC, /* .cfg overwrite */
@ -80,71 +82,72 @@ const struct iwl_cfg iwl5300_agn_cfg = {
.ht_params = &iwl5000_ht_params, .ht_params = &iwl5000_ht_params,
}; };
const struct iwl_cfg iwl5100_bgn_cfg = { const char iwl5300_agn_name[] = "Intel(R) Ultimate N WiFi Link 5300 AGN";
.name = "Intel(R) WiFi Link 5100 BGN",
const struct iwl_cfg iwl5100_n_cfg = {
IWL_DEVICE_5000, IWL_DEVICE_5000,
.valid_tx_ant = ANT_B, /* .cfg overwrite */ .valid_tx_ant = ANT_B, /* .cfg overwrite */
.valid_rx_ant = ANT_AB, /* .cfg overwrite */ .valid_rx_ant = ANT_AB, /* .cfg overwrite */
.ht_params = &iwl5000_ht_params, .ht_params = &iwl5000_ht_params,
}; };
const char iwl5100_bgn_name[] = "Intel(R) WiFi Link 5100 BGN";
const struct iwl_cfg iwl5100_abg_cfg = { const struct iwl_cfg iwl5100_abg_cfg = {
.name = "Intel(R) WiFi Link 5100 ABG",
IWL_DEVICE_5000, IWL_DEVICE_5000,
.valid_tx_ant = ANT_B, /* .cfg overwrite */ .valid_tx_ant = ANT_B, /* .cfg overwrite */
.valid_rx_ant = ANT_AB, /* .cfg overwrite */ .valid_rx_ant = ANT_AB, /* .cfg overwrite */
}; };
const struct iwl_cfg iwl5100_agn_cfg = { const char iwl5100_abg_name[] = "Intel(R) WiFi Link 5100 ABG";
.name = "Intel(R) WiFi Link 5100 AGN", const char iwl5100_agn_name[] = "Intel(R) WiFi Link 5100 AGN";
IWL_DEVICE_5000,
.valid_tx_ant = ANT_B, /* .cfg overwrite */
.valid_rx_ant = ANT_AB, /* .cfg overwrite */
.ht_params = &iwl5000_ht_params,
};
const struct iwl_cfg iwl5350_agn_cfg = { const struct iwl_cfg iwl5350_agn_cfg = {
.name = "Intel(R) WiMAX/WiFi Link 5350 AGN",
.fw_name_pre = IWL5000_FW_PRE, .fw_name_pre = IWL5000_FW_PRE,
.ucode_api_max = IWL5000_UCODE_API_MAX, .ucode_api_max = IWL5000_UCODE_API_MAX,
.ucode_api_min = IWL5000_UCODE_API_MIN, .ucode_api_min = IWL5000_UCODE_API_MIN,
.trans.device_family = IWL_DEVICE_FAMILY_5000,
.max_inst_size = IWLAGN_RTC_INST_SIZE, .max_inst_size = IWLAGN_RTC_INST_SIZE,
.max_data_size = IWLAGN_RTC_DATA_SIZE, .max_data_size = IWLAGN_RTC_DATA_SIZE,
.nvm_ver = EEPROM_5050_EEPROM_VERSION, .nvm_ver = EEPROM_5050_EEPROM_VERSION,
.nvm_calib_ver = EEPROM_5050_TX_POWER_VERSION, .nvm_calib_ver = EEPROM_5050_TX_POWER_VERSION,
.trans.base_params = &iwl5000_base_params,
.eeprom_params = &iwl5000_eeprom_params, .eeprom_params = &iwl5000_eeprom_params,
.ht_params = &iwl5000_ht_params, .ht_params = &iwl5000_ht_params,
.led_mode = IWL_LED_BLINK, .led_mode = IWL_LED_BLINK,
.internal_wimax_coex = true, .internal_wimax_coex = true,
}; };
const char iwl5350_agn_name[] = "Intel(R) WiMAX/WiFi Link 5350 AGN";
const struct iwl_cfg_trans_params iwl5150_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_5150,
.base_params = &iwl5000_base_params,
};
#define IWL_DEVICE_5150 \ #define IWL_DEVICE_5150 \
.fw_name_pre = IWL5150_FW_PRE, \ .fw_name_pre = IWL5150_FW_PRE, \
.ucode_api_max = IWL5150_UCODE_API_MAX, \ .ucode_api_max = IWL5150_UCODE_API_MAX, \
.ucode_api_min = IWL5150_UCODE_API_MIN, \ .ucode_api_min = IWL5150_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_5150, \
.max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \
.max_data_size = IWLAGN_RTC_DATA_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_5050_EEPROM_VERSION, \ .nvm_ver = EEPROM_5050_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_5050_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_5050_TX_POWER_VERSION, \
.trans.base_params = &iwl5000_base_params, \
.eeprom_params = &iwl5000_eeprom_params, \ .eeprom_params = &iwl5000_eeprom_params, \
.led_mode = IWL_LED_BLINK, \ .led_mode = IWL_LED_BLINK, \
.internal_wimax_coex = true .internal_wimax_coex = true
const struct iwl_cfg iwl5150_agn_cfg = { const struct iwl_cfg iwl5150_agn_cfg = {
.name = "Intel(R) WiMAX/WiFi Link 5150 AGN",
IWL_DEVICE_5150, IWL_DEVICE_5150,
.ht_params = &iwl5000_ht_params, .ht_params = &iwl5000_ht_params,
}; };
const char iwl5150_agn_name[] = "Intel(R) WiMAX/WiFi Link 5150 AGN";
const struct iwl_cfg iwl5150_abg_cfg = { const struct iwl_cfg iwl5150_abg_cfg = {
.name = "Intel(R) WiMAX/WiFi Link 5150 ABG",
IWL_DEVICE_5150, IWL_DEVICE_5150,
}; };
const char iwl5150_abg_name[] = "Intel(R) WiMAX/WiFi Link 5150 ABG";
MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_MAX)); MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_MAX));

View File

@ -2,7 +2,7 @@
/****************************************************************************** /******************************************************************************
* *
* Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2018 - 2020, 2023 Intel Corporation * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation
*****************************************************************************/ *****************************************************************************/
#include <linux/module.h> #include <linux/module.h>
@ -107,143 +107,112 @@ static const struct iwl_eeprom_params iwl6000_eeprom_params = {
.enhanced_txpower = true, .enhanced_txpower = true,
}; };
const struct iwl_cfg_trans_params iwl6005_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_6005,
.base_params = &iwl6000_g2_base_params,
};
#define IWL_DEVICE_6005 \ #define IWL_DEVICE_6005 \
.fw_name_pre = IWL6005_FW_PRE, \ .fw_name_pre = IWL6005_FW_PRE, \
.ucode_api_max = IWL6000G2_UCODE_API_MAX, \ .ucode_api_max = IWL6000G2_UCODE_API_MAX, \
.ucode_api_min = IWL6000G2_UCODE_API_MIN, \ .ucode_api_min = IWL6000G2_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_6005, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_6005_EEPROM_VERSION, \ .nvm_ver = EEPROM_6005_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_6005_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_6005_TX_POWER_VERSION, \
.trans.base_params = &iwl6000_g2_base_params, \
.eeprom_params = &iwl6000_eeprom_params, \ .eeprom_params = &iwl6000_eeprom_params, \
.led_mode = IWL_LED_RF_STATE .led_mode = IWL_LED_RF_STATE
const struct iwl_cfg iwl6005_2agn_cfg = { const struct iwl_cfg iwl6005_n_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6205 AGN",
IWL_DEVICE_6005, IWL_DEVICE_6005,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
}; };
const struct iwl_cfg iwl6005_2abg_cfg = { const char iwl6005_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6205 AGN";
.name = "Intel(R) Centrino(R) Advanced-N 6205 ABG", const char iwl6005_2agn_sff_name[] = "Intel(R) Centrino(R) Advanced-N 6205S AGN";
const char iwl6005_2agn_d_name[] = "Intel(R) Centrino(R) Advanced-N 6205D AGN";
const char iwl6005_2agn_mow1_name[] = "Intel(R) Centrino(R) Advanced-N 6206 AGN";
const char iwl6005_2agn_mow2_name[] = "Intel(R) Centrino(R) Advanced-N 6207 AGN";
const struct iwl_cfg iwl6005_non_n_cfg = {
IWL_DEVICE_6005, IWL_DEVICE_6005,
}; };
const struct iwl_cfg iwl6005_2bg_cfg = { const char iwl6005_2abg_name[] = "Intel(R) Centrino(R) Advanced-N 6205 ABG";
.name = "Intel(R) Centrino(R) Advanced-N 6205 BG", const char iwl6005_2bg_name[] = "Intel(R) Centrino(R) Advanced-N 6205 BG";
IWL_DEVICE_6005,
};
const struct iwl_cfg iwl6005_2agn_sff_cfg = { const struct iwl_cfg_trans_params iwl6030_trans_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6205S AGN", .device_family = IWL_DEVICE_FAMILY_6030,
IWL_DEVICE_6005, .base_params = &iwl6000_g2_base_params,
.ht_params = &iwl6000_ht_params,
};
const struct iwl_cfg iwl6005_2agn_d_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6205D AGN",
IWL_DEVICE_6005,
.ht_params = &iwl6000_ht_params,
};
const struct iwl_cfg iwl6005_2agn_mow1_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6206 AGN",
IWL_DEVICE_6005,
.ht_params = &iwl6000_ht_params,
};
const struct iwl_cfg iwl6005_2agn_mow2_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6207 AGN",
IWL_DEVICE_6005,
.ht_params = &iwl6000_ht_params,
}; };
#define IWL_DEVICE_6030 \ #define IWL_DEVICE_6030 \
.fw_name_pre = IWL6030_FW_PRE, \ .fw_name_pre = IWL6030_FW_PRE, \
.ucode_api_max = IWL6000G2_UCODE_API_MAX, \ .ucode_api_max = IWL6000G2_UCODE_API_MAX, \
.ucode_api_min = IWL6000G2_UCODE_API_MIN, \ .ucode_api_min = IWL6000G2_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_6030, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_6030_EEPROM_VERSION, \ .nvm_ver = EEPROM_6030_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_6030_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_6030_TX_POWER_VERSION, \
.trans.base_params = &iwl6000_g2_base_params, \
.eeprom_params = &iwl6000_eeprom_params, \ .eeprom_params = &iwl6000_eeprom_params, \
.led_mode = IWL_LED_RF_STATE .led_mode = IWL_LED_RF_STATE
const struct iwl_cfg iwl6030_2agn_cfg = { const struct iwl_cfg iwl6030_n_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6230 AGN",
IWL_DEVICE_6030, IWL_DEVICE_6030,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
}; };
const struct iwl_cfg iwl6030_2abg_cfg = { const char iwl6030_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6230 AGN";
.name = "Intel(R) Centrino(R) Advanced-N 6230 ABG", const char iwl6030_2bgn_name[] = "Intel(R) Centrino(R) Advanced-N 6230 BGN";
const char iwl1030_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 1030 BGN";
const char iwl1030_bg_name[] = "Intel(R) Centrino(R) Wireless-N 1030 BG";
const struct iwl_cfg iwl6030_non_n_cfg = {
IWL_DEVICE_6030, IWL_DEVICE_6030,
}; };
const struct iwl_cfg iwl6030_2bgn_cfg = { const char iwl6030_2abg_name[] = "Intel(R) Centrino(R) Advanced-N 6230 ABG";
.name = "Intel(R) Centrino(R) Advanced-N 6230 BGN", const char iwl6030_2bg_name[] = "Intel(R) Centrino(R) Advanced-N 6230 BG";
IWL_DEVICE_6030,
.ht_params = &iwl6000_ht_params,
};
const struct iwl_cfg iwl6030_2bg_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6230 BG",
IWL_DEVICE_6030,
};
#define IWL_DEVICE_6035 \ #define IWL_DEVICE_6035 \
.fw_name_pre = IWL6030_FW_PRE, \ .fw_name_pre = IWL6030_FW_PRE, \
.ucode_api_max = IWL6035_UCODE_API_MAX, \ .ucode_api_max = IWL6035_UCODE_API_MAX, \
.ucode_api_min = IWL6035_UCODE_API_MIN, \ .ucode_api_min = IWL6035_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_6030, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_6030_EEPROM_VERSION, \ .nvm_ver = EEPROM_6030_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_6030_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_6030_TX_POWER_VERSION, \
.trans.base_params = &iwl6000_g2_base_params, \
.eeprom_params = &iwl6000_eeprom_params, \ .eeprom_params = &iwl6000_eeprom_params, \
.led_mode = IWL_LED_RF_STATE .led_mode = IWL_LED_RF_STATE
const struct iwl_cfg iwl6035_2agn_cfg = { const struct iwl_cfg iwl6035_2agn_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6235 AGN",
IWL_DEVICE_6035, IWL_DEVICE_6035,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
}; };
const struct iwl_cfg iwl6035_2agn_sff_cfg = { const char iwl6035_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6235 AGN";
.name = "Intel(R) Centrino(R) Ultimate-N 6235 AGN", const char iwl6035_2agn_sff_name[] = "Intel(R) Centrino(R) Ultimate-N 6235 AGN";
IWL_DEVICE_6035,
.ht_params = &iwl6000_ht_params,
};
const struct iwl_cfg iwl1030_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 1030 BGN",
IWL_DEVICE_6030,
.ht_params = &iwl6000_ht_params,
};
const struct iwl_cfg iwl1030_bg_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 1030 BG",
IWL_DEVICE_6030,
};
const struct iwl_cfg iwl130_bgn_cfg = { const struct iwl_cfg iwl130_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 130 BGN",
IWL_DEVICE_6030, IWL_DEVICE_6030,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
.rx_with_siso_diversity = true, .rx_with_siso_diversity = true,
}; };
const char iwl130_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 130 BGN";
const struct iwl_cfg iwl130_bg_cfg = { const struct iwl_cfg iwl130_bg_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N 130 BG",
IWL_DEVICE_6030, IWL_DEVICE_6030,
.rx_with_siso_diversity = true, .rx_with_siso_diversity = true,
}; };
const char iwl130_bg_name[] = "Intel(R) Centrino(R) Wireless-N 130 BG";
const struct iwl_cfg_trans_params iwl6000i_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_6000i,
.base_params = &iwl6000_base_params,
};
/* /*
* "i": Internal configuration, use internal Power Amplifier * "i": Internal configuration, use internal Power Amplifier
*/ */
@ -251,101 +220,111 @@ const struct iwl_cfg iwl130_bg_cfg = {
.fw_name_pre = IWL6000_FW_PRE, \ .fw_name_pre = IWL6000_FW_PRE, \
.ucode_api_max = IWL6000_UCODE_API_MAX, \ .ucode_api_max = IWL6000_UCODE_API_MAX, \
.ucode_api_min = IWL6000_UCODE_API_MIN, \ .ucode_api_min = IWL6000_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_6000i, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.valid_tx_ant = ANT_BC, /* .cfg overwrite */ \ .valid_tx_ant = ANT_BC, /* .cfg overwrite */ \
.valid_rx_ant = ANT_BC, /* .cfg overwrite */ \ .valid_rx_ant = ANT_BC, /* .cfg overwrite */ \
.nvm_ver = EEPROM_6000_EEPROM_VERSION, \ .nvm_ver = EEPROM_6000_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_6000_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_6000_TX_POWER_VERSION, \
.trans.base_params = &iwl6000_base_params, \
.eeprom_params = &iwl6000_eeprom_params, \ .eeprom_params = &iwl6000_eeprom_params, \
.led_mode = IWL_LED_BLINK .led_mode = IWL_LED_BLINK
const struct iwl_cfg iwl6000i_2agn_cfg = { const struct iwl_cfg iwl6000i_2agn_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N 6200 AGN",
IWL_DEVICE_6000i, IWL_DEVICE_6000i,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
}; };
const struct iwl_cfg iwl6000i_2abg_cfg = { const char iwl6000i_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6200 AGN";
.name = "Intel(R) Centrino(R) Advanced-N 6200 ABG",
const struct iwl_cfg iwl6000i_non_n_cfg = {
IWL_DEVICE_6000i, IWL_DEVICE_6000i,
}; };
const struct iwl_cfg iwl6000i_2bg_cfg = { const char iwl6000i_2abg_name[] = "Intel(R) Centrino(R) Advanced-N 6200 ABG";
.name = "Intel(R) Centrino(R) Advanced-N 6200 BG", const char iwl6000i_2bg_name[] = "Intel(R) Centrino(R) Advanced-N 6200 BG";
IWL_DEVICE_6000i,
const struct iwl_cfg_trans_params iwl6050_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_6050,
.base_params = &iwl6050_base_params,
}; };
#define IWL_DEVICE_6050 \ #define IWL_DEVICE_6050 \
.fw_name_pre = IWL6050_FW_PRE, \ .fw_name_pre = IWL6050_FW_PRE, \
.ucode_api_max = IWL6050_UCODE_API_MAX, \ .ucode_api_max = IWL6050_UCODE_API_MAX, \
.ucode_api_min = IWL6050_UCODE_API_MIN, \ .ucode_api_min = IWL6050_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_6050, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.valid_tx_ant = ANT_AB, /* .cfg overwrite */ \ .valid_tx_ant = ANT_AB, /* .cfg overwrite */ \
.valid_rx_ant = ANT_AB, /* .cfg overwrite */ \ .valid_rx_ant = ANT_AB, /* .cfg overwrite */ \
.nvm_ver = EEPROM_6050_EEPROM_VERSION, \ .nvm_ver = EEPROM_6050_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_6050_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_6050_TX_POWER_VERSION, \
.trans.base_params = &iwl6050_base_params, \
.eeprom_params = &iwl6000_eeprom_params, \ .eeprom_params = &iwl6000_eeprom_params, \
.led_mode = IWL_LED_BLINK, \ .led_mode = IWL_LED_BLINK, \
.internal_wimax_coex = true .internal_wimax_coex = true
const struct iwl_cfg iwl6050_2agn_cfg = { const struct iwl_cfg iwl6050_2agn_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN",
IWL_DEVICE_6050, IWL_DEVICE_6050,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
}; };
const char iwl6050_2agn_name[] = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN";
const struct iwl_cfg iwl6050_2abg_cfg = { const struct iwl_cfg iwl6050_2abg_cfg = {
.name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG",
IWL_DEVICE_6050, IWL_DEVICE_6050,
}; };
const char iwl6050_2abg_name[] = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG";
const struct iwl_cfg_trans_params iwl6150_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_6150,
.base_params = &iwl6050_base_params,
};
#define IWL_DEVICE_6150 \ #define IWL_DEVICE_6150 \
.fw_name_pre = IWL6050_FW_PRE, \ .fw_name_pre = IWL6050_FW_PRE, \
.ucode_api_max = IWL6050_UCODE_API_MAX, \ .ucode_api_max = IWL6050_UCODE_API_MAX, \
.ucode_api_min = IWL6050_UCODE_API_MIN, \ .ucode_api_min = IWL6050_UCODE_API_MIN, \
.trans.device_family = IWL_DEVICE_FAMILY_6150, \
.max_inst_size = IWL60_RTC_INST_SIZE, \ .max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \
.nvm_ver = EEPROM_6150_EEPROM_VERSION, \ .nvm_ver = EEPROM_6150_EEPROM_VERSION, \
.nvm_calib_ver = EEPROM_6150_TX_POWER_VERSION, \ .nvm_calib_ver = EEPROM_6150_TX_POWER_VERSION, \
.trans.base_params = &iwl6050_base_params, \
.eeprom_params = &iwl6000_eeprom_params, \ .eeprom_params = &iwl6000_eeprom_params, \
.led_mode = IWL_LED_BLINK, \ .led_mode = IWL_LED_BLINK, \
.internal_wimax_coex = true .internal_wimax_coex = true
const struct iwl_cfg iwl6150_bgn_cfg = { const struct iwl_cfg iwl6150_bgn_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BGN",
IWL_DEVICE_6150, IWL_DEVICE_6150,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
}; };
const char iwl6150_bgn_name[] = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BGN";
const struct iwl_cfg iwl6150_bg_cfg = { const struct iwl_cfg iwl6150_bg_cfg = {
.name = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BG",
IWL_DEVICE_6150, IWL_DEVICE_6150,
}; };
const char iwl6150_bg_name[] = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BG";
const struct iwl_cfg_trans_params iwl6000_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_6000,
.base_params = &iwl6000_base_params,
};
const struct iwl_cfg iwl6000_3agn_cfg = { const struct iwl_cfg iwl6000_3agn_cfg = {
.name = "Intel(R) Centrino(R) Ultimate-N 6300 AGN",
.fw_name_pre = IWL6000_FW_PRE, .fw_name_pre = IWL6000_FW_PRE,
.ucode_api_max = IWL6000_UCODE_API_MAX, .ucode_api_max = IWL6000_UCODE_API_MAX,
.ucode_api_min = IWL6000_UCODE_API_MIN, .ucode_api_min = IWL6000_UCODE_API_MIN,
.trans.device_family = IWL_DEVICE_FAMILY_6000,
.max_inst_size = IWL60_RTC_INST_SIZE, .max_inst_size = IWL60_RTC_INST_SIZE,
.max_data_size = IWL60_RTC_DATA_SIZE, .max_data_size = IWL60_RTC_DATA_SIZE,
.nvm_ver = EEPROM_6000_EEPROM_VERSION, .nvm_ver = EEPROM_6000_EEPROM_VERSION,
.nvm_calib_ver = EEPROM_6000_TX_POWER_VERSION, .nvm_calib_ver = EEPROM_6000_TX_POWER_VERSION,
.trans.base_params = &iwl6000_base_params,
.eeprom_params = &iwl6000_eeprom_params, .eeprom_params = &iwl6000_eeprom_params,
.ht_params = &iwl6000_ht_params, .ht_params = &iwl6000_ht_params,
.led_mode = IWL_LED_BLINK, .led_mode = IWL_LED_BLINK,
}; };
const char iwl6000_3agn_name[] = "Intel(R) Centrino(R) Ultimate-N 6300 AGN";
MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX));
MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX));

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* /*
* Copyright (C) 2012-2014, 2018-2020, 2023 Intel Corporation * Copyright (C) 2012-2014, 2018-2020, 2023, 2025 Intel Corporation
* Copyright (C) 2013-2014 Intel Mobile Communications GmbH * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
* Copyright (C) 2015 Intel Deutschland GmbH * Copyright (C) 2015 Intel Deutschland GmbH
*/ */
@ -89,9 +89,12 @@ static const struct iwl_ht_params iwl7000_ht_params = {
.ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ), .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
}; };
const struct iwl_cfg_trans_params iwl7000_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_7000,
.base_params = &iwl7000_base_params,
};
#define IWL_DEVICE_7000_COMMON \ #define IWL_DEVICE_7000_COMMON \
.trans.device_family = IWL_DEVICE_FAMILY_7000, \
.trans.base_params = &iwl7000_base_params, \
.led_mode = IWL_LED_RF_STATE, \ .led_mode = IWL_LED_RF_STATE, \
.nvm_hw_section_num = 0, \ .nvm_hw_section_num = 0, \
.non_shared_ant = ANT_A, \ .non_shared_ant = ANT_A, \
@ -117,8 +120,22 @@ static const struct iwl_ht_params iwl7000_ht_params = {
.ucode_api_max = IWL7265D_UCODE_API_MAX, \ .ucode_api_max = IWL7265D_UCODE_API_MAX, \
.ucode_api_min = IWL7265D_UCODE_API_MIN .ucode_api_min = IWL7265D_UCODE_API_MIN
const struct iwl_cfg iwl7260_2ac_cfg = { const char iwl7260_2ac_name[] = "Intel(R) Dual Band Wireless AC 7260";
.name = "Intel(R) Dual Band Wireless AC 7260", const char iwl7260_2n_name[] = "Intel(R) Dual Band Wireless N 7260";
const char iwl7260_n_name[] = "Intel(R) Wireless N 7260";
const char iwl3160_2ac_name[] = "Intel(R) Dual Band Wireless AC 3160";
const char iwl3160_2n_name[] = "Intel(R) Dual Band Wireless N 3160";
const char iwl3160_n_name[] = "Intel(R) Wireless N 3160";
const char iwl3165_2ac_name[] = "Intel(R) Dual Band Wireless AC 3165";
const char iwl3168_2ac_name[] = "Intel(R) Dual Band Wireless AC 3168";
const char iwl7265_2ac_name[] = "Intel(R) Dual Band Wireless AC 7265";
const char iwl7265_2n_name[] = "Intel(R) Dual Band Wireless N 7265";
const char iwl7265_n_name[] = "Intel(R) Wireless N 7265";
const char iwl7265d_2ac_name[] = "Intel(R) Dual Band Wireless AC 7265";
const char iwl7265d_2n_name[] = "Intel(R) Dual Band Wireless N 7265";
const char iwl7265d_n_name[] = "Intel(R) Wireless N 7265";
const struct iwl_cfg iwl7260_cfg = {
.fw_name_pre = IWL7260_FW_PRE, .fw_name_pre = IWL7260_FW_PRE,
IWL_DEVICE_7000, IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params, .ht_params = &iwl7000_ht_params,
@ -128,8 +145,7 @@ const struct iwl_cfg iwl7260_2ac_cfg = {
.dccm_len = IWL7260_DCCM_LEN, .dccm_len = IWL7260_DCCM_LEN,
}; };
const struct iwl_cfg iwl7260_2ac_cfg_high_temp = { const struct iwl_cfg iwl7260_high_temp_cfg = {
.name = "Intel(R) Dual Band Wireless AC 7260",
.fw_name_pre = IWL7260_FW_PRE, .fw_name_pre = IWL7260_FW_PRE,
IWL_DEVICE_7000, IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params, .ht_params = &iwl7000_ht_params,
@ -141,50 +157,7 @@ const struct iwl_cfg iwl7260_2ac_cfg_high_temp = {
.thermal_params = &iwl7000_high_temp_tt_params, .thermal_params = &iwl7000_high_temp_tt_params,
}; };
const struct iwl_cfg iwl7260_2n_cfg = { const struct iwl_cfg iwl3160_cfg = {
.name = "Intel(R) Dual Band Wireless N 7260",
.fw_name_pre = IWL7260_FW_PRE,
IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params,
.nvm_ver = IWL7260_NVM_VERSION,
.host_interrupt_operation_mode = true,
.lp_xtal_workaround = true,
.dccm_len = IWL7260_DCCM_LEN,
};
const struct iwl_cfg iwl7260_n_cfg = {
.name = "Intel(R) Wireless N 7260",
.fw_name_pre = IWL7260_FW_PRE,
IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params,
.nvm_ver = IWL7260_NVM_VERSION,
.host_interrupt_operation_mode = true,
.lp_xtal_workaround = true,
.dccm_len = IWL7260_DCCM_LEN,
};
const struct iwl_cfg iwl3160_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 3160",
.fw_name_pre = IWL3160_FW_PRE,
IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params,
.nvm_ver = IWL3160_NVM_VERSION,
.host_interrupt_operation_mode = true,
.dccm_len = IWL3160_DCCM_LEN,
};
const struct iwl_cfg iwl3160_2n_cfg = {
.name = "Intel(R) Dual Band Wireless N 3160",
.fw_name_pre = IWL3160_FW_PRE,
IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params,
.nvm_ver = IWL3160_NVM_VERSION,
.host_interrupt_operation_mode = true,
.dccm_len = IWL3160_DCCM_LEN,
};
const struct iwl_cfg iwl3160_n_cfg = {
.name = "Intel(R) Wireless N 3160",
.fw_name_pre = IWL3160_FW_PRE, .fw_name_pre = IWL3160_FW_PRE,
IWL_DEVICE_7000, IWL_DEVICE_7000,
.ht_params = &iwl7000_ht_params, .ht_params = &iwl7000_ht_params,
@ -211,7 +184,6 @@ static const struct iwl_ht_params iwl7265_ht_params = {
}; };
const struct iwl_cfg iwl3165_2ac_cfg = { const struct iwl_cfg iwl3165_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 3165",
.fw_name_pre = IWL7265D_FW_PRE, .fw_name_pre = IWL7265D_FW_PRE,
IWL_DEVICE_7005D, IWL_DEVICE_7005D,
.ht_params = &iwl7000_ht_params, .ht_params = &iwl7000_ht_params,
@ -221,7 +193,6 @@ const struct iwl_cfg iwl3165_2ac_cfg = {
}; };
const struct iwl_cfg iwl3168_2ac_cfg = { const struct iwl_cfg iwl3168_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 3168",
.fw_name_pre = IWL3168_FW_PRE, .fw_name_pre = IWL3168_FW_PRE,
IWL_DEVICE_3008, IWL_DEVICE_3008,
.ht_params = &iwl7000_ht_params, .ht_params = &iwl7000_ht_params,
@ -231,8 +202,7 @@ const struct iwl_cfg iwl3168_2ac_cfg = {
.nvm_type = IWL_NVM_SDP, .nvm_type = IWL_NVM_SDP,
}; };
const struct iwl_cfg iwl7265_2ac_cfg = { const struct iwl_cfg iwl7265_cfg = {
.name = "Intel(R) Dual Band Wireless AC 7265",
.fw_name_pre = IWL7265_FW_PRE, .fw_name_pre = IWL7265_FW_PRE,
IWL_DEVICE_7005, IWL_DEVICE_7005,
.ht_params = &iwl7265_ht_params, .ht_params = &iwl7265_ht_params,
@ -241,48 +211,7 @@ const struct iwl_cfg iwl7265_2ac_cfg = {
.dccm_len = IWL7265_DCCM_LEN, .dccm_len = IWL7265_DCCM_LEN,
}; };
const struct iwl_cfg iwl7265_2n_cfg = { const struct iwl_cfg iwl7265d_cfg = {
.name = "Intel(R) Dual Band Wireless N 7265",
.fw_name_pre = IWL7265_FW_PRE,
IWL_DEVICE_7005,
.ht_params = &iwl7265_ht_params,
.nvm_ver = IWL7265_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
};
const struct iwl_cfg iwl7265_n_cfg = {
.name = "Intel(R) Wireless N 7265",
.fw_name_pre = IWL7265_FW_PRE,
IWL_DEVICE_7005,
.ht_params = &iwl7265_ht_params,
.nvm_ver = IWL7265_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
};
const struct iwl_cfg iwl7265d_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 7265",
.fw_name_pre = IWL7265D_FW_PRE,
IWL_DEVICE_7005D,
.ht_params = &iwl7265_ht_params,
.nvm_ver = IWL7265D_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
};
const struct iwl_cfg iwl7265d_2n_cfg = {
.name = "Intel(R) Dual Band Wireless N 7265",
.fw_name_pre = IWL7265D_FW_PRE,
IWL_DEVICE_7005D,
.ht_params = &iwl7265_ht_params,
.nvm_ver = IWL7265D_NVM_VERSION,
.pwr_tx_backoffs = iwl7265_pwr_tx_backoffs,
.dccm_len = IWL7265_DCCM_LEN,
};
const struct iwl_cfg iwl7265d_n_cfg = {
.name = "Intel(R) Wireless N 7265",
.fw_name_pre = IWL7265D_FW_PRE, .fw_name_pre = IWL7265D_FW_PRE,
IWL_DEVICE_7005D, IWL_DEVICE_7005D,
.ht_params = &iwl7265_ht_params, .ht_params = &iwl7265_ht_params,

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* /*
* Copyright (C) 2014, 2018-2020, 2023 Intel Corporation * Copyright (C) 2014, 2018-2020, 2023, 2025 Intel Corporation
* Copyright (C) 2014-2015 Intel Mobile Communications GmbH * Copyright (C) 2014-2015 Intel Mobile Communications GmbH
* Copyright (C) 2016 Intel Deutschland GmbH * Copyright (C) 2016 Intel Deutschland GmbH
*/ */
@ -76,9 +76,12 @@ static const struct iwl_tt_params iwl8000_tt_params = {
.support_tx_backoff = true, .support_tx_backoff = true,
}; };
const struct iwl_cfg_trans_params iwl8000_trans_cfg = {
.device_family = IWL_DEVICE_FAMILY_8000,
.base_params = &iwl8000_base_params,
};
#define IWL_DEVICE_8000_COMMON \ #define IWL_DEVICE_8000_COMMON \
.trans.device_family = IWL_DEVICE_FAMILY_8000, \
.trans.base_params = &iwl8000_base_params, \
.led_mode = IWL_LED_RF_STATE, \ .led_mode = IWL_LED_RF_STATE, \
.nvm_hw_section_num = 10, \ .nvm_hw_section_num = 10, \
.features = NETIF_F_RXCSUM, \ .features = NETIF_F_RXCSUM, \
@ -96,11 +99,6 @@ static const struct iwl_tt_params iwl8000_tt_params = {
.dbgc_supported = true, \ .dbgc_supported = true, \
.min_umac_error_event_table = 0x800000 .min_umac_error_event_table = 0x800000
#define IWL_DEVICE_8000 \
IWL_DEVICE_8000_COMMON, \
.ucode_api_max = IWL8000_UCODE_API_MAX, \
.ucode_api_min = IWL8000_UCODE_API_MIN \
#define IWL_DEVICE_8260 \ #define IWL_DEVICE_8260 \
IWL_DEVICE_8000_COMMON, \ IWL_DEVICE_8000_COMMON, \
.ucode_api_max = IWL8000_UCODE_API_MAX, \ .ucode_api_max = IWL8000_UCODE_API_MAX, \
@ -111,23 +109,20 @@ static const struct iwl_tt_params iwl8000_tt_params = {
.ucode_api_max = IWL8265_UCODE_API_MAX, \ .ucode_api_max = IWL8265_UCODE_API_MAX, \
.ucode_api_min = IWL8265_UCODE_API_MIN \ .ucode_api_min = IWL8265_UCODE_API_MIN \
const struct iwl_cfg iwl8260_2n_cfg = { const char iwl8260_2n_name[] = "Intel(R) Dual Band Wireless N 8260";
.name = "Intel(R) Dual Band Wireless N 8260", const char iwl8260_2ac_name[] = "Intel(R) Dual Band Wireless AC 8260";
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 struct iwl_cfg iwl8260_cfg = {
.fw_name_pre = IWL8000_FW_PRE, .fw_name_pre = IWL8000_FW_PRE,
IWL_DEVICE_8260, IWL_DEVICE_8260,
.ht_params = &iwl8000_ht_params, .ht_params = &iwl8000_ht_params,
.nvm_ver = IWL8000_NVM_VERSION, .nvm_ver = IWL8000_NVM_VERSION,
}; };
const struct iwl_cfg iwl8260_2ac_cfg = { const struct iwl_cfg iwl8265_cfg = {
.name = "Intel(R) Dual Band Wireless AC 8260",
.fw_name_pre = IWL8000_FW_PRE,
IWL_DEVICE_8260,
.ht_params = &iwl8000_ht_params,
.nvm_ver = IWL8000_NVM_VERSION,
};
const struct iwl_cfg iwl8265_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 8265", .name = "Intel(R) Dual Band Wireless AC 8265",
.fw_name_pre = IWL8265_FW_PRE, .fw_name_pre = IWL8265_FW_PRE,
IWL_DEVICE_8265, IWL_DEVICE_8265,
@ -136,22 +131,5 @@ const struct iwl_cfg iwl8265_2ac_cfg = {
.vht_mu_mimo_supported = true, .vht_mu_mimo_supported = true,
}; };
const struct iwl_cfg iwl8275_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 8275",
.fw_name_pre = IWL8265_FW_PRE,
IWL_DEVICE_8265,
.ht_params = &iwl8000_ht_params,
.nvm_ver = IWL8000_NVM_VERSION,
.vht_mu_mimo_supported = true,
};
const struct iwl_cfg iwl4165_2ac_cfg = {
.name = "Intel(R) Dual Band Wireless AC 4165",
.fw_name_pre = IWL8000_FW_PRE,
IWL_DEVICE_8000,
.ht_params = &iwl8000_ht_params,
.nvm_ver = IWL8000_NVM_VERSION,
};
MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL8265_MODULE_FIRMWARE(IWL8265_UCODE_API_MAX)); MODULE_FIRMWARE(IWL8265_MODULE_FIRMWARE(IWL8265_UCODE_API_MAX));

View File

@ -72,13 +72,10 @@ static const struct iwl_base_params iwl_ax210_base_params = {
.smem_len = IWL_AX210_SMEM_LEN, \ .smem_len = IWL_AX210_SMEM_LEN, \
.features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \
.apmg_not_supported = true, \ .apmg_not_supported = true, \
.trans.mq_rx_supported = true, \
.vht_mu_mimo_supported = true, \ .vht_mu_mimo_supported = true, \
.mac_addr_from_csr = 0x380, \ .mac_addr_from_csr = 0x380, \
.ht_params = &iwl_22000_ht_params, \ .ht_params = &iwl_22000_ht_params, \
.nvm_ver = IWL_AX210_NVM_VERSION, \ .nvm_ver = IWL_AX210_NVM_VERSION, \
.trans.rf_id = true, \
.trans.gen2 = true, \
.nvm_type = IWL_NVM_EXT, \ .nvm_type = IWL_NVM_EXT, \
.dbgc_supported = true, \ .dbgc_supported = true, \
.min_umac_error_event_table = 0x400000, \ .min_umac_error_event_table = 0x400000, \
@ -98,9 +95,6 @@ static const struct iwl_base_params iwl_ax210_base_params = {
#define IWL_DEVICE_AX210 \ #define IWL_DEVICE_AX210 \
IWL_DEVICE_AX210_COMMON, \ IWL_DEVICE_AX210_COMMON, \
.ucode_api_max = IWL_AX210_UCODE_API_MAX, \ .ucode_api_max = IWL_AX210_UCODE_API_MAX, \
.trans.umac_prph_offset = 0x300000, \
.trans.device_family = IWL_DEVICE_FAMILY_AX210, \
.trans.base_params = &iwl_ax210_base_params, \
.min_txq_size = 128, \ .min_txq_size = 128, \
.gp2_reg_addr = 0xd02c68, \ .gp2_reg_addr = 0xd02c68, \
.min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_HE, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_HE, \
@ -218,16 +212,6 @@ const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = {
.num_rbds = IWL_NUM_RBDS_AX210_HE, .num_rbds = IWL_NUM_RBDS_AX210_HE,
}; };
const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0_long = {
.name = iwl_ax211_name,
.fw_name_pre = IWL_SO_A_GF_A_FW_PRE,
.uhb_supported = true,
IWL_DEVICE_AX210,
.num_rbds = IWL_NUM_RBDS_AX210_HE,
.trans.xtal_latency = 12000,
.trans.low_latency_xtal = true,
};
const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = { const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = {
.name = "Intel(R) Wi-Fi 6 AX210 160MHz", .name = "Intel(R) Wi-Fi 6 AX210 160MHz",
.fw_name_pre = IWL_TY_A_GF_A_FW_PRE, .fw_name_pre = IWL_TY_A_GF_A_FW_PRE,
@ -244,16 +228,6 @@ const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = {
.num_rbds = IWL_NUM_RBDS_AX210_HE, .num_rbds = IWL_NUM_RBDS_AX210_HE,
}; };
const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0_long = {
.name = iwl_ax411_name,
.fw_name_pre = IWL_SO_A_GF4_A_FW_PRE,
.uhb_supported = true,
IWL_DEVICE_AX210,
.num_rbds = IWL_NUM_RBDS_AX210_HE,
.trans.xtal_latency = 12000,
.trans.low_latency_xtal = true,
};
const struct iwl_cfg iwl_cfg_ma = { const struct iwl_cfg iwl_cfg_ma = {
.uhb_supported = true, .uhb_supported = true,
IWL_DEVICE_AX210, IWL_DEVICE_AX210,

View File

@ -75,12 +75,9 @@ const struct iwl_ht_params iwl_bz_ht_params = {
.smem_offset = IWL_BZ_SMEM_OFFSET, \ .smem_offset = IWL_BZ_SMEM_OFFSET, \
.smem_len = IWL_BZ_SMEM_LEN, \ .smem_len = IWL_BZ_SMEM_LEN, \
.apmg_not_supported = true, \ .apmg_not_supported = true, \
.trans.mq_rx_supported = true, \
.vht_mu_mimo_supported = true, \ .vht_mu_mimo_supported = true, \
.mac_addr_from_csr = 0x30, \ .mac_addr_from_csr = 0x30, \
.nvm_ver = IWL_BZ_NVM_VERSION, \ .nvm_ver = IWL_BZ_NVM_VERSION, \
.trans.rf_id = true, \
.trans.gen2 = true, \
.nvm_type = IWL_NVM_EXT, \ .nvm_type = IWL_NVM_EXT, \
.dbgc_supported = true, \ .dbgc_supported = true, \
.min_umac_error_event_table = 0xD0000, \ .min_umac_error_event_table = 0xD0000, \
@ -96,9 +93,6 @@ const struct iwl_ht_params iwl_bz_ht_params = {
.mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \ .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \
}, \ }, \
}, \ }, \
.trans.umac_prph_offset = 0x300000, \
.trans.device_family = IWL_DEVICE_FAMILY_BZ, \
.trans.base_params = &iwl_bz_base_params, \
.min_txq_size = 128, \ .min_txq_size = 128, \
.gp2_reg_addr = 0xd02c68, \ .gp2_reg_addr = 0xd02c68, \
.min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \

View File

@ -61,12 +61,9 @@ static const struct iwl_base_params iwl_dr_base_params = {
.smem_offset = IWL_DR_SMEM_OFFSET, \ .smem_offset = IWL_DR_SMEM_OFFSET, \
.smem_len = IWL_DR_SMEM_LEN, \ .smem_len = IWL_DR_SMEM_LEN, \
.apmg_not_supported = true, \ .apmg_not_supported = true, \
.trans.mq_rx_supported = true, \
.vht_mu_mimo_supported = true, \ .vht_mu_mimo_supported = true, \
.mac_addr_from_csr = 0x30, \ .mac_addr_from_csr = 0x30, \
.nvm_ver = IWL_DR_NVM_VERSION, \ .nvm_ver = IWL_DR_NVM_VERSION, \
.trans.rf_id = true, \
.trans.gen2 = true, \
.nvm_type = IWL_NVM_EXT, \ .nvm_type = IWL_NVM_EXT, \
.dbgc_supported = true, \ .dbgc_supported = true, \
.min_umac_error_event_table = 0xD0000, \ .min_umac_error_event_table = 0xD0000, \
@ -82,9 +79,6 @@ static const struct iwl_base_params iwl_dr_base_params = {
.mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \ .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \
}, \ }, \
}, \ }, \
.trans.umac_prph_offset = 0x300000, \
.trans.device_family = IWL_DEVICE_FAMILY_DR, \
.trans.base_params = &iwl_dr_base_params, \
.min_txq_size = 128, \ .min_txq_size = 128, \
.gp2_reg_addr = 0xd02c68, \ .gp2_reg_addr = 0xd02c68, \
.min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \

View File

@ -68,12 +68,9 @@ static const struct iwl_base_params iwl_sc_base_params = {
.smem_offset = IWL_SC_SMEM_OFFSET, \ .smem_offset = IWL_SC_SMEM_OFFSET, \
.smem_len = IWL_SC_SMEM_LEN, \ .smem_len = IWL_SC_SMEM_LEN, \
.apmg_not_supported = true, \ .apmg_not_supported = true, \
.trans.mq_rx_supported = true, \
.vht_mu_mimo_supported = true, \ .vht_mu_mimo_supported = true, \
.mac_addr_from_csr = 0x30, \ .mac_addr_from_csr = 0x30, \
.nvm_ver = IWL_SC_NVM_VERSION, \ .nvm_ver = IWL_SC_NVM_VERSION, \
.trans.rf_id = true, \
.trans.gen2 = true, \
.nvm_type = IWL_NVM_EXT, \ .nvm_type = IWL_NVM_EXT, \
.dbgc_supported = true, \ .dbgc_supported = true, \
.min_umac_error_event_table = 0xD0000, \ .min_umac_error_event_table = 0xD0000, \
@ -89,9 +86,6 @@ static const struct iwl_base_params iwl_sc_base_params = {
.mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \ .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \
}, \ }, \
}, \ }, \
.trans.umac_prph_offset = 0x300000, \
.trans.device_family = IWL_DEVICE_FAMILY_SC, \
.trans.base_params = &iwl_sc_base_params, \
.min_txq_size = 128, \ .min_txq_size = 128, \
.gp2_reg_addr = 0xd02c68, \ .gp2_reg_addr = 0xd02c68, \
.min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \

View File

@ -305,11 +305,8 @@ struct iwl_fw_mon_regs {
struct iwl_fw_mon_reg cur_frag; struct iwl_fw_mon_reg cur_frag;
}; };
#define TRANS_CFG_MARKER BIT(0)
/** /**
* struct iwl_cfg * struct iwl_cfg
* @trans: the trans-specific configuration part
* @name: Official name of the device * @name: Official name of the device
* @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
@ -360,7 +357,6 @@ struct iwl_fw_mon_regs {
* and/or the uCode API version instead. * and/or the uCode API version instead.
*/ */
struct iwl_cfg { struct iwl_cfg {
struct iwl_cfg_trans_params trans;
/* 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;
@ -491,6 +487,21 @@ extern const struct pci_device_id iwl_hw_card_ids[];
/* /*
* This list declares the config structures for all devices. * This list declares the config structures for all devices.
*/ */
extern const struct iwl_cfg_trans_params iwl1000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl5000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl2000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl2030_trans_cfg;
extern const struct iwl_cfg_trans_params iwl105_trans_cfg;
extern const struct iwl_cfg_trans_params iwl135_trans_cfg;
extern const struct iwl_cfg_trans_params iwl5150_trans_cfg;
extern const struct iwl_cfg_trans_params iwl6005_trans_cfg;
extern const struct iwl_cfg_trans_params iwl6030_trans_cfg;
extern const struct iwl_cfg_trans_params iwl6000i_trans_cfg;
extern const struct iwl_cfg_trans_params iwl6050_trans_cfg;
extern const struct iwl_cfg_trans_params iwl6150_trans_cfg;
extern const struct iwl_cfg_trans_params iwl6000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl7000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl8000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl9000_trans_cfg; extern const struct iwl_cfg_trans_params iwl9000_trans_cfg;
extern const struct iwl_cfg_trans_params iwl9560_trans_cfg; extern const struct iwl_cfg_trans_params iwl9560_trans_cfg;
extern const struct iwl_cfg_trans_params iwl9560_long_latency_trans_cfg; extern const struct iwl_cfg_trans_params iwl9560_long_latency_trans_cfg;
@ -508,6 +519,68 @@ extern const struct iwl_cfg_trans_params iwl_gl_trans_cfg;
extern const struct iwl_cfg_trans_params iwl_sc_trans_cfg; extern const struct iwl_cfg_trans_params iwl_sc_trans_cfg;
extern const struct iwl_cfg_trans_params iwl_dr_trans_cfg; extern const struct iwl_cfg_trans_params iwl_dr_trans_cfg;
extern const struct iwl_cfg_trans_params iwl_br_trans_cfg; extern const struct iwl_cfg_trans_params iwl_br_trans_cfg;
extern const char iwl1000_bgn_name[];
extern const char iwl1000_bg_name[];
extern const char iwl100_bgn_name[];
extern const char iwl100_bg_name[];
extern const char iwl2000_2bgn_name[];
extern const char iwl2000_2bgn_d_name[];
extern const char iwl2030_2bgn_name[];
extern const char iwl105_bgn_name[];
extern const char iwl105_bgn_d_name[];
extern const char iwl135_bgn_name[];
extern const char iwl5300_agn_name[];
extern const char iwl5100_bgn_name[];
extern const char iwl5100_abg_name[];
extern const char iwl5100_agn_name[];
extern const char iwl5350_agn_name[];
extern const char iwl5150_agn_name[];
extern const char iwl5150_abg_name[];
extern const char iwl6005_2agn_name[];
extern const char iwl6005_2abg_name[];
extern const char iwl6005_2bg_name[];
extern const char iwl6005_2agn_sff_name[];
extern const char iwl6005_2agn_d_name[];
extern const char iwl6005_2agn_mow1_name[];
extern const char iwl6005_2agn_mow2_name[];
extern const char iwl6030_2agn_name[];
extern const char iwl6030_2abg_name[];
extern const char iwl6030_2bgn_name[];
extern const char iwl6030_2bg_name[];
extern const char iwl6035_2agn_name[];
extern const char iwl6035_2agn_sff_name[];
extern const char iwl1030_bgn_name[];
extern const char iwl1030_bg_name[];
extern const char iwl130_bgn_name[];
extern const char iwl130_bg_name[];
extern const char iwl6000i_2agn_name[];
extern const char iwl6000i_2abg_name[];
extern const char iwl6000i_2bg_name[];
extern const char iwl6050_2agn_name[];
extern const char iwl6050_2abg_name[];
extern const char iwl6150_bgn_name[];
extern const char iwl6150_bg_name[];
extern const char iwl6000_3agn_name[];
extern const char iwl7260_2ac_name[];
extern const char iwl7260_2n_name[];
extern const char iwl7260_n_name[];
extern const char iwl3160_2ac_name[];
extern const char iwl3160_2n_name[];
extern const char iwl3160_n_name[];
extern const char iwl3165_2ac_name[];
extern const char iwl3168_2ac_name[];
extern const char iwl7265_2ac_name[];
extern const char iwl7265_2n_name[];
extern const char iwl7265_n_name[];
extern const char iwl7265d_2ac_name[];
extern const char iwl7265d_2n_name[];
extern const char iwl7265d_n_name[];
extern const char iwl8260_2n_name[];
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 iwl9162_name[]; extern const char iwl9162_name[];
extern const char iwl9260_name[]; extern const char iwl9260_name[];
extern const char iwl9260_1_name[]; extern const char iwl9260_1_name[];
@ -553,28 +626,18 @@ extern const char iwl_dr_name[];
extern const char iwl_br_name[]; extern const char iwl_br_name[];
#if IS_ENABLED(CONFIG_IWLDVM) #if IS_ENABLED(CONFIG_IWLDVM)
extern const struct iwl_cfg iwl5300_agn_cfg; extern const struct iwl_cfg iwl5300_agn_cfg;
extern const struct iwl_cfg iwl5100_agn_cfg;
extern const struct iwl_cfg iwl5350_agn_cfg; extern const struct iwl_cfg iwl5350_agn_cfg;
extern const struct iwl_cfg iwl5100_bgn_cfg; extern const struct iwl_cfg iwl5100_n_cfg;
extern const struct iwl_cfg iwl5100_abg_cfg; extern const struct iwl_cfg iwl5100_abg_cfg;
extern const struct iwl_cfg iwl5150_agn_cfg; extern const struct iwl_cfg iwl5150_agn_cfg;
extern const struct iwl_cfg iwl5150_abg_cfg; extern const struct iwl_cfg iwl5150_abg_cfg;
extern const struct iwl_cfg iwl6005_2agn_cfg; extern const struct iwl_cfg iwl6005_non_n_cfg;
extern const struct iwl_cfg iwl6005_2abg_cfg; extern const struct iwl_cfg iwl6005_n_cfg;
extern const struct iwl_cfg iwl6005_2bg_cfg; extern const struct iwl_cfg iwl6030_n_cfg;
extern const struct iwl_cfg iwl6005_2agn_sff_cfg; extern const struct iwl_cfg iwl6030_non_n_cfg;
extern const struct iwl_cfg iwl6005_2agn_d_cfg;
extern const struct iwl_cfg iwl6005_2agn_mow1_cfg;
extern const struct iwl_cfg iwl6005_2agn_mow2_cfg;
extern const struct iwl_cfg iwl1030_bgn_cfg;
extern const struct iwl_cfg iwl1030_bg_cfg;
extern const struct iwl_cfg iwl6030_2agn_cfg;
extern const struct iwl_cfg iwl6030_2abg_cfg;
extern const struct iwl_cfg iwl6030_2bgn_cfg;
extern const struct iwl_cfg iwl6030_2bg_cfg;
extern const struct iwl_cfg iwl6000i_2agn_cfg; extern const struct iwl_cfg iwl6000i_2agn_cfg;
extern const struct iwl_cfg iwl6000i_2abg_cfg; extern const struct iwl_cfg iwl6000i_non_n_cfg;
extern const struct iwl_cfg iwl6000i_2bg_cfg; extern const struct iwl_cfg iwl6000i_non_n_cfg;
extern const struct iwl_cfg iwl6000_3agn_cfg; extern const struct iwl_cfg iwl6000_3agn_cfg;
extern const struct iwl_cfg iwl6050_2agn_cfg; extern const struct iwl_cfg iwl6050_2agn_cfg;
extern const struct iwl_cfg iwl6050_2abg_cfg; extern const struct iwl_cfg iwl6050_2abg_cfg;
@ -587,36 +650,23 @@ extern const struct iwl_cfg iwl100_bg_cfg;
extern const struct iwl_cfg iwl130_bgn_cfg; extern const struct iwl_cfg iwl130_bgn_cfg;
extern const struct iwl_cfg iwl130_bg_cfg; extern const struct iwl_cfg iwl130_bg_cfg;
extern const struct iwl_cfg iwl2000_2bgn_cfg; extern const struct iwl_cfg iwl2000_2bgn_cfg;
extern const struct iwl_cfg iwl2000_2bgn_d_cfg;
extern const struct iwl_cfg iwl2030_2bgn_cfg; extern const struct iwl_cfg iwl2030_2bgn_cfg;
extern const struct iwl_cfg iwl6035_2agn_cfg; extern const struct iwl_cfg iwl6035_2agn_cfg;
extern const struct iwl_cfg iwl6035_2agn_sff_cfg;
extern const struct iwl_cfg iwl105_bgn_cfg; extern const struct iwl_cfg iwl105_bgn_cfg;
extern const struct iwl_cfg iwl105_bgn_d_cfg;
extern const struct iwl_cfg iwl135_bgn_cfg; extern const struct iwl_cfg iwl135_bgn_cfg;
#endif /* CONFIG_IWLDVM */ #endif /* CONFIG_IWLDVM */
#if IS_ENABLED(CONFIG_IWLMVM) #if IS_ENABLED(CONFIG_IWLMVM)
extern const struct iwl_ht_params iwl_22000_ht_params; extern const struct iwl_ht_params iwl_22000_ht_params;
extern const struct iwl_cfg iwl7260_2ac_cfg;
extern const struct iwl_cfg iwl7260_2ac_cfg_high_temp; extern const struct iwl_cfg iwl7260_cfg;
extern const struct iwl_cfg iwl7260_2n_cfg; extern const struct iwl_cfg iwl7260_high_temp_cfg;
extern const struct iwl_cfg iwl7260_n_cfg; extern const struct iwl_cfg iwl3160_cfg;
extern const struct iwl_cfg iwl3160_2ac_cfg;
extern const struct iwl_cfg iwl3160_2n_cfg;
extern const struct iwl_cfg iwl3160_n_cfg;
extern const struct iwl_cfg iwl3165_2ac_cfg; extern const struct iwl_cfg iwl3165_2ac_cfg;
extern const struct iwl_cfg iwl3168_2ac_cfg; extern const struct iwl_cfg iwl3168_2ac_cfg;
extern const struct iwl_cfg iwl7265_2ac_cfg; extern const struct iwl_cfg iwl7265_cfg;
extern const struct iwl_cfg iwl7265_2n_cfg; extern const struct iwl_cfg iwl7265d_cfg;
extern const struct iwl_cfg iwl7265_n_cfg; extern const struct iwl_cfg iwl8260_cfg;
extern const struct iwl_cfg iwl7265d_2ac_cfg; extern const struct iwl_cfg iwl8265_cfg;
extern const struct iwl_cfg iwl7265d_2n_cfg;
extern const struct iwl_cfg iwl7265d_n_cfg;
extern const struct iwl_cfg iwl8260_2n_cfg;
extern const struct iwl_cfg iwl8260_2ac_cfg;
extern const struct iwl_cfg iwl8265_2ac_cfg;
extern const struct iwl_cfg iwl8275_2ac_cfg;
extern const struct iwl_cfg iwl4165_2ac_cfg;
extern const struct iwl_cfg iwl9260_2ac_cfg; extern const struct iwl_cfg iwl9260_2ac_cfg;
extern const struct iwl_cfg iwl9260_2ac_cfg_80mhz; extern const struct iwl_cfg iwl9260_2ac_cfg_80mhz;
extern const struct iwl_cfg iwl9560_qu_jf_cfg; extern const struct iwl_cfg iwl9560_qu_jf_cfg;
@ -632,10 +682,8 @@ extern const struct iwl_cfg iwl_ax200_cfg_cc;
extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0;
extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz;
extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0; extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0;
extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0_long;
extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0; extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0;
extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0; extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0;
extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0_long;
extern const struct iwl_cfg iwl_cfg_ma; extern const struct iwl_cfg iwl_cfg_ma;

File diff suppressed because it is too large Load Diff

View File

@ -175,11 +175,7 @@ static void devinfo_no_trans_cfg_dups(struct kunit *test)
struct iwl_cfg_trans_params *cfg; struct iwl_cfg_trans_params *cfg;
bool found = false; bool found = false;
if (!(iwl_hw_card_ids[i].driver_data & TRANS_CFG_MARKER)) cfg = (void *)iwl_hw_card_ids[i].driver_data;
continue;
cfg = (void *)(iwl_hw_card_ids[i].driver_data &
~TRANS_CFG_MARKER);
for (int j = 0; j < p; j++) { for (int j = 0; j < p; j++) {
if (cfgs[j] == cfg) { if (cfgs[j] == cfg) {