Path: blob/main/sys/contrib/dev/iwlwifi/iwl-config.h
48253 views
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */1/*2* Copyright (C) 2005-2014, 2018-2021 Intel Corporation3* Copyright (C) 2016-2017 Intel Deutschland GmbH4* Copyright (C) 2018-2025 Intel Corporation5*/6#ifndef __IWL_CONFIG_H__7#define __IWL_CONFIG_H__89#include <linux/types.h>10#include <linux/netdevice.h>11#include <linux/ieee80211.h>12#include <linux/nl80211.h>13#include <linux/mod_devicetable.h>14#include "iwl-csr.h"15#include "iwl-drv.h"1617enum iwl_device_family {18IWL_DEVICE_FAMILY_UNDEFINED,19IWL_DEVICE_FAMILY_1000,20IWL_DEVICE_FAMILY_100,21IWL_DEVICE_FAMILY_2000,22IWL_DEVICE_FAMILY_2030,23IWL_DEVICE_FAMILY_105,24IWL_DEVICE_FAMILY_135,25IWL_DEVICE_FAMILY_5000,26IWL_DEVICE_FAMILY_5150,27IWL_DEVICE_FAMILY_6000,28IWL_DEVICE_FAMILY_6000i,29IWL_DEVICE_FAMILY_6005,30IWL_DEVICE_FAMILY_6030,31IWL_DEVICE_FAMILY_6050,32IWL_DEVICE_FAMILY_6150,33IWL_DEVICE_FAMILY_7000,34IWL_DEVICE_FAMILY_8000,35IWL_DEVICE_FAMILY_9000,36IWL_DEVICE_FAMILY_22000,37IWL_DEVICE_FAMILY_AX210,38IWL_DEVICE_FAMILY_BZ,39IWL_DEVICE_FAMILY_SC,40IWL_DEVICE_FAMILY_DR,41};4243#if defined(__FreeBSD__)44static const char *iwl_device_family_str[] = {45[IWL_DEVICE_FAMILY_UNDEFINED] = "undefined",46[IWL_DEVICE_FAMILY_1000] = "1000",47[IWL_DEVICE_FAMILY_100] = "100",48[IWL_DEVICE_FAMILY_2000] = "2000",49[IWL_DEVICE_FAMILY_2030] = "2030",50[IWL_DEVICE_FAMILY_105] = "105",51[IWL_DEVICE_FAMILY_135] = "135",52[IWL_DEVICE_FAMILY_5000] = "5000",53[IWL_DEVICE_FAMILY_5150] = "5150",54[IWL_DEVICE_FAMILY_6000] = "6000",55[IWL_DEVICE_FAMILY_6000i] = "6000i",56[IWL_DEVICE_FAMILY_6005] = "6005",57[IWL_DEVICE_FAMILY_6030] = "6030",58[IWL_DEVICE_FAMILY_6050] = "6050",59[IWL_DEVICE_FAMILY_6150] = "6150",60[IWL_DEVICE_FAMILY_7000] = "7000",61[IWL_DEVICE_FAMILY_8000] = "8000",62[IWL_DEVICE_FAMILY_9000] = "9000",63[IWL_DEVICE_FAMILY_22000] = "22000",64[IWL_DEVICE_FAMILY_AX210] = "AX210",65[IWL_DEVICE_FAMILY_BZ] = "BZ",66[IWL_DEVICE_FAMILY_SC] = "SC",67};6869static inline const char *70iwl_device_family_name(enum iwl_device_family devive_family)71{72if (devive_family < 0 ||73devive_family >= ARRAY_SIZE(iwl_device_family_str))74return "unknown";75return (iwl_device_family_str[devive_family]);76}77#endif7879/*80* LED mode81* IWL_LED_DEFAULT: use device default82* IWL_LED_RF_STATE: turn LED on/off based on RF state83* LED ON = RF ON84* LED OFF = RF OFF85* IWL_LED_BLINK: adjust led blink rate based on blink table86* IWL_LED_DISABLE: led disabled87*/88enum iwl_led_mode {89IWL_LED_DEFAULT,90IWL_LED_RF_STATE,91IWL_LED_BLINK,92IWL_LED_DISABLE,93};9495/**96* enum iwl_nvm_type - nvm formats97* @IWL_NVM: the regular format98* @IWL_NVM_EXT: extended NVM format99* @IWL_NVM_SDP: NVM format used by 3168 series100*/101enum iwl_nvm_type {102IWL_NVM,103IWL_NVM_EXT,104IWL_NVM_SDP,105};106107/*108* This is the threshold value of plcp error rate per 100mSecs. It is109* used to set and check for the validity of plcp_delta.110*/111#define IWL_MAX_PLCP_ERR_THRESHOLD_MIN 1112#define IWL_MAX_PLCP_ERR_THRESHOLD_DEF 50113#define IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF 100114#define IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF 200115#define IWL_MAX_PLCP_ERR_THRESHOLD_MAX 255116#define IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE 0117118/* TX queue watchdog timeouts in mSecs */119#define IWL_WATCHDOG_DISABLED 0120#define IWL_DEF_WD_TIMEOUT 2500121#define IWL_LONG_WD_TIMEOUT 10000122#define IWL_MAX_WD_TIMEOUT 120000123124#define IWL_DEFAULT_MAX_TX_POWER 22125#define IWL_TX_CSUM_NETIF_FLAGS (NETIF_F_IPV6_CSUM | NETIF_F_IP_CSUM |\126NETIF_F_TSO | NETIF_F_TSO6)127#define IWL_CSUM_NETIF_FLAGS_MASK (IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM)128129/* Antenna presence definitions */130#define ANT_NONE 0x0131#define ANT_INVALID 0xff132#define ANT_A BIT(0)133#define ANT_B BIT(1)134#define ANT_C BIT(2)135#define ANT_AB (ANT_A | ANT_B)136#define ANT_AC (ANT_A | ANT_C)137#define ANT_BC (ANT_B | ANT_C)138#define ANT_ABC (ANT_A | ANT_B | ANT_C)139140141#define IWL_FW_AND_PNVM(pfx, api) \142MODULE_FIRMWARE(pfx "-" __stringify(api) ".ucode"); \143MODULE_FIRMWARE(pfx ".pnvm")144145static inline u8 num_of_ant(u8 mask)146{147return !!((mask) & ANT_A) +148!!((mask) & ANT_B) +149!!((mask) & ANT_C);150}151152/**153* struct iwl_fw_mon_reg - FW monitor register info154* @addr: register address155* @mask: register mask156*/157struct iwl_fw_mon_reg {158u32 addr;159u32 mask;160};161162/**163* struct iwl_fw_mon_regs - FW monitor registers164* @write_ptr: write pointer register165* @cycle_cnt: cycle count register166* @cur_frag: current fragment in use167*/168struct iwl_fw_mon_regs {169struct iwl_fw_mon_reg write_ptr;170struct iwl_fw_mon_reg cycle_cnt;171struct iwl_fw_mon_reg cur_frag;172};173174/**175* struct iwl_family_base_params - base parameters for an entire family176* @max_ll_items: max number of OTP blocks177* @shadow_ram_support: shadow support for OTP memory178* @led_compensation: compensate on the led on/off time per HW according179* to the deviation to achieve the desired led frequency.180* The detail algorithm is described in iwl-led.c181* @wd_timeout: TX queues watchdog timeout182* @max_event_log_size: size of event log buffer size for ucode event logging183* @shadow_reg_enable: HW shadow register support184* @apmg_not_supported: there's no APMG185* @apmg_wake_up_wa: should the MAC access REQ be asserted when a command186* is in flight. This is due to a HW bug in 7260, 3160 and 7265.187* @scd_chain_ext_wa: should the chain extension feature in SCD be disabled.188* @max_tfd_queue_size: max number of entries in tfd queue.189* @eeprom_size: EEPROM size190* @num_of_queues: number of HW TX queues supported191* @pcie_l1_allowed: PCIe L1 state is allowed192* @pll_cfg: PLL configuration needed193* @nvm_hw_section_num: the ID of the HW NVM section194* @features: hw features, any combination of feature_passlist195* @smem_offset: offset from which the SMEM begins196* @smem_len: the length of SMEM197* @mac_addr_from_csr: read HW address from CSR registers at this offset198* @d3_debug_data_base_addr: base address where D3 debug data is stored199* @d3_debug_data_length: length of the D3 debug data200* @min_ba_txq_size: minimum number of slots required in a TX queue used201* for aggregation202* @min_txq_size: minimum number of slots required in a TX queue203* @gp2_reg_addr: GP2 (timer) register address204* @min_umac_error_event_table: minimum SMEM location of UMAC error table205* @mon_dbgi_regs: monitor DBGI registers206* @mon_dram_regs: monitor DRAM registers207* @mon_smem_regs: monitor SMEM registers208* @ucode_api_max: Highest version of uCode API supported by driver.209* @ucode_api_min: Lowest version of uCode API supported by driver.210*/211struct iwl_family_base_params {212unsigned int wd_timeout;213214u16 eeprom_size;215u16 max_event_log_size;216217u8 pll_cfg:1, /* for iwl_pcie_apm_init() */218shadow_ram_support:1,219shadow_reg_enable:1,220pcie_l1_allowed:1,221apmg_wake_up_wa:1,222apmg_not_supported:1,223scd_chain_ext_wa:1;224225u16 num_of_queues; /* def: HW dependent */226u32 max_tfd_queue_size; /* def: HW dependent */227228u8 max_ll_items;229u8 led_compensation;230u8 ucode_api_max;231u8 ucode_api_min;232u32 mac_addr_from_csr:10;233u8 nvm_hw_section_num;234netdev_features_t features;235u32 smem_offset;236u32 smem_len;237u32 min_umac_error_event_table;238u32 d3_debug_data_base_addr;239u32 d3_debug_data_length;240u32 min_txq_size;241u32 gp2_reg_addr;242u32 min_ba_txq_size;243const struct iwl_fw_mon_regs mon_dram_regs;244const struct iwl_fw_mon_regs mon_smem_regs;245const struct iwl_fw_mon_regs mon_dbgi_regs;246};247248/*249* @stbc: support Tx STBC and 1*SS Rx STBC250* @ldpc: support Tx/Rx with LDPC251* @use_rts_for_aggregation: use rts/cts protection for HT traffic252* @ht40_bands: bitmap of bands (using %NL80211_BAND_*) that support HT40253*/254struct iwl_ht_params {255u8 ht_greenfield_support:1,256stbc:1,257ldpc:1,258use_rts_for_aggregation:1;259u8 ht40_bands;260};261262/*263* Tx-backoff threshold264* @temperature: The threshold in Celsius265* @backoff: The tx-backoff in uSec266*/267struct iwl_tt_tx_backoff {268s32 temperature;269u32 backoff;270};271272#define TT_TX_BACKOFF_SIZE 6273274/**275* struct iwl_tt_params - thermal throttling parameters276* @ct_kill_entry: CT Kill entry threshold277* @ct_kill_exit: CT Kill exit threshold278* @ct_kill_duration: The time intervals (in uSec) in which the driver needs279* to checks whether to exit CT Kill.280* @dynamic_smps_entry: Dynamic SMPS entry threshold281* @dynamic_smps_exit: Dynamic SMPS exit threshold282* @tx_protection_entry: TX protection entry threshold283* @tx_protection_exit: TX protection exit threshold284* @tx_backoff: Array of thresholds for tx-backoff , in ascending order.285* @support_ct_kill: Support CT Kill?286* @support_dynamic_smps: Support dynamic SMPS?287* @support_tx_protection: Support tx protection?288* @support_tx_backoff: Support tx-backoff?289*/290struct iwl_tt_params {291u32 ct_kill_entry;292u32 ct_kill_exit;293u32 ct_kill_duration;294u32 dynamic_smps_entry;295u32 dynamic_smps_exit;296u32 tx_protection_entry;297u32 tx_protection_exit;298struct iwl_tt_tx_backoff tx_backoff[TT_TX_BACKOFF_SIZE];299u8 support_ct_kill:1,300support_dynamic_smps:1,301support_tx_protection:1,302support_tx_backoff:1;303};304305/*306* information on how to parse the EEPROM307*/308#define EEPROM_REG_BAND_1_CHANNELS 0x08309#define EEPROM_REG_BAND_2_CHANNELS 0x26310#define EEPROM_REG_BAND_3_CHANNELS 0x42311#define EEPROM_REG_BAND_4_CHANNELS 0x5C312#define EEPROM_REG_BAND_5_CHANNELS 0x74313#define EEPROM_REG_BAND_24_HT40_CHANNELS 0x82314#define EEPROM_REG_BAND_52_HT40_CHANNELS 0x92315#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS 0x80316#define EEPROM_REGULATORY_BAND_NO_HT40 0317318/* lower blocks contain EEPROM image and calibration data */319#define OTP_LOW_IMAGE_SIZE_2K (2 * 512 * sizeof(u16)) /* 2 KB */320#define OTP_LOW_IMAGE_SIZE_16K (16 * 512 * sizeof(u16)) /* 16 KB */321#define OTP_LOW_IMAGE_SIZE_32K (32 * 512 * sizeof(u16)) /* 32 KB */322323struct iwl_eeprom_params {324const u8 regulatory_bands[7];325bool enhanced_txpower;326};327328/* Tx-backoff power threshold329* @pwr: The power limit in mw330* @backoff: The tx-backoff in uSec331*/332struct iwl_pwr_tx_backoff {333u32 pwr;334u32 backoff;335};336337enum iwl_mac_cfg_ltr_delay {338IWL_CFG_TRANS_LTR_DELAY_NONE = 0,339IWL_CFG_TRANS_LTR_DELAY_200US = 1,340IWL_CFG_TRANS_LTR_DELAY_2500US = 2,341IWL_CFG_TRANS_LTR_DELAY_1820US = 3,342};343344/**345* struct iwl_mac_cfg - information about the MAC-specific device part346*347* These values are specific to the device ID and do not change when348* multiple configs are used for a single device ID. They values are349* used, among other things, to boot the NIC so that the HW REV or350* RFID can be read before deciding the remaining parameters to use.351*352* @base: pointer to basic parameters353* @device_family: the device family354* @umac_prph_offset: offset to add to UMAC periphery address355* @xtal_latency: power up latency to get the xtal stabilized356* @extra_phy_cfg_flags: extra configuration flags to pass to the PHY357* @gen2: 22000 and on transport operation358* @mq_rx_supported: multi-queue rx support359* @integrated: discrete or integrated360* @low_latency_xtal: use the low latency xtal if supported361* @bisr_workaround: BISR hardware workaround (for 22260 series devices)362* @ltr_delay: LTR delay parameter, &enum iwl_mac_cfg_ltr_delay.363* @imr_enabled: use the IMR if supported.364*/365struct iwl_mac_cfg {366const struct iwl_family_base_params *base;367enum iwl_device_family device_family;368u32 umac_prph_offset;369u32 xtal_latency;370u32 extra_phy_cfg_flags;371u32 gen2:1,372mq_rx_supported:1,373integrated:1,374low_latency_xtal:1,375bisr_workaround:1,376ltr_delay:2,377imr_enabled:1;378};379380/*381* These sizes were picked according to 8 MSDUs inside 64/256/612 A-MSDUs382* in an A-MPDU, with additional overhead to account for processing time.383* They will be doubled for MACs starting from So/Ty that don't support384* putting multiple frames into a single buffer.385*/386#define IWL_NUM_RBDS_NON_HE (64 * 8)387#define IWL_NUM_RBDS_HE (256 * 8)388#define IWL_NUM_RBDS_EHT (512 * 8)389390/**391* struct iwl_rf_cfg392* @fw_name_pre: Firmware filename prefix. The api version and extension393* (.ucode) will be added to filename before loading from disk. The394* filename is constructed as <fw_name_pre>-<api>.ucode.395* name will be generated dynamically396* @ucode_api_max: Highest version of uCode API supported by driver.397* @ucode_api_min: Lowest version of uCode API supported by driver.398* @max_inst_size: The maximal length of the fw inst section (only DVM)399* @max_data_size: The maximal length of the fw data section (only DVM)400* @valid_tx_ant: valid transmit antenna401* @valid_rx_ant: valid receive antenna402* @non_shared_ant: the antenna that is for WiFi only403* @nvm_ver: NVM version404* @nvm_calib_ver: NVM calibration version405* @bw_limit: bandwidth limit for this device, if non-zero406* @ht_params: point to ht parameters407* @eeprom_params: EEPROM parameters (old devices)408* @thermal_params: Thermal throttling parameters409* @lp_xtal_workaround: low-power crystal workaround needed410* @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off)411* @rx_with_siso_diversity: 1x1 device with rx antenna diversity412* @tx_with_siso_diversity: 1x1 device with tx antenna diversity413* @internal_wimax_coex: internal wifi/wimax combo device414* @host_interrupt_operation_mode: device needs host interrupt operation415* mode set416* @pwr_tx_backoffs: translation table between power limits and backoffs417* @dccm_offset: offset from which DCCM begins418* @dccm_len: length of DCCM (including runtime stack CCM)419* @dccm2_offset: offset from which the second DCCM begins420* @dccm2_len: length of the second DCCM421* @vht_mu_mimo_supported: VHT MU-MIMO support422* @nvm_type: see &enum iwl_nvm_type423* @uhb_supported: ultra high band channels supported424* @num_rbds: number of receive buffer descriptors to use425* (only used for multi-queue capable devices)426*427* We enable the driver to be backward compatible wrt. hardware features.428* API differences in uCode shouldn't be handled here but through TLVs429* and/or the uCode API version instead.430*/431struct iwl_rf_cfg {432/* params specific to an individual device within a device family */433const char *fw_name_pre;434/* params likely to change within a device family */435const struct iwl_ht_params ht_params;436const struct iwl_eeprom_params *eeprom_params;437const struct iwl_pwr_tx_backoff *pwr_tx_backoffs;438const struct iwl_tt_params *thermal_params;439enum iwl_led_mode led_mode;440enum iwl_nvm_type nvm_type;441u32 max_data_size;442u32 max_inst_size;443u32 dccm_offset;444u32 dccm_len;445u32 dccm2_offset;446u32 dccm2_len;447u16 nvm_ver;448u16 nvm_calib_ver;449u16 bw_limit;450u32 rx_with_siso_diversity:1,451tx_with_siso_diversity:1,452internal_wimax_coex:1,453host_interrupt_operation_mode:1,454lp_xtal_workaround:1,455vht_mu_mimo_supported:1,456uhb_supported:1;457u8 valid_tx_ant;458u8 valid_rx_ant;459u8 non_shared_ant;460u8 ucode_api_max;461u8 ucode_api_min;462u16 num_rbds;463};464465#define IWL_CFG_ANY (~0)466467#define IWL_CFG_MAC_TYPE_PU 0x31468#define IWL_CFG_MAC_TYPE_TH 0x32469#define IWL_CFG_MAC_TYPE_QU 0x33470#define IWL_CFG_MAC_TYPE_CC 0x34471#define IWL_CFG_MAC_TYPE_QUZ 0x35472#define IWL_CFG_MAC_TYPE_SO 0x37473#define IWL_CFG_MAC_TYPE_TY 0x42474#define IWL_CFG_MAC_TYPE_SOF 0x43475#define IWL_CFG_MAC_TYPE_MA 0x44476#define IWL_CFG_MAC_TYPE_BZ 0x46477#define IWL_CFG_MAC_TYPE_GL 0x47478#define IWL_CFG_MAC_TYPE_SC 0x48479#define IWL_CFG_MAC_TYPE_SC2 0x49480#define IWL_CFG_MAC_TYPE_SC2F 0x4A481#define IWL_CFG_MAC_TYPE_BZ_W 0x4B482#define IWL_CFG_MAC_TYPE_BR 0x4C483#define IWL_CFG_MAC_TYPE_DR 0x4D484485#define IWL_CFG_RF_TYPE_JF2 0x105486#define IWL_CFG_RF_TYPE_JF1 0x108487#define IWL_CFG_RF_TYPE_HR2 0x10A488#define IWL_CFG_RF_TYPE_HR1 0x10C489#define IWL_CFG_RF_TYPE_GF 0x10D490#define IWL_CFG_RF_TYPE_FM 0x112491#define IWL_CFG_RF_TYPE_WH 0x113492#define IWL_CFG_RF_TYPE_PE 0x114493494#define IWL_CFG_RF_ID_TH 0x1495#define IWL_CFG_RF_ID_TH1 0x1496#define IWL_CFG_RF_ID_JF 0x3497#define IWL_CFG_RF_ID_JF1 0x6498#define IWL_CFG_RF_ID_JF1_DIV 0xA499#define IWL_CFG_RF_ID_HR 0x7500#define IWL_CFG_RF_ID_HR1 0x4501502#define IWL_CFG_CORES_BT 0x0503#define IWL_CFG_CORES_BT_GNSS 0x5504505#define IWL_CFG_NO_CDB 0x0506#define IWL_CFG_CDB 0x1507508#define IWL_CFG_NO_JACKET 0x0509#define IWL_CFG_IS_JACKET 0x1510511#define IWL_SUBDEVICE_RF_ID(subdevice) ((u16)((subdevice) & 0x00F0) >> 4)512#define IWL_SUBDEVICE_BW_LIM(subdevice) ((u16)((subdevice) & 0x0200) >> 9)513#define IWL_SUBDEVICE_CORES(subdevice) ((u16)((subdevice) & 0x1C00) >> 10)514515struct iwl_dev_info {516const struct iwl_rf_cfg *cfg;517const char *name;518u16 device;519u16 subdevice;520u32 subdevice_m_l:4,521subdevice_m_h:4,522match_rf_type:1,523rf_type:9,524match_bw_limit:1,525bw_limit:1,526match_discrete:1,527discrete:1,528match_rf_id:1,529rf_id:4,530match_cdb:1,531cdb:1;532};533534#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)535extern const struct iwl_dev_info iwl_dev_info_table[];536extern const unsigned int iwl_dev_info_table_size;537extern const struct pci_device_id iwl_hw_card_ids[];538#endif539540const struct iwl_dev_info *541iwl_pci_find_dev_info(u16 device, u16 subsystem_device, u16 rf_type, u8 cdb,542u8 rf_id, u8 bw_limit, bool discrete);543544/*545* This list declares the config structures for all devices.546*/547extern const struct iwl_mac_cfg iwl1000_mac_cfg;548extern const struct iwl_mac_cfg iwl5000_mac_cfg;549extern const struct iwl_mac_cfg iwl2000_mac_cfg;550extern const struct iwl_mac_cfg iwl2030_mac_cfg;551extern const struct iwl_mac_cfg iwl105_mac_cfg;552extern const struct iwl_mac_cfg iwl135_mac_cfg;553extern const struct iwl_mac_cfg iwl5150_mac_cfg;554extern const struct iwl_mac_cfg iwl6005_mac_cfg;555extern const struct iwl_mac_cfg iwl6030_mac_cfg;556extern const struct iwl_mac_cfg iwl6000i_mac_cfg;557extern const struct iwl_mac_cfg iwl6050_mac_cfg;558extern const struct iwl_mac_cfg iwl6150_mac_cfg;559extern const struct iwl_mac_cfg iwl6000_mac_cfg;560extern const struct iwl_mac_cfg iwl7000_mac_cfg;561extern const struct iwl_mac_cfg iwl8000_mac_cfg;562extern const struct iwl_mac_cfg iwl9000_mac_cfg;563extern const struct iwl_mac_cfg iwl9560_mac_cfg;564extern const struct iwl_mac_cfg iwl9560_long_latency_mac_cfg;565extern const struct iwl_mac_cfg iwl9560_shared_clk_mac_cfg;566extern const struct iwl_mac_cfg iwl_qu_mac_cfg;567extern const struct iwl_mac_cfg iwl_qu_medium_latency_mac_cfg;568extern const struct iwl_mac_cfg iwl_qu_long_latency_mac_cfg;569extern const struct iwl_mac_cfg iwl_ax200_mac_cfg;570extern const struct iwl_mac_cfg iwl_ty_mac_cfg;571extern const struct iwl_mac_cfg iwl_so_mac_cfg;572extern const struct iwl_mac_cfg iwl_so_long_latency_mac_cfg;573extern const struct iwl_mac_cfg iwl_so_long_latency_imr_mac_cfg;574extern const struct iwl_mac_cfg iwl_ma_mac_cfg;575extern const struct iwl_mac_cfg iwl_bz_mac_cfg;576extern const struct iwl_mac_cfg iwl_gl_mac_cfg;577extern const struct iwl_mac_cfg iwl_sc_mac_cfg;578extern const struct iwl_mac_cfg iwl_dr_mac_cfg;579580extern const char iwl1000_bgn_name[];581extern const char iwl1000_bg_name[];582extern const char iwl100_bgn_name[];583extern const char iwl100_bg_name[];584extern const char iwl2000_2bgn_name[];585extern const char iwl2000_2bgn_d_name[];586extern const char iwl2030_2bgn_name[];587extern const char iwl105_bgn_name[];588extern const char iwl105_bgn_d_name[];589extern const char iwl135_bgn_name[];590extern const char iwl5300_agn_name[];591extern const char iwl5100_bgn_name[];592extern const char iwl5100_abg_name[];593extern const char iwl5100_agn_name[];594extern const char iwl5350_agn_name[];595extern const char iwl5150_agn_name[];596extern const char iwl5150_abg_name[];597extern const char iwl6005_2agn_name[];598extern const char iwl6005_2abg_name[];599extern const char iwl6005_2bg_name[];600extern const char iwl6005_2agn_sff_name[];601extern const char iwl6005_2agn_d_name[];602extern const char iwl6005_2agn_mow1_name[];603extern const char iwl6005_2agn_mow2_name[];604extern const char iwl6030_2agn_name[];605extern const char iwl6030_2abg_name[];606extern const char iwl6030_2bgn_name[];607extern const char iwl6030_2bg_name[];608extern const char iwl6035_2agn_name[];609extern const char iwl6035_2agn_sff_name[];610extern const char iwl1030_bgn_name[];611extern const char iwl1030_bg_name[];612extern const char iwl130_bgn_name[];613extern const char iwl130_bg_name[];614extern const char iwl6000i_2agn_name[];615extern const char iwl6000i_2abg_name[];616extern const char iwl6000i_2bg_name[];617extern const char iwl6050_2agn_name[];618extern const char iwl6050_2abg_name[];619extern const char iwl6150_bgn_name[];620extern const char iwl6150_bg_name[];621extern const char iwl6000_3agn_name[];622extern const char iwl7260_2ac_name[];623extern const char iwl7260_2n_name[];624extern const char iwl7260_n_name[];625extern const char iwl3160_2ac_name[];626extern const char iwl3160_2n_name[];627extern const char iwl3160_n_name[];628extern const char iwl3165_2ac_name[];629extern const char iwl3168_2ac_name[];630extern const char iwl7265_2ac_name[];631extern const char iwl7265_2n_name[];632extern const char iwl7265_n_name[];633extern const char iwl8260_2n_name[];634extern const char iwl8260_2ac_name[];635extern const char iwl8265_2ac_name[];636extern const char iwl8275_2ac_name[];637extern const char iwl4165_2ac_name[];638extern const char iwl_killer_1435i_name[];639extern const char iwl_killer_1434_kix_name[];640extern const char iwl9162_name[];641extern const char iwl9260_name[];642extern const char iwl9260_1_name[];643extern const char iwl9270_name[];644extern const char iwl9461_name[];645extern const char iwl9462_name[];646extern const char iwl9560_name[];647extern const char iwl9162_160_name[];648extern const char iwl9260_160_name[];649extern const char iwl9270_160_name[];650extern const char iwl9461_160_name[];651extern const char iwl9462_160_name[];652extern const char iwl9560_160_name[];653extern const char iwl9260_killer_1550_name[];654extern const char iwl9560_killer_1550i_name[];655extern const char iwl9560_killer_1550s_name[];656extern const char iwl_ax200_name[];657extern const char iwl_ax203_name[];658extern const char iwl_ax201_name[];659extern const char iwl_ax101_name[];660extern const char iwl_ax200_killer_1650w_name[];661extern const char iwl_ax200_killer_1650x_name[];662extern const char iwl_ax201_killer_1650s_name[];663extern const char iwl_ax201_killer_1650i_name[];664extern const char iwl_ax210_killer_1675w_name[];665extern const char iwl_ax210_killer_1675x_name[];666extern const char iwl9560_killer_1550i_160_name[];667extern const char iwl9560_killer_1550s_160_name[];668extern const char iwl_ax211_killer_1675s_name[];669extern const char iwl_ax211_killer_1675i_name[];670extern const char iwl_ax411_killer_1690s_name[];671extern const char iwl_ax411_killer_1690i_name[];672extern const char iwl_ax210_name[];673extern const char iwl_ax211_name[];674extern const char iwl_ax411_name[];675extern const char iwl_killer_be1750s_name[];676extern const char iwl_killer_be1750i_name[];677extern const char iwl_killer_be1750w_name[];678extern const char iwl_killer_be1750x_name[];679extern const char iwl_killer_be1790s_name[];680extern const char iwl_killer_be1790i_name[];681extern const char iwl_be201_name[];682extern const char iwl_be200_name[];683extern const char iwl_be202_name[];684extern const char iwl_be401_name[];685extern const char iwl_be213_name[];686extern const char iwl_killer_be1775s_name[];687extern const char iwl_killer_be1775i_name[];688extern const char iwl_be211_name[];689extern const char iwl_killer_bn1850w2_name[];690extern const char iwl_killer_bn1850i_name[];691extern const char iwl_bn201_name[];692extern const char iwl_be221_name[];693extern const char iwl_be223_name[];694#if IS_ENABLED(CONFIG_IWLDVM)695extern const struct iwl_rf_cfg iwl5300_agn_cfg;696extern const struct iwl_rf_cfg iwl5350_agn_cfg;697extern const struct iwl_rf_cfg iwl5100_n_cfg;698extern const struct iwl_rf_cfg iwl5100_abg_cfg;699extern const struct iwl_rf_cfg iwl5150_agn_cfg;700extern const struct iwl_rf_cfg iwl5150_abg_cfg;701extern const struct iwl_rf_cfg iwl6005_non_n_cfg;702extern const struct iwl_rf_cfg iwl6005_n_cfg;703extern const struct iwl_rf_cfg iwl6030_n_cfg;704extern const struct iwl_rf_cfg iwl6030_non_n_cfg;705extern const struct iwl_rf_cfg iwl6000i_2agn_cfg;706extern const struct iwl_rf_cfg iwl6000i_non_n_cfg;707extern const struct iwl_rf_cfg iwl6000i_non_n_cfg;708extern const struct iwl_rf_cfg iwl6000_3agn_cfg;709extern const struct iwl_rf_cfg iwl6050_2agn_cfg;710extern const struct iwl_rf_cfg iwl6050_2abg_cfg;711extern const struct iwl_rf_cfg iwl6150_bgn_cfg;712extern const struct iwl_rf_cfg iwl6150_bg_cfg;713extern const struct iwl_rf_cfg iwl1000_bgn_cfg;714extern const struct iwl_rf_cfg iwl1000_bg_cfg;715extern const struct iwl_rf_cfg iwl100_bgn_cfg;716extern const struct iwl_rf_cfg iwl100_bg_cfg;717extern const struct iwl_rf_cfg iwl130_bgn_cfg;718extern const struct iwl_rf_cfg iwl130_bg_cfg;719extern const struct iwl_rf_cfg iwl2000_2bgn_cfg;720extern const struct iwl_rf_cfg iwl2030_2bgn_cfg;721extern const struct iwl_rf_cfg iwl6035_2agn_cfg;722extern const struct iwl_rf_cfg iwl105_bgn_cfg;723extern const struct iwl_rf_cfg iwl135_bgn_cfg;724#endif /* CONFIG_IWLDVM */725#if IS_ENABLED(CONFIG_IWLMVM)726extern const struct iwl_rf_cfg iwl7260_cfg;727extern const struct iwl_rf_cfg iwl7260_high_temp_cfg;728extern const struct iwl_rf_cfg iwl3160_cfg;729extern const struct iwl_rf_cfg iwl3165_2ac_cfg;730extern const struct iwl_rf_cfg iwl3168_2ac_cfg;731extern const struct iwl_rf_cfg iwl7265_cfg;732extern const struct iwl_rf_cfg iwl7265d_cfg;733extern const struct iwl_rf_cfg iwl8260_cfg;734extern const struct iwl_rf_cfg iwl8265_cfg;735extern const struct iwl_rf_cfg iwl_rf_jf;736extern const struct iwl_rf_cfg iwl_rf_jf_80mhz;737extern const struct iwl_rf_cfg iwl_rf_hr1;738extern const struct iwl_rf_cfg iwl_rf_hr;739extern const struct iwl_rf_cfg iwl_rf_hr_80mhz;740741extern const struct iwl_rf_cfg iwl_rf_gf;742#endif /* CONFIG_IWLMVM */743744#if IS_ENABLED(CONFIG_IWLMLD)745extern const struct iwl_rf_cfg iwl_rf_fm;746extern const struct iwl_rf_cfg iwl_rf_fm_160mhz;747#define iwl_rf_wh iwl_rf_fm748#define iwl_rf_wh_160mhz iwl_rf_fm_160mhz749#define iwl_rf_pe iwl_rf_fm750#endif /* CONFIG_IWLMLD */751752#endif /* __IWL_CONFIG_H__ */753754755