1bfcc09ddSBjoern A. Zeeb // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 2bfcc09ddSBjoern A. Zeeb /* 3*9af1bba4SBjoern A. Zeeb * Copyright (C) 2012-2014, 2018-2020, 2023 Intel Corporation 4bfcc09ddSBjoern A. Zeeb * Copyright (C) 2013-2014 Intel Mobile Communications GmbH 5bfcc09ddSBjoern A. Zeeb * Copyright (C) 2015 Intel Deutschland GmbH 6bfcc09ddSBjoern A. Zeeb */ 7bfcc09ddSBjoern A. Zeeb #include <linux/module.h> 8bfcc09ddSBjoern A. Zeeb #include <linux/stringify.h> 9bfcc09ddSBjoern A. Zeeb #include "iwl-config.h" 10bfcc09ddSBjoern A. Zeeb 11bfcc09ddSBjoern A. Zeeb /* Highest firmware API version supported */ 12bfcc09ddSBjoern A. Zeeb #define IWL7260_UCODE_API_MAX 17 13bfcc09ddSBjoern A. Zeeb #define IWL7265_UCODE_API_MAX 17 14bfcc09ddSBjoern A. Zeeb #define IWL7265D_UCODE_API_MAX 29 15bfcc09ddSBjoern A. Zeeb #define IWL3168_UCODE_API_MAX 29 16bfcc09ddSBjoern A. Zeeb 17bfcc09ddSBjoern A. Zeeb /* Lowest firmware API version supported */ 18bfcc09ddSBjoern A. Zeeb #define IWL7260_UCODE_API_MIN 17 19bfcc09ddSBjoern A. Zeeb #define IWL7265_UCODE_API_MIN 17 20bfcc09ddSBjoern A. Zeeb #define IWL7265D_UCODE_API_MIN 22 21bfcc09ddSBjoern A. Zeeb #define IWL3168_UCODE_API_MIN 22 22bfcc09ddSBjoern A. Zeeb 23bfcc09ddSBjoern A. Zeeb /* NVM versions */ 24bfcc09ddSBjoern A. Zeeb #define IWL7260_NVM_VERSION 0x0a1d 25bfcc09ddSBjoern A. Zeeb #define IWL3160_NVM_VERSION 0x709 26bfcc09ddSBjoern A. Zeeb #define IWL3165_NVM_VERSION 0x709 27bfcc09ddSBjoern A. Zeeb #define IWL3168_NVM_VERSION 0xd01 28bfcc09ddSBjoern A. Zeeb #define IWL7265_NVM_VERSION 0x0a1d 29bfcc09ddSBjoern A. Zeeb #define IWL7265D_NVM_VERSION 0x0c11 30bfcc09ddSBjoern A. Zeeb 31bfcc09ddSBjoern A. Zeeb /* DCCM offsets and lengths */ 32bfcc09ddSBjoern A. Zeeb #define IWL7000_DCCM_OFFSET 0x800000 33bfcc09ddSBjoern A. Zeeb #define IWL7260_DCCM_LEN 0x14000 34bfcc09ddSBjoern A. Zeeb #define IWL3160_DCCM_LEN 0x10000 35bfcc09ddSBjoern A. Zeeb #define IWL7265_DCCM_LEN 0x17A00 36bfcc09ddSBjoern A. Zeeb 37*9af1bba4SBjoern A. Zeeb #define IWL7260_FW_PRE "iwlwifi-7260" 38*9af1bba4SBjoern A. Zeeb #define IWL7260_MODULE_FIRMWARE(api) IWL7260_FW_PRE "-" __stringify(api) ".ucode" 39bfcc09ddSBjoern A. Zeeb 40*9af1bba4SBjoern A. Zeeb #define IWL3160_FW_PRE "iwlwifi-3160" 41*9af1bba4SBjoern A. Zeeb #define IWL3160_MODULE_FIRMWARE(api) IWL3160_FW_PRE "-" __stringify(api) ".ucode" 42bfcc09ddSBjoern A. Zeeb 43*9af1bba4SBjoern A. Zeeb #define IWL3168_FW_PRE "iwlwifi-3168" 44*9af1bba4SBjoern A. Zeeb #define IWL3168_MODULE_FIRMWARE(api) IWL3168_FW_PRE "-" __stringify(api) ".ucode" 45bfcc09ddSBjoern A. Zeeb 46*9af1bba4SBjoern A. Zeeb #define IWL7265_FW_PRE "iwlwifi-7265" 47*9af1bba4SBjoern A. Zeeb #define IWL7265_MODULE_FIRMWARE(api) IWL7265_FW_PRE "-" __stringify(api) ".ucode" 48bfcc09ddSBjoern A. Zeeb 49*9af1bba4SBjoern A. Zeeb #define IWL7265D_FW_PRE "iwlwifi-7265D" 50*9af1bba4SBjoern A. Zeeb #define IWL7265D_MODULE_FIRMWARE(api) IWL7265D_FW_PRE "-" __stringify(api) ".ucode" 51bfcc09ddSBjoern A. Zeeb 52bfcc09ddSBjoern A. Zeeb static const struct iwl_base_params iwl7000_base_params = { 53bfcc09ddSBjoern A. Zeeb .eeprom_size = OTP_LOW_IMAGE_SIZE_16K, 54bfcc09ddSBjoern A. Zeeb .num_of_queues = 31, 55bfcc09ddSBjoern A. Zeeb .max_tfd_queue_size = 256, 56bfcc09ddSBjoern A. Zeeb .shadow_ram_support = true, 57bfcc09ddSBjoern A. Zeeb .led_compensation = 57, 58bfcc09ddSBjoern A. Zeeb .wd_timeout = IWL_LONG_WD_TIMEOUT, 59bfcc09ddSBjoern A. Zeeb .max_event_log_size = 512, 60bfcc09ddSBjoern A. Zeeb .shadow_reg_enable = true, 61bfcc09ddSBjoern A. Zeeb .pcie_l1_allowed = true, 62bfcc09ddSBjoern A. Zeeb .apmg_wake_up_wa = true, 63bfcc09ddSBjoern A. Zeeb }; 64bfcc09ddSBjoern A. Zeeb 65bfcc09ddSBjoern A. Zeeb static const struct iwl_tt_params iwl7000_high_temp_tt_params = { 66bfcc09ddSBjoern A. Zeeb .ct_kill_entry = 118, 67bfcc09ddSBjoern A. Zeeb .ct_kill_exit = 96, 68bfcc09ddSBjoern A. Zeeb .ct_kill_duration = 5, 69bfcc09ddSBjoern A. Zeeb .dynamic_smps_entry = 114, 70bfcc09ddSBjoern A. Zeeb .dynamic_smps_exit = 110, 71bfcc09ddSBjoern A. Zeeb .tx_protection_entry = 114, 72bfcc09ddSBjoern A. Zeeb .tx_protection_exit = 108, 73bfcc09ddSBjoern A. Zeeb .tx_backoff = { 74bfcc09ddSBjoern A. Zeeb {.temperature = 112, .backoff = 300}, 75bfcc09ddSBjoern A. Zeeb {.temperature = 113, .backoff = 800}, 76bfcc09ddSBjoern A. Zeeb {.temperature = 114, .backoff = 1500}, 77bfcc09ddSBjoern A. Zeeb {.temperature = 115, .backoff = 3000}, 78bfcc09ddSBjoern A. Zeeb {.temperature = 116, .backoff = 5000}, 79bfcc09ddSBjoern A. Zeeb {.temperature = 117, .backoff = 10000}, 80bfcc09ddSBjoern A. Zeeb }, 81bfcc09ddSBjoern A. Zeeb .support_ct_kill = true, 82bfcc09ddSBjoern A. Zeeb .support_dynamic_smps = true, 83bfcc09ddSBjoern A. Zeeb .support_tx_protection = true, 84bfcc09ddSBjoern A. Zeeb .support_tx_backoff = true, 85bfcc09ddSBjoern A. Zeeb }; 86bfcc09ddSBjoern A. Zeeb 87bfcc09ddSBjoern A. Zeeb static const struct iwl_ht_params iwl7000_ht_params = { 88bfcc09ddSBjoern A. Zeeb .stbc = true, 89bfcc09ddSBjoern A. Zeeb .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ), 90bfcc09ddSBjoern A. Zeeb }; 91bfcc09ddSBjoern A. Zeeb 92bfcc09ddSBjoern A. Zeeb #define IWL_DEVICE_7000_COMMON \ 93bfcc09ddSBjoern A. Zeeb .trans.device_family = IWL_DEVICE_FAMILY_7000, \ 94bfcc09ddSBjoern A. Zeeb .trans.base_params = &iwl7000_base_params, \ 95bfcc09ddSBjoern A. Zeeb .led_mode = IWL_LED_RF_STATE, \ 96bfcc09ddSBjoern A. Zeeb .nvm_hw_section_num = 0, \ 97bfcc09ddSBjoern A. Zeeb .non_shared_ant = ANT_A, \ 98bfcc09ddSBjoern A. Zeeb .dccm_offset = IWL7000_DCCM_OFFSET 99bfcc09ddSBjoern A. Zeeb 100bfcc09ddSBjoern A. Zeeb #define IWL_DEVICE_7000 \ 101bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000_COMMON, \ 102bfcc09ddSBjoern A. Zeeb .ucode_api_max = IWL7260_UCODE_API_MAX, \ 103bfcc09ddSBjoern A. Zeeb .ucode_api_min = IWL7260_UCODE_API_MIN 104bfcc09ddSBjoern A. Zeeb 105bfcc09ddSBjoern A. Zeeb #define IWL_DEVICE_7005 \ 106bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000_COMMON, \ 107bfcc09ddSBjoern A. Zeeb .ucode_api_max = IWL7265_UCODE_API_MAX, \ 108bfcc09ddSBjoern A. Zeeb .ucode_api_min = IWL7265_UCODE_API_MIN 109bfcc09ddSBjoern A. Zeeb 110bfcc09ddSBjoern A. Zeeb #define IWL_DEVICE_3008 \ 111bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000_COMMON, \ 112bfcc09ddSBjoern A. Zeeb .ucode_api_max = IWL3168_UCODE_API_MAX, \ 113bfcc09ddSBjoern A. Zeeb .ucode_api_min = IWL3168_UCODE_API_MIN 114bfcc09ddSBjoern A. Zeeb 115bfcc09ddSBjoern A. Zeeb #define IWL_DEVICE_7005D \ 116bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000_COMMON, \ 117bfcc09ddSBjoern A. Zeeb .ucode_api_max = IWL7265D_UCODE_API_MAX, \ 118bfcc09ddSBjoern A. Zeeb .ucode_api_min = IWL7265D_UCODE_API_MIN 119bfcc09ddSBjoern A. Zeeb 120bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7260_2ac_cfg = { 121bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 7260", 122bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7260_FW_PRE, 123bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 124bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 125bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7260_NVM_VERSION, 126bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 127bfcc09ddSBjoern A. Zeeb .lp_xtal_workaround = true, 128bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7260_DCCM_LEN, 129bfcc09ddSBjoern A. Zeeb }; 130bfcc09ddSBjoern A. Zeeb 131bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7260_2ac_cfg_high_temp = { 132bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 7260", 133bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7260_FW_PRE, 134bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 135bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 136bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7260_NVM_VERSION, 137bfcc09ddSBjoern A. Zeeb .high_temp = true, 138bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 139bfcc09ddSBjoern A. Zeeb .lp_xtal_workaround = true, 140bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7260_DCCM_LEN, 141bfcc09ddSBjoern A. Zeeb .thermal_params = &iwl7000_high_temp_tt_params, 142bfcc09ddSBjoern A. Zeeb }; 143bfcc09ddSBjoern A. Zeeb 144bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7260_2n_cfg = { 145bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless N 7260", 146bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7260_FW_PRE, 147bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 148bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 149bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7260_NVM_VERSION, 150bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 151bfcc09ddSBjoern A. Zeeb .lp_xtal_workaround = true, 152bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7260_DCCM_LEN, 153bfcc09ddSBjoern A. Zeeb }; 154bfcc09ddSBjoern A. Zeeb 155bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7260_n_cfg = { 156bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Wireless N 7260", 157bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7260_FW_PRE, 158bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 159bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 160bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7260_NVM_VERSION, 161bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 162bfcc09ddSBjoern A. Zeeb .lp_xtal_workaround = true, 163bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7260_DCCM_LEN, 164bfcc09ddSBjoern A. Zeeb }; 165bfcc09ddSBjoern A. Zeeb 166bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl3160_2ac_cfg = { 167bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 3160", 168bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL3160_FW_PRE, 169bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 170bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 171bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL3160_NVM_VERSION, 172bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 173bfcc09ddSBjoern A. Zeeb .dccm_len = IWL3160_DCCM_LEN, 174bfcc09ddSBjoern A. Zeeb }; 175bfcc09ddSBjoern A. Zeeb 176bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl3160_2n_cfg = { 177bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless N 3160", 178bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL3160_FW_PRE, 179bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 180bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 181bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL3160_NVM_VERSION, 182bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 183bfcc09ddSBjoern A. Zeeb .dccm_len = IWL3160_DCCM_LEN, 184bfcc09ddSBjoern A. Zeeb }; 185bfcc09ddSBjoern A. Zeeb 186bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl3160_n_cfg = { 187bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Wireless N 3160", 188bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL3160_FW_PRE, 189bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7000, 190bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 191bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL3160_NVM_VERSION, 192bfcc09ddSBjoern A. Zeeb .host_interrupt_operation_mode = true, 193bfcc09ddSBjoern A. Zeeb .dccm_len = IWL3160_DCCM_LEN, 194bfcc09ddSBjoern A. Zeeb }; 195bfcc09ddSBjoern A. Zeeb 196bfcc09ddSBjoern A. Zeeb static const struct iwl_pwr_tx_backoff iwl7265_pwr_tx_backoffs[] = { 197bfcc09ddSBjoern A. Zeeb {.pwr = 1600, .backoff = 0}, 198bfcc09ddSBjoern A. Zeeb {.pwr = 1300, .backoff = 467}, 199bfcc09ddSBjoern A. Zeeb {.pwr = 900, .backoff = 1900}, 200bfcc09ddSBjoern A. Zeeb {.pwr = 800, .backoff = 2630}, 201bfcc09ddSBjoern A. Zeeb {.pwr = 700, .backoff = 3720}, 202bfcc09ddSBjoern A. Zeeb {.pwr = 600, .backoff = 5550}, 203bfcc09ddSBjoern A. Zeeb {.pwr = 500, .backoff = 9350}, 204bfcc09ddSBjoern A. Zeeb {0}, 205bfcc09ddSBjoern A. Zeeb }; 206bfcc09ddSBjoern A. Zeeb 207bfcc09ddSBjoern A. Zeeb static const struct iwl_ht_params iwl7265_ht_params = { 208bfcc09ddSBjoern A. Zeeb .stbc = true, 209bfcc09ddSBjoern A. Zeeb .ldpc = true, 210bfcc09ddSBjoern A. Zeeb .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ), 211bfcc09ddSBjoern A. Zeeb }; 212bfcc09ddSBjoern A. Zeeb 213bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl3165_2ac_cfg = { 214bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 3165", 215bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265D_FW_PRE, 216bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005D, 217bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 218bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL3165_NVM_VERSION, 219bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 220bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 221bfcc09ddSBjoern A. Zeeb }; 222bfcc09ddSBjoern A. Zeeb 223bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl3168_2ac_cfg = { 224bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 3168", 225bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL3168_FW_PRE, 226bfcc09ddSBjoern A. Zeeb IWL_DEVICE_3008, 227bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7000_ht_params, 228bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL3168_NVM_VERSION, 229bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 230bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 231bfcc09ddSBjoern A. Zeeb .nvm_type = IWL_NVM_SDP, 232bfcc09ddSBjoern A. Zeeb }; 233bfcc09ddSBjoern A. Zeeb 234bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7265_2ac_cfg = { 235bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 7265", 236bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265_FW_PRE, 237bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005, 238bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7265_ht_params, 239bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7265_NVM_VERSION, 240bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 241bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 242bfcc09ddSBjoern A. Zeeb }; 243bfcc09ddSBjoern A. Zeeb 244bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7265_2n_cfg = { 245bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless N 7265", 246bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265_FW_PRE, 247bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005, 248bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7265_ht_params, 249bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7265_NVM_VERSION, 250bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 251bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 252bfcc09ddSBjoern A. Zeeb }; 253bfcc09ddSBjoern A. Zeeb 254bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7265_n_cfg = { 255bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Wireless N 7265", 256bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265_FW_PRE, 257bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005, 258bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7265_ht_params, 259bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7265_NVM_VERSION, 260bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 261bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 262bfcc09ddSBjoern A. Zeeb }; 263bfcc09ddSBjoern A. Zeeb 264bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7265d_2ac_cfg = { 265bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless AC 7265", 266bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265D_FW_PRE, 267bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005D, 268bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7265_ht_params, 269bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7265D_NVM_VERSION, 270bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 271bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 272bfcc09ddSBjoern A. Zeeb }; 273bfcc09ddSBjoern A. Zeeb 274bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7265d_2n_cfg = { 275bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Dual Band Wireless N 7265", 276bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265D_FW_PRE, 277bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005D, 278bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7265_ht_params, 279bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7265D_NVM_VERSION, 280bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 281bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 282bfcc09ddSBjoern A. Zeeb }; 283bfcc09ddSBjoern A. Zeeb 284bfcc09ddSBjoern A. Zeeb const struct iwl_cfg iwl7265d_n_cfg = { 285bfcc09ddSBjoern A. Zeeb .name = "Intel(R) Wireless N 7265", 286bfcc09ddSBjoern A. Zeeb .fw_name_pre = IWL7265D_FW_PRE, 287bfcc09ddSBjoern A. Zeeb IWL_DEVICE_7005D, 288bfcc09ddSBjoern A. Zeeb .ht_params = &iwl7265_ht_params, 289bfcc09ddSBjoern A. Zeeb .nvm_ver = IWL7265D_NVM_VERSION, 290bfcc09ddSBjoern A. Zeeb .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, 291bfcc09ddSBjoern A. Zeeb .dccm_len = IWL7265_DCCM_LEN, 292bfcc09ddSBjoern A. Zeeb }; 293bfcc09ddSBjoern A. Zeeb 294bfcc09ddSBjoern A. Zeeb MODULE_FIRMWARE(IWL7260_MODULE_FIRMWARE(IWL7260_UCODE_API_MAX)); 295bfcc09ddSBjoern A. Zeeb MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL7260_UCODE_API_MAX)); 296bfcc09ddSBjoern A. Zeeb MODULE_FIRMWARE(IWL3168_MODULE_FIRMWARE(IWL3168_UCODE_API_MAX)); 297bfcc09ddSBjoern A. Zeeb MODULE_FIRMWARE(IWL7265_MODULE_FIRMWARE(IWL7265_UCODE_API_MAX)); 298bfcc09ddSBjoern A. Zeeb MODULE_FIRMWARE(IWL7265D_MODULE_FIRMWARE(IWL7265D_UCODE_API_MAX)); 299