File Index
Files and directories
Sign in
FILE

22000.c

File preview with syntax highlighting.

linux-6.19.14/drivers/net/wireless/intel/iwlwifi/cfg/22000.c C
  1// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
  2/*
  3 * Copyright (C) 2015-2017 Intel Deutschland GmbH
  4 * Copyright (C) 2018-2025 Intel Corporation
  5 */
  6#include <linux/module.h>
  7#include <linux/stringify.h>
  8#include "iwl-config.h"
  9#include "iwl-prph.h"
 10#include "fw/api/txq.h"
 11
 12/* Highest firmware API version supported */
 13#define IWL_22000_UCODE_API_MAX	77
 14
 15/* Lowest firmware API version supported */
 16#define IWL_22000_UCODE_API_MIN	77
 17
 18/* Memory offsets and lengths */
 19#define IWL_22000_SMEM_OFFSET		0x400000
 20#define IWL_22000_SMEM_LEN		0xD0000
 21
 22#define IWL_CC_A_FW_PRE			"iwlwifi-cc-a0"
 23
 24#define IWL_CC_A_MODULE_FIRMWARE(api)			\
 25	IWL_CC_A_FW_PRE "-" __stringify(api) ".ucode"
 26
 27static const struct iwl_family_base_params iwl_22000_base = {
 28	.num_of_queues = 512,
 29	.max_tfd_queue_size = 256,
 30	.shadow_ram_support = true,
 31	.led_compensation = 57,
 32	.wd_timeout = IWL_LONG_WD_TIMEOUT,
 33	.max_event_log_size = 512,
 34	.shadow_reg_enable = true,
 35	.pcie_l1_allowed = true,
 36	.smem_offset = IWL_22000_SMEM_OFFSET,
 37	.smem_len = IWL_22000_SMEM_LEN,
 38	.features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM,
 39	.apmg_not_supported = true,
 40	.mac_addr_from_csr = 0x380,
 41	.d3_debug_data_base_addr = 0x401000,
 42	.d3_debug_data_length = 60 * 1024,
 43	.mon_smem_regs = {
 44		.write_ptr = {
 45			.addr = LDBG_M2S_BUF_WPTR,
 46			.mask = LDBG_M2S_BUF_WPTR_VAL_MSK,
 47	},
 48		.cycle_cnt = {
 49			.addr = LDBG_M2S_BUF_WRAP_CNT,
 50			.mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK,
 51		},
 52	},
 53	.gp2_reg_addr = 0xa02c68,
 54	.mon_dram_regs = {
 55		.write_ptr = {
 56			.addr = MON_BUFF_WRPTR_VER2,
 57			.mask = 0xffffffff,
 58		},
 59		.cycle_cnt = {
 60			.addr = MON_BUFF_CYCLE_CNT_VER2,
 61			.mask = 0xffffffff,
 62		},
 63	},
 64	.ucode_api_min = IWL_22000_UCODE_API_MIN,
 65	.ucode_api_max = IWL_22000_UCODE_API_MAX,
 66};
 67
 68const struct iwl_mac_cfg iwl_qu_mac_cfg = {
 69	.mq_rx_supported = true,
 70	.gen2 = true,
 71	.device_family = IWL_DEVICE_FAMILY_22000,
 72	.base = &iwl_22000_base,
 73	.integrated = true,
 74	.xtal_latency = 500,
 75	.ltr_delay = IWL_CFG_TRANS_LTR_DELAY_200US,
 76};
 77
 78const struct iwl_mac_cfg iwl_qu_medium_latency_mac_cfg = {
 79	.mq_rx_supported = true,
 80	.gen2 = true,
 81	.device_family = IWL_DEVICE_FAMILY_22000,
 82	.base = &iwl_22000_base,
 83	.integrated = true,
 84	.xtal_latency = 1820,
 85	.ltr_delay = IWL_CFG_TRANS_LTR_DELAY_1820US,
 86};
 87
 88const struct iwl_mac_cfg iwl_qu_long_latency_mac_cfg = {
 89	.mq_rx_supported = true,
 90	.gen2 = true,
 91	.device_family = IWL_DEVICE_FAMILY_22000,
 92	.base = &iwl_22000_base,
 93	.integrated = true,
 94	.xtal_latency = 12000,
 95	.low_latency_xtal = true,
 96	.ltr_delay = IWL_CFG_TRANS_LTR_DELAY_2500US,
 97};
 98
 99const struct iwl_mac_cfg iwl_ax200_mac_cfg = {
100	.device_family = IWL_DEVICE_FAMILY_22000,
101	.base = &iwl_22000_base,
102	.mq_rx_supported = true,
103	.gen2 = true,
104	.bisr_workaround = 1,
105};
106
107const char iwl_ax200_killer_1650w_name[] =
108	"Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)";
109const char iwl_ax200_killer_1650x_name[] =
110	"Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)";
111const char iwl_ax201_killer_1650s_name[] =
112	"Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)";
113const char iwl_ax201_killer_1650i_name[] =
114	"Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)";
115
116MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
~/ Read-only file preview.