Commit | Line | Data |
---|---|---|
8e99ea8d JB |
1 | // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause |
2 | /* | |
9a0f28d8 | 3 | * Copyright (C) 2005-2014, 2018-2021 Intel Corporation |
8e99ea8d JB |
4 | * Copyright (C) 2013-2015 Intel Mobile Communications GmbH |
5 | * Copyright (C) 2016-2017 Intel Deutschland GmbH | |
6 | */ | |
69b8797f JP |
7 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
8 | ||
9d9779e7 | 9 | #include <linux/module.h> |
48d1a211 | 10 | #include <linux/pci.h> |
bcb079a1 | 11 | #include <linux/acpi.h> |
48d1a211 | 12 | |
813df5ce LC |
13 | #include "fw/acpi.h" |
14 | ||
e6bb4c9c | 15 | #include "iwl-trans.h" |
5c58edc6 | 16 | #include "iwl-drv.h" |
809805a8 | 17 | #include "iwl-prph.h" |
6468a01a | 18 | #include "internal.h" |
d57fa99d | 19 | |
48a5494d JB |
20 | #define TRANS_CFG_MARKER BIT(0) |
21 | #define _IS_A(cfg, _struct) __builtin_types_compatible_p(typeof(cfg), \ | |
22 | struct _struct) | |
23 | extern int _invalid_type; | |
24 | #define _TRANS_CFG_MARKER(cfg) \ | |
25 | (__builtin_choose_expr(_IS_A(cfg, iwl_cfg_trans_params), \ | |
26 | TRANS_CFG_MARKER, \ | |
27 | __builtin_choose_expr(_IS_A(cfg, iwl_cfg), 0, _invalid_type))) | |
28 | #define _ASSIGN_CFG(cfg) (_TRANS_CFG_MARKER(cfg) + (kernel_ulong_t)&(cfg)) | |
29 | ||
48d1a211 EG |
30 | #define IWL_PCI_DEVICE(dev, subdev, cfg) \ |
31 | .vendor = PCI_VENDOR_ID_INTEL, .device = (dev), \ | |
32 | .subvendor = PCI_ANY_ID, .subdevice = (subdev), \ | |
48a5494d | 33 | .driver_data = _ASSIGN_CFG(cfg) |
48d1a211 EG |
34 | |
35 | /* Hardware specific file defines the PCI IDs table for that hardware module */ | |
9baa3c34 | 36 | static const struct pci_device_id iwl_hw_card_ids[] = { |
4f25bbdb | 37 | #if IS_ENABLED(CONFIG_IWLDVM) |
48d1a211 EG |
38 | {IWL_PCI_DEVICE(0x4232, 0x1201, iwl5100_agn_cfg)}, /* Mini Card */ |
39 | {IWL_PCI_DEVICE(0x4232, 0x1301, iwl5100_agn_cfg)}, /* Half Mini Card */ | |
40 | {IWL_PCI_DEVICE(0x4232, 0x1204, iwl5100_agn_cfg)}, /* Mini Card */ | |
41 | {IWL_PCI_DEVICE(0x4232, 0x1304, iwl5100_agn_cfg)}, /* Half Mini Card */ | |
42 | {IWL_PCI_DEVICE(0x4232, 0x1205, iwl5100_bgn_cfg)}, /* Mini Card */ | |
43 | {IWL_PCI_DEVICE(0x4232, 0x1305, iwl5100_bgn_cfg)}, /* Half Mini Card */ | |
44 | {IWL_PCI_DEVICE(0x4232, 0x1206, iwl5100_abg_cfg)}, /* Mini Card */ | |
45 | {IWL_PCI_DEVICE(0x4232, 0x1306, iwl5100_abg_cfg)}, /* Half Mini Card */ | |
46 | {IWL_PCI_DEVICE(0x4232, 0x1221, iwl5100_agn_cfg)}, /* Mini Card */ | |
47 | {IWL_PCI_DEVICE(0x4232, 0x1321, iwl5100_agn_cfg)}, /* Half Mini Card */ | |
48 | {IWL_PCI_DEVICE(0x4232, 0x1224, iwl5100_agn_cfg)}, /* Mini Card */ | |
49 | {IWL_PCI_DEVICE(0x4232, 0x1324, iwl5100_agn_cfg)}, /* Half Mini Card */ | |
50 | {IWL_PCI_DEVICE(0x4232, 0x1225, iwl5100_bgn_cfg)}, /* Mini Card */ | |
51 | {IWL_PCI_DEVICE(0x4232, 0x1325, iwl5100_bgn_cfg)}, /* Half Mini Card */ | |
52 | {IWL_PCI_DEVICE(0x4232, 0x1226, iwl5100_abg_cfg)}, /* Mini Card */ | |
53 | {IWL_PCI_DEVICE(0x4232, 0x1326, iwl5100_abg_cfg)}, /* Half Mini Card */ | |
54 | {IWL_PCI_DEVICE(0x4237, 0x1211, iwl5100_agn_cfg)}, /* Mini Card */ | |
55 | {IWL_PCI_DEVICE(0x4237, 0x1311, iwl5100_agn_cfg)}, /* Half Mini Card */ | |
56 | {IWL_PCI_DEVICE(0x4237, 0x1214, iwl5100_agn_cfg)}, /* Mini Card */ | |
57 | {IWL_PCI_DEVICE(0x4237, 0x1314, iwl5100_agn_cfg)}, /* Half Mini Card */ | |
58 | {IWL_PCI_DEVICE(0x4237, 0x1215, iwl5100_bgn_cfg)}, /* Mini Card */ | |
59 | {IWL_PCI_DEVICE(0x4237, 0x1315, iwl5100_bgn_cfg)}, /* Half Mini Card */ | |
60 | {IWL_PCI_DEVICE(0x4237, 0x1216, iwl5100_abg_cfg)}, /* Mini Card */ | |
61 | {IWL_PCI_DEVICE(0x4237, 0x1316, iwl5100_abg_cfg)}, /* Half Mini Card */ | |
62 | ||
63 | /* 5300 Series WiFi */ | |
64 | {IWL_PCI_DEVICE(0x4235, 0x1021, iwl5300_agn_cfg)}, /* Mini Card */ | |
65 | {IWL_PCI_DEVICE(0x4235, 0x1121, iwl5300_agn_cfg)}, /* Half Mini Card */ | |
66 | {IWL_PCI_DEVICE(0x4235, 0x1024, iwl5300_agn_cfg)}, /* Mini Card */ | |
67 | {IWL_PCI_DEVICE(0x4235, 0x1124, iwl5300_agn_cfg)}, /* Half Mini Card */ | |
68 | {IWL_PCI_DEVICE(0x4235, 0x1001, iwl5300_agn_cfg)}, /* Mini Card */ | |
69 | {IWL_PCI_DEVICE(0x4235, 0x1101, iwl5300_agn_cfg)}, /* Half Mini Card */ | |
70 | {IWL_PCI_DEVICE(0x4235, 0x1004, iwl5300_agn_cfg)}, /* Mini Card */ | |
71 | {IWL_PCI_DEVICE(0x4235, 0x1104, iwl5300_agn_cfg)}, /* Half Mini Card */ | |
72 | {IWL_PCI_DEVICE(0x4236, 0x1011, iwl5300_agn_cfg)}, /* Mini Card */ | |
73 | {IWL_PCI_DEVICE(0x4236, 0x1111, iwl5300_agn_cfg)}, /* Half Mini Card */ | |
74 | {IWL_PCI_DEVICE(0x4236, 0x1014, iwl5300_agn_cfg)}, /* Mini Card */ | |
75 | {IWL_PCI_DEVICE(0x4236, 0x1114, iwl5300_agn_cfg)}, /* Half Mini Card */ | |
76 | ||
77 | /* 5350 Series WiFi/WiMax */ | |
78 | {IWL_PCI_DEVICE(0x423A, 0x1001, iwl5350_agn_cfg)}, /* Mini Card */ | |
79 | {IWL_PCI_DEVICE(0x423A, 0x1021, iwl5350_agn_cfg)}, /* Mini Card */ | |
80 | {IWL_PCI_DEVICE(0x423B, 0x1011, iwl5350_agn_cfg)}, /* Mini Card */ | |
81 | ||
82 | /* 5150 Series Wifi/WiMax */ | |
83 | {IWL_PCI_DEVICE(0x423C, 0x1201, iwl5150_agn_cfg)}, /* Mini Card */ | |
84 | {IWL_PCI_DEVICE(0x423C, 0x1301, iwl5150_agn_cfg)}, /* Half Mini Card */ | |
85 | {IWL_PCI_DEVICE(0x423C, 0x1206, iwl5150_abg_cfg)}, /* Mini Card */ | |
86 | {IWL_PCI_DEVICE(0x423C, 0x1306, iwl5150_abg_cfg)}, /* Half Mini Card */ | |
87 | {IWL_PCI_DEVICE(0x423C, 0x1221, iwl5150_agn_cfg)}, /* Mini Card */ | |
88 | {IWL_PCI_DEVICE(0x423C, 0x1321, iwl5150_agn_cfg)}, /* Half Mini Card */ | |
a1923f1d | 89 | {IWL_PCI_DEVICE(0x423C, 0x1326, iwl5150_abg_cfg)}, /* Half Mini Card */ |
48d1a211 EG |
90 | |
91 | {IWL_PCI_DEVICE(0x423D, 0x1211, iwl5150_agn_cfg)}, /* Mini Card */ | |
92 | {IWL_PCI_DEVICE(0x423D, 0x1311, iwl5150_agn_cfg)}, /* Half Mini Card */ | |
93 | {IWL_PCI_DEVICE(0x423D, 0x1216, iwl5150_abg_cfg)}, /* Mini Card */ | |
94 | {IWL_PCI_DEVICE(0x423D, 0x1316, iwl5150_abg_cfg)}, /* Half Mini Card */ | |
95 | ||
96 | /* 6x00 Series */ | |
97 | {IWL_PCI_DEVICE(0x422B, 0x1101, iwl6000_3agn_cfg)}, | |
08a5dd38 | 98 | {IWL_PCI_DEVICE(0x422B, 0x1108, iwl6000_3agn_cfg)}, |
48d1a211 | 99 | {IWL_PCI_DEVICE(0x422B, 0x1121, iwl6000_3agn_cfg)}, |
08a5dd38 | 100 | {IWL_PCI_DEVICE(0x422B, 0x1128, iwl6000_3agn_cfg)}, |
48d1a211 EG |
101 | {IWL_PCI_DEVICE(0x422C, 0x1301, iwl6000i_2agn_cfg)}, |
102 | {IWL_PCI_DEVICE(0x422C, 0x1306, iwl6000i_2abg_cfg)}, | |
103 | {IWL_PCI_DEVICE(0x422C, 0x1307, iwl6000i_2bg_cfg)}, | |
104 | {IWL_PCI_DEVICE(0x422C, 0x1321, iwl6000i_2agn_cfg)}, | |
105 | {IWL_PCI_DEVICE(0x422C, 0x1326, iwl6000i_2abg_cfg)}, | |
106 | {IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_3agn_cfg)}, | |
08a5dd38 | 107 | {IWL_PCI_DEVICE(0x4238, 0x1118, iwl6000_3agn_cfg)}, |
48d1a211 EG |
108 | {IWL_PCI_DEVICE(0x4239, 0x1311, iwl6000i_2agn_cfg)}, |
109 | {IWL_PCI_DEVICE(0x4239, 0x1316, iwl6000i_2abg_cfg)}, | |
110 | ||
111 | /* 6x05 Series */ | |
112 | {IWL_PCI_DEVICE(0x0082, 0x1301, iwl6005_2agn_cfg)}, | |
113 | {IWL_PCI_DEVICE(0x0082, 0x1306, iwl6005_2abg_cfg)}, | |
114 | {IWL_PCI_DEVICE(0x0082, 0x1307, iwl6005_2bg_cfg)}, | |
08a5dd38 | 115 | {IWL_PCI_DEVICE(0x0082, 0x1308, iwl6005_2agn_cfg)}, |
48d1a211 EG |
116 | {IWL_PCI_DEVICE(0x0082, 0x1321, iwl6005_2agn_cfg)}, |
117 | {IWL_PCI_DEVICE(0x0082, 0x1326, iwl6005_2abg_cfg)}, | |
08a5dd38 | 118 | {IWL_PCI_DEVICE(0x0082, 0x1328, iwl6005_2agn_cfg)}, |
48d1a211 | 119 | {IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_2agn_cfg)}, |
08a5dd38 | 120 | {IWL_PCI_DEVICE(0x0085, 0x1318, iwl6005_2agn_cfg)}, |
48d1a211 | 121 | {IWL_PCI_DEVICE(0x0085, 0x1316, iwl6005_2abg_cfg)}, |
6a9ae0dc | 122 | {IWL_PCI_DEVICE(0x0082, 0xC020, iwl6005_2agn_sff_cfg)}, |
ff647af6 | 123 | {IWL_PCI_DEVICE(0x0085, 0xC220, iwl6005_2agn_sff_cfg)}, |
08a5dd38 | 124 | {IWL_PCI_DEVICE(0x0085, 0xC228, iwl6005_2agn_sff_cfg)}, |
37891123 WYG |
125 | {IWL_PCI_DEVICE(0x0082, 0x4820, iwl6005_2agn_d_cfg)}, |
126 | {IWL_PCI_DEVICE(0x0082, 0x1304, iwl6005_2agn_mow1_cfg)},/* low 5GHz active */ | |
127 | {IWL_PCI_DEVICE(0x0082, 0x1305, iwl6005_2agn_mow2_cfg)},/* high 5GHz active */ | |
48d1a211 EG |
128 | |
129 | /* 6x30 Series */ | |
130 | {IWL_PCI_DEVICE(0x008A, 0x5305, iwl1030_bgn_cfg)}, | |
131 | {IWL_PCI_DEVICE(0x008A, 0x5307, iwl1030_bg_cfg)}, | |
132 | {IWL_PCI_DEVICE(0x008A, 0x5325, iwl1030_bgn_cfg)}, | |
133 | {IWL_PCI_DEVICE(0x008A, 0x5327, iwl1030_bg_cfg)}, | |
134 | {IWL_PCI_DEVICE(0x008B, 0x5315, iwl1030_bgn_cfg)}, | |
135 | {IWL_PCI_DEVICE(0x008B, 0x5317, iwl1030_bg_cfg)}, | |
136 | {IWL_PCI_DEVICE(0x0090, 0x5211, iwl6030_2agn_cfg)}, | |
137 | {IWL_PCI_DEVICE(0x0090, 0x5215, iwl6030_2bgn_cfg)}, | |
138 | {IWL_PCI_DEVICE(0x0090, 0x5216, iwl6030_2abg_cfg)}, | |
139 | {IWL_PCI_DEVICE(0x0091, 0x5201, iwl6030_2agn_cfg)}, | |
140 | {IWL_PCI_DEVICE(0x0091, 0x5205, iwl6030_2bgn_cfg)}, | |
141 | {IWL_PCI_DEVICE(0x0091, 0x5206, iwl6030_2abg_cfg)}, | |
142 | {IWL_PCI_DEVICE(0x0091, 0x5207, iwl6030_2bg_cfg)}, | |
143 | {IWL_PCI_DEVICE(0x0091, 0x5221, iwl6030_2agn_cfg)}, | |
144 | {IWL_PCI_DEVICE(0x0091, 0x5225, iwl6030_2bgn_cfg)}, | |
145 | {IWL_PCI_DEVICE(0x0091, 0x5226, iwl6030_2abg_cfg)}, | |
146 | ||
147 | /* 6x50 WiFi/WiMax Series */ | |
148 | {IWL_PCI_DEVICE(0x0087, 0x1301, iwl6050_2agn_cfg)}, | |
149 | {IWL_PCI_DEVICE(0x0087, 0x1306, iwl6050_2abg_cfg)}, | |
150 | {IWL_PCI_DEVICE(0x0087, 0x1321, iwl6050_2agn_cfg)}, | |
151 | {IWL_PCI_DEVICE(0x0087, 0x1326, iwl6050_2abg_cfg)}, | |
152 | {IWL_PCI_DEVICE(0x0089, 0x1311, iwl6050_2agn_cfg)}, | |
153 | {IWL_PCI_DEVICE(0x0089, 0x1316, iwl6050_2abg_cfg)}, | |
154 | ||
155 | /* 6150 WiFi/WiMax Series */ | |
156 | {IWL_PCI_DEVICE(0x0885, 0x1305, iwl6150_bgn_cfg)}, | |
157 | {IWL_PCI_DEVICE(0x0885, 0x1307, iwl6150_bg_cfg)}, | |
158 | {IWL_PCI_DEVICE(0x0885, 0x1325, iwl6150_bgn_cfg)}, | |
159 | {IWL_PCI_DEVICE(0x0885, 0x1327, iwl6150_bg_cfg)}, | |
160 | {IWL_PCI_DEVICE(0x0886, 0x1315, iwl6150_bgn_cfg)}, | |
161 | {IWL_PCI_DEVICE(0x0886, 0x1317, iwl6150_bg_cfg)}, | |
162 | ||
163 | /* 1000 Series WiFi */ | |
164 | {IWL_PCI_DEVICE(0x0083, 0x1205, iwl1000_bgn_cfg)}, | |
165 | {IWL_PCI_DEVICE(0x0083, 0x1305, iwl1000_bgn_cfg)}, | |
166 | {IWL_PCI_DEVICE(0x0083, 0x1225, iwl1000_bgn_cfg)}, | |
167 | {IWL_PCI_DEVICE(0x0083, 0x1325, iwl1000_bgn_cfg)}, | |
168 | {IWL_PCI_DEVICE(0x0084, 0x1215, iwl1000_bgn_cfg)}, | |
169 | {IWL_PCI_DEVICE(0x0084, 0x1315, iwl1000_bgn_cfg)}, | |
170 | {IWL_PCI_DEVICE(0x0083, 0x1206, iwl1000_bg_cfg)}, | |
171 | {IWL_PCI_DEVICE(0x0083, 0x1306, iwl1000_bg_cfg)}, | |
172 | {IWL_PCI_DEVICE(0x0083, 0x1226, iwl1000_bg_cfg)}, | |
173 | {IWL_PCI_DEVICE(0x0083, 0x1326, iwl1000_bg_cfg)}, | |
174 | {IWL_PCI_DEVICE(0x0084, 0x1216, iwl1000_bg_cfg)}, | |
175 | {IWL_PCI_DEVICE(0x0084, 0x1316, iwl1000_bg_cfg)}, | |
176 | ||
177 | /* 100 Series WiFi */ | |
178 | {IWL_PCI_DEVICE(0x08AE, 0x1005, iwl100_bgn_cfg)}, | |
179 | {IWL_PCI_DEVICE(0x08AE, 0x1007, iwl100_bg_cfg)}, | |
180 | {IWL_PCI_DEVICE(0x08AF, 0x1015, iwl100_bgn_cfg)}, | |
181 | {IWL_PCI_DEVICE(0x08AF, 0x1017, iwl100_bg_cfg)}, | |
182 | {IWL_PCI_DEVICE(0x08AE, 0x1025, iwl100_bgn_cfg)}, | |
183 | {IWL_PCI_DEVICE(0x08AE, 0x1027, iwl100_bg_cfg)}, | |
184 | ||
185 | /* 130 Series WiFi */ | |
186 | {IWL_PCI_DEVICE(0x0896, 0x5005, iwl130_bgn_cfg)}, | |
187 | {IWL_PCI_DEVICE(0x0896, 0x5007, iwl130_bg_cfg)}, | |
188 | {IWL_PCI_DEVICE(0x0897, 0x5015, iwl130_bgn_cfg)}, | |
189 | {IWL_PCI_DEVICE(0x0897, 0x5017, iwl130_bg_cfg)}, | |
190 | {IWL_PCI_DEVICE(0x0896, 0x5025, iwl130_bgn_cfg)}, | |
191 | {IWL_PCI_DEVICE(0x0896, 0x5027, iwl130_bg_cfg)}, | |
192 | ||
193 | /* 2x00 Series */ | |
194 | {IWL_PCI_DEVICE(0x0890, 0x4022, iwl2000_2bgn_cfg)}, | |
195 | {IWL_PCI_DEVICE(0x0891, 0x4222, iwl2000_2bgn_cfg)}, | |
196 | {IWL_PCI_DEVICE(0x0890, 0x4422, iwl2000_2bgn_cfg)}, | |
1603dd49 | 197 | {IWL_PCI_DEVICE(0x0890, 0x4822, iwl2000_2bgn_d_cfg)}, |
48d1a211 EG |
198 | |
199 | /* 2x30 Series */ | |
200 | {IWL_PCI_DEVICE(0x0887, 0x4062, iwl2030_2bgn_cfg)}, | |
201 | {IWL_PCI_DEVICE(0x0888, 0x4262, iwl2030_2bgn_cfg)}, | |
202 | {IWL_PCI_DEVICE(0x0887, 0x4462, iwl2030_2bgn_cfg)}, | |
48d1a211 EG |
203 | |
204 | /* 6x35 Series */ | |
205 | {IWL_PCI_DEVICE(0x088E, 0x4060, iwl6035_2agn_cfg)}, | |
08a5dd38 | 206 | {IWL_PCI_DEVICE(0x088E, 0x406A, iwl6035_2agn_sff_cfg)}, |
48d1a211 | 207 | {IWL_PCI_DEVICE(0x088F, 0x4260, iwl6035_2agn_cfg)}, |
08a5dd38 | 208 | {IWL_PCI_DEVICE(0x088F, 0x426A, iwl6035_2agn_sff_cfg)}, |
48d1a211 | 209 | {IWL_PCI_DEVICE(0x088E, 0x4460, iwl6035_2agn_cfg)}, |
08a5dd38 | 210 | {IWL_PCI_DEVICE(0x088E, 0x446A, iwl6035_2agn_sff_cfg)}, |
259653d8 | 211 | {IWL_PCI_DEVICE(0x088E, 0x4860, iwl6035_2agn_cfg)}, |
20ecf9fd | 212 | {IWL_PCI_DEVICE(0x088F, 0x5260, iwl6035_2agn_cfg)}, |
48d1a211 EG |
213 | |
214 | /* 105 Series */ | |
215 | {IWL_PCI_DEVICE(0x0894, 0x0022, iwl105_bgn_cfg)}, | |
216 | {IWL_PCI_DEVICE(0x0895, 0x0222, iwl105_bgn_cfg)}, | |
217 | {IWL_PCI_DEVICE(0x0894, 0x0422, iwl105_bgn_cfg)}, | |
b319d3eb | 218 | {IWL_PCI_DEVICE(0x0894, 0x0822, iwl105_bgn_d_cfg)}, |
48d1a211 EG |
219 | |
220 | /* 135 Series */ | |
221 | {IWL_PCI_DEVICE(0x0892, 0x0062, iwl135_bgn_cfg)}, | |
222 | {IWL_PCI_DEVICE(0x0893, 0x0262, iwl135_bgn_cfg)}, | |
223 | {IWL_PCI_DEVICE(0x0892, 0x0462, iwl135_bgn_cfg)}, | |
4f25bbdb | 224 | #endif /* CONFIG_IWLDVM */ |
48d1a211 | 225 | |
4f25bbdb | 226 | #if IS_ENABLED(CONFIG_IWLMVM) |
c4aee085 | 227 | /* 7260 Series */ |
99cd4714 | 228 | {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, |
b4992662 | 229 | {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, |
93fc6411 | 230 | {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, |
4f08970f OG |
231 | {IWL_PCI_DEVICE(0x08B1, 0x4C60, iwl7260_2ac_cfg)}, |
232 | {IWL_PCI_DEVICE(0x08B1, 0x4C70, iwl7260_2ac_cfg)}, | |
93fc6411 | 233 | {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, |
b4992662 | 234 | {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)}, |
93fc6411 OG |
235 | {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)}, |
236 | {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_n_cfg)}, | |
237 | {IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7260_n_cfg)}, | |
238 | {IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7260_2ac_cfg)}, | |
b4992662 | 239 | {IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7260_2ac_cfg)}, |
93fc6411 | 240 | {IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7260_2n_cfg)}, |
b4992662 | 241 | {IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7260_2n_cfg)}, |
93fc6411 OG |
242 | {IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7260_n_cfg)}, |
243 | {IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7260_2ac_cfg)}, | |
b4992662 | 244 | {IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7260_2ac_cfg)}, |
93fc6411 | 245 | {IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7260_2n_cfg)}, |
b4992662 | 246 | {IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7260_2n_cfg)}, |
93fc6411 OG |
247 | {IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7260_n_cfg)}, |
248 | {IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7260_2ac_cfg)}, | |
249 | {IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7260_2ac_cfg)}, | |
6be497f2 EL |
250 | {IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7260_2ac_cfg_high_temp)}, |
251 | {IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7260_2ac_cfg_high_temp)}, | |
252 | {IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7260_2ac_cfg_high_temp)}, | |
b4992662 MG |
253 | {IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7260_2ac_cfg)}, |
254 | {IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7260_2n_cfg)}, | |
255 | {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)}, | |
256 | {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)}, | |
257 | {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)}, | |
8c21c538 EG |
258 | {IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7260_2ac_cfg)}, |
259 | {IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7260_2ac_cfg)}, | |
260 | {IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7260_2ac_cfg)}, | |
93fc6411 | 261 | {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)}, |
b4992662 | 262 | {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)}, |
93fc6411 OG |
263 | {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)}, |
264 | {IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7260_2n_cfg)}, | |
99cd4714 | 265 | {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, |
b4992662 | 266 | {IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7260_2ac_cfg)}, |
93fc6411 OG |
267 | {IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7260_2ac_cfg)}, |
268 | {IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7260_2n_cfg)}, | |
b4992662 | 269 | {IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7260_2n_cfg)}, |
93fc6411 OG |
270 | {IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7260_2n_cfg)}, |
271 | {IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7260_n_cfg)}, | |
272 | {IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7260_n_cfg)}, | |
b4992662 MG |
273 | {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)}, |
274 | {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)}, | |
93fc6411 | 275 | {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)}, |
4f08970f OG |
276 | {IWL_PCI_DEVICE(0x08B1, 0xCC70, iwl7260_2ac_cfg)}, |
277 | {IWL_PCI_DEVICE(0x08B1, 0xCC60, iwl7260_2ac_cfg)}, | |
b4992662 | 278 | {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)}, |
93fc6411 | 279 | {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)}, |
b4992662 | 280 | {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)}, |
93fc6411 OG |
281 | {IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7260_n_cfg)}, |
282 | {IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7260_2ac_cfg)}, | |
b4992662 | 283 | {IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7260_2ac_cfg)}, |
93fc6411 OG |
284 | {IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7260_2n_cfg)}, |
285 | {IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7260_n_cfg)}, | |
b4992662 MG |
286 | {IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7260_2ac_cfg)}, |
287 | {IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7260_2n_cfg)}, | |
288 | {IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7260_2ac_cfg)}, | |
289 | {IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7260_2n_cfg)}, | |
93fc6411 | 290 | {IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7260_2n_cfg)}, |
b4992662 | 291 | {IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7260_2n_cfg)}, |
93fc6411 OG |
292 | {IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7260_2n_cfg)}, |
293 | {IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7260_2n_cfg)}, | |
294 | ||
295 | /* 3160 Series */ | |
296 | {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_2ac_cfg)}, | |
b4992662 | 297 | {IWL_PCI_DEVICE(0x08B3, 0x0072, iwl3160_2ac_cfg)}, |
93fc6411 | 298 | {IWL_PCI_DEVICE(0x08B3, 0x0170, iwl3160_2ac_cfg)}, |
b4992662 | 299 | {IWL_PCI_DEVICE(0x08B3, 0x0172, iwl3160_2ac_cfg)}, |
93fc6411 OG |
300 | {IWL_PCI_DEVICE(0x08B3, 0x0060, iwl3160_2n_cfg)}, |
301 | {IWL_PCI_DEVICE(0x08B3, 0x0062, iwl3160_n_cfg)}, | |
302 | {IWL_PCI_DEVICE(0x08B4, 0x0270, iwl3160_2ac_cfg)}, | |
b4992662 | 303 | {IWL_PCI_DEVICE(0x08B4, 0x0272, iwl3160_2ac_cfg)}, |
93fc6411 | 304 | {IWL_PCI_DEVICE(0x08B3, 0x0470, iwl3160_2ac_cfg)}, |
b4992662 MG |
305 | {IWL_PCI_DEVICE(0x08B3, 0x0472, iwl3160_2ac_cfg)}, |
306 | {IWL_PCI_DEVICE(0x08B4, 0x0370, iwl3160_2ac_cfg)}, | |
93fc6411 | 307 | {IWL_PCI_DEVICE(0x08B3, 0x8070, iwl3160_2ac_cfg)}, |
b4992662 | 308 | {IWL_PCI_DEVICE(0x08B3, 0x8072, iwl3160_2ac_cfg)}, |
93fc6411 | 309 | {IWL_PCI_DEVICE(0x08B3, 0x8170, iwl3160_2ac_cfg)}, |
b4992662 | 310 | {IWL_PCI_DEVICE(0x08B3, 0x8172, iwl3160_2ac_cfg)}, |
93fc6411 OG |
311 | {IWL_PCI_DEVICE(0x08B3, 0x8060, iwl3160_2n_cfg)}, |
312 | {IWL_PCI_DEVICE(0x08B3, 0x8062, iwl3160_n_cfg)}, | |
313 | {IWL_PCI_DEVICE(0x08B4, 0x8270, iwl3160_2ac_cfg)}, | |
498abba6 OG |
314 | {IWL_PCI_DEVICE(0x08B4, 0x8370, iwl3160_2ac_cfg)}, |
315 | {IWL_PCI_DEVICE(0x08B4, 0x8272, iwl3160_2ac_cfg)}, | |
93fc6411 | 316 | {IWL_PCI_DEVICE(0x08B3, 0x8470, iwl3160_2ac_cfg)}, |
b4992662 | 317 | {IWL_PCI_DEVICE(0x08B3, 0x8570, iwl3160_2ac_cfg)}, |
8c21c538 EG |
318 | {IWL_PCI_DEVICE(0x08B3, 0x1070, iwl3160_2ac_cfg)}, |
319 | {IWL_PCI_DEVICE(0x08B3, 0x1170, iwl3160_2ac_cfg)}, | |
c4aee085 | 320 | |
498abba6 OG |
321 | /* 3165 Series */ |
322 | {IWL_PCI_DEVICE(0x3165, 0x4010, iwl3165_2ac_cfg)}, | |
55fd1ce8 | 323 | {IWL_PCI_DEVICE(0x3165, 0x4012, iwl3165_2ac_cfg)}, |
b8eee757 | 324 | {IWL_PCI_DEVICE(0x3166, 0x4212, iwl3165_2ac_cfg)}, |
55fd1ce8 EG |
325 | {IWL_PCI_DEVICE(0x3165, 0x4410, iwl3165_2ac_cfg)}, |
326 | {IWL_PCI_DEVICE(0x3165, 0x4510, iwl3165_2ac_cfg)}, | |
132fee06 OG |
327 | {IWL_PCI_DEVICE(0x3165, 0x4110, iwl3165_2ac_cfg)}, |
328 | {IWL_PCI_DEVICE(0x3166, 0x4310, iwl3165_2ac_cfg)}, | |
329 | {IWL_PCI_DEVICE(0x3166, 0x4210, iwl3165_2ac_cfg)}, | |
330 | {IWL_PCI_DEVICE(0x3165, 0x8010, iwl3165_2ac_cfg)}, | |
b8eee757 | 331 | {IWL_PCI_DEVICE(0x3165, 0x8110, iwl3165_2ac_cfg)}, |
498abba6 | 332 | |
c4836b05 | 333 | /* 3168 Series */ |
7b08c67f | 334 | {IWL_PCI_DEVICE(0x24FB, 0x2010, iwl3168_2ac_cfg)}, |
c4836b05 | 335 | {IWL_PCI_DEVICE(0x24FB, 0x2110, iwl3168_2ac_cfg)}, |
7b08c67f OG |
336 | {IWL_PCI_DEVICE(0x24FB, 0x2050, iwl3168_2ac_cfg)}, |
337 | {IWL_PCI_DEVICE(0x24FB, 0x2150, iwl3168_2ac_cfg)}, | |
c4836b05 OG |
338 | {IWL_PCI_DEVICE(0x24FB, 0x0000, iwl3168_2ac_cfg)}, |
339 | ||
c4aee085 EH |
340 | /* 7265 Series */ |
341 | {IWL_PCI_DEVICE(0x095A, 0x5010, iwl7265_2ac_cfg)}, | |
53e88cb1 | 342 | {IWL_PCI_DEVICE(0x095A, 0x5110, iwl7265_2ac_cfg)}, |
f7690915 | 343 | {IWL_PCI_DEVICE(0x095A, 0x5100, iwl7265_2ac_cfg)}, |
53e88cb1 | 344 | {IWL_PCI_DEVICE(0x095B, 0x5310, iwl7265_2ac_cfg)}, |
acfcd9ed | 345 | {IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_n_cfg)}, |
53e88cb1 | 346 | {IWL_PCI_DEVICE(0x095B, 0x5210, iwl7265_2ac_cfg)}, |
006bda75 | 347 | {IWL_PCI_DEVICE(0x095A, 0x5C10, iwl7265_2ac_cfg)}, |
efc5520c | 348 | {IWL_PCI_DEVICE(0x095A, 0x5012, iwl7265_2ac_cfg)}, |
acfcd9ed | 349 | {IWL_PCI_DEVICE(0x095A, 0x5412, iwl7265_2ac_cfg)}, |
53e88cb1 | 350 | {IWL_PCI_DEVICE(0x095A, 0x5410, iwl7265_2ac_cfg)}, |
b3c063ae | 351 | {IWL_PCI_DEVICE(0x095A, 0x5510, iwl7265_2ac_cfg)}, |
efc5520c | 352 | {IWL_PCI_DEVICE(0x095A, 0x5400, iwl7265_2ac_cfg)}, |
53e88cb1 OG |
353 | {IWL_PCI_DEVICE(0x095A, 0x1010, iwl7265_2ac_cfg)}, |
354 | {IWL_PCI_DEVICE(0x095A, 0x5000, iwl7265_2n_cfg)}, | |
f7690915 | 355 | {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2n_cfg)}, |
53e88cb1 OG |
356 | {IWL_PCI_DEVICE(0x095B, 0x5200, iwl7265_2n_cfg)}, |
357 | {IWL_PCI_DEVICE(0x095A, 0x5002, iwl7265_n_cfg)}, | |
80f2679e | 358 | {IWL_PCI_DEVICE(0x095A, 0x5102, iwl7265_n_cfg)}, |
53e88cb1 OG |
359 | {IWL_PCI_DEVICE(0x095B, 0x5202, iwl7265_n_cfg)}, |
360 | {IWL_PCI_DEVICE(0x095A, 0x9010, iwl7265_2ac_cfg)}, | |
f7690915 | 361 | {IWL_PCI_DEVICE(0x095A, 0x9012, iwl7265_2ac_cfg)}, |
498abba6 | 362 | {IWL_PCI_DEVICE(0x095A, 0x900A, iwl7265_2ac_cfg)}, |
efc5520c | 363 | {IWL_PCI_DEVICE(0x095A, 0x9110, iwl7265_2ac_cfg)}, |
f7690915 | 364 | {IWL_PCI_DEVICE(0x095A, 0x9112, iwl7265_2ac_cfg)}, |
006bda75 | 365 | {IWL_PCI_DEVICE(0x095B, 0x9210, iwl7265_2ac_cfg)}, |
b3c063ae | 366 | {IWL_PCI_DEVICE(0x095B, 0x9200, iwl7265_2ac_cfg)}, |
efc5520c | 367 | {IWL_PCI_DEVICE(0x095A, 0x9510, iwl7265_2ac_cfg)}, |
006bda75 | 368 | {IWL_PCI_DEVICE(0x095B, 0x9310, iwl7265_2ac_cfg)}, |
53e88cb1 OG |
369 | {IWL_PCI_DEVICE(0x095A, 0x9410, iwl7265_2ac_cfg)}, |
370 | {IWL_PCI_DEVICE(0x095A, 0x5020, iwl7265_2n_cfg)}, | |
371 | {IWL_PCI_DEVICE(0x095A, 0x502A, iwl7265_2n_cfg)}, | |
372 | {IWL_PCI_DEVICE(0x095A, 0x5420, iwl7265_2n_cfg)}, | |
373 | {IWL_PCI_DEVICE(0x095A, 0x5090, iwl7265_2ac_cfg)}, | |
efc5520c OG |
374 | {IWL_PCI_DEVICE(0x095A, 0x5190, iwl7265_2ac_cfg)}, |
375 | {IWL_PCI_DEVICE(0x095A, 0x5590, iwl7265_2ac_cfg)}, | |
53e88cb1 OG |
376 | {IWL_PCI_DEVICE(0x095B, 0x5290, iwl7265_2ac_cfg)}, |
377 | {IWL_PCI_DEVICE(0x095A, 0x5490, iwl7265_2ac_cfg)}, | |
f08f6258 LC |
378 | {IWL_PCI_DEVICE(0x095A, 0x5F10, iwl7265_2ac_cfg)}, |
379 | {IWL_PCI_DEVICE(0x095B, 0x5212, iwl7265_2ac_cfg)}, | |
380 | {IWL_PCI_DEVICE(0x095B, 0x520A, iwl7265_2ac_cfg)}, | |
381 | {IWL_PCI_DEVICE(0x095A, 0x9000, iwl7265_2ac_cfg)}, | |
382 | {IWL_PCI_DEVICE(0x095A, 0x9400, iwl7265_2ac_cfg)}, | |
3f7a5e13 | 383 | {IWL_PCI_DEVICE(0x095A, 0x9E10, iwl7265_2ac_cfg)}, |
503ab8c5 EH |
384 | |
385 | /* 8000 Series */ | |
386 | {IWL_PCI_DEVICE(0x24F3, 0x0010, iwl8260_2ac_cfg)}, | |
3a1a6147 | 387 | {IWL_PCI_DEVICE(0x24F3, 0x1010, iwl8260_2ac_cfg)}, |
4b79deec | 388 | {IWL_PCI_DEVICE(0x24F3, 0x10B0, iwl8260_2ac_cfg)}, |
4ab75944 OG |
389 | {IWL_PCI_DEVICE(0x24F3, 0x0130, iwl8260_2ac_cfg)}, |
390 | {IWL_PCI_DEVICE(0x24F3, 0x1130, iwl8260_2ac_cfg)}, | |
391 | {IWL_PCI_DEVICE(0x24F3, 0x0132, iwl8260_2ac_cfg)}, | |
392 | {IWL_PCI_DEVICE(0x24F3, 0x1132, iwl8260_2ac_cfg)}, | |
2bccec4e | 393 | {IWL_PCI_DEVICE(0x24F3, 0x0110, iwl8260_2ac_cfg)}, |
4ab75944 OG |
394 | {IWL_PCI_DEVICE(0x24F3, 0x01F0, iwl8260_2ac_cfg)}, |
395 | {IWL_PCI_DEVICE(0x24F3, 0x0012, iwl8260_2ac_cfg)}, | |
396 | {IWL_PCI_DEVICE(0x24F3, 0x1012, iwl8260_2ac_cfg)}, | |
2bccec4e | 397 | {IWL_PCI_DEVICE(0x24F3, 0x1110, iwl8260_2ac_cfg)}, |
3a1a6147 | 398 | {IWL_PCI_DEVICE(0x24F3, 0x0050, iwl8260_2ac_cfg)}, |
2bccec4e | 399 | {IWL_PCI_DEVICE(0x24F3, 0x0250, iwl8260_2ac_cfg)}, |
3a1a6147 | 400 | {IWL_PCI_DEVICE(0x24F3, 0x1050, iwl8260_2ac_cfg)}, |
2bccec4e | 401 | {IWL_PCI_DEVICE(0x24F3, 0x0150, iwl8260_2ac_cfg)}, |
4ab75944 | 402 | {IWL_PCI_DEVICE(0x24F3, 0x1150, iwl8260_2ac_cfg)}, |
503ab8c5 | 403 | {IWL_PCI_DEVICE(0x24F4, 0x0030, iwl8260_2ac_cfg)}, |
3a1a6147 OG |
404 | {IWL_PCI_DEVICE(0x24F4, 0x1030, iwl8260_2ac_cfg)}, |
405 | {IWL_PCI_DEVICE(0x24F3, 0xC010, iwl8260_2ac_cfg)}, | |
b8eee757 | 406 | {IWL_PCI_DEVICE(0x24F3, 0xC110, iwl8260_2ac_cfg)}, |
3a1a6147 | 407 | {IWL_PCI_DEVICE(0x24F3, 0xD010, iwl8260_2ac_cfg)}, |
3a1a6147 OG |
408 | {IWL_PCI_DEVICE(0x24F3, 0xC050, iwl8260_2ac_cfg)}, |
409 | {IWL_PCI_DEVICE(0x24F3, 0xD050, iwl8260_2ac_cfg)}, | |
4b79deec OG |
410 | {IWL_PCI_DEVICE(0x24F3, 0xD0B0, iwl8260_2ac_cfg)}, |
411 | {IWL_PCI_DEVICE(0x24F3, 0xB0B0, iwl8260_2ac_cfg)}, | |
3a1a6147 | 412 | {IWL_PCI_DEVICE(0x24F3, 0x8010, iwl8260_2ac_cfg)}, |
4ab75944 | 413 | {IWL_PCI_DEVICE(0x24F3, 0x8110, iwl8260_2ac_cfg)}, |
3a1a6147 | 414 | {IWL_PCI_DEVICE(0x24F3, 0x9010, iwl8260_2ac_cfg)}, |
4ab75944 | 415 | {IWL_PCI_DEVICE(0x24F3, 0x9110, iwl8260_2ac_cfg)}, |
3a1a6147 OG |
416 | {IWL_PCI_DEVICE(0x24F4, 0x8030, iwl8260_2ac_cfg)}, |
417 | {IWL_PCI_DEVICE(0x24F4, 0x9030, iwl8260_2ac_cfg)}, | |
d669fc2d IZ |
418 | {IWL_PCI_DEVICE(0x24F4, 0xC030, iwl8260_2ac_cfg)}, |
419 | {IWL_PCI_DEVICE(0x24F4, 0xD030, iwl8260_2ac_cfg)}, | |
4ab75944 OG |
420 | {IWL_PCI_DEVICE(0x24F3, 0x8130, iwl8260_2ac_cfg)}, |
421 | {IWL_PCI_DEVICE(0x24F3, 0x9130, iwl8260_2ac_cfg)}, | |
422 | {IWL_PCI_DEVICE(0x24F3, 0x8132, iwl8260_2ac_cfg)}, | |
423 | {IWL_PCI_DEVICE(0x24F3, 0x9132, iwl8260_2ac_cfg)}, | |
3a1a6147 | 424 | {IWL_PCI_DEVICE(0x24F3, 0x8050, iwl8260_2ac_cfg)}, |
4ab75944 | 425 | {IWL_PCI_DEVICE(0x24F3, 0x8150, iwl8260_2ac_cfg)}, |
3a1a6147 | 426 | {IWL_PCI_DEVICE(0x24F3, 0x9050, iwl8260_2ac_cfg)}, |
4ab75944 | 427 | {IWL_PCI_DEVICE(0x24F3, 0x9150, iwl8260_2ac_cfg)}, |
3a1a6147 | 428 | {IWL_PCI_DEVICE(0x24F3, 0x0004, iwl8260_2n_cfg)}, |
4ab75944 | 429 | {IWL_PCI_DEVICE(0x24F3, 0x0044, iwl8260_2n_cfg)}, |
9b8a7a90 OG |
430 | {IWL_PCI_DEVICE(0x24F5, 0x0010, iwl4165_2ac_cfg)}, |
431 | {IWL_PCI_DEVICE(0x24F6, 0x0030, iwl4165_2ac_cfg)}, | |
3a1a6147 | 432 | {IWL_PCI_DEVICE(0x24F3, 0x0810, iwl8260_2ac_cfg)}, |
2bccec4e OG |
433 | {IWL_PCI_DEVICE(0x24F3, 0x0910, iwl8260_2ac_cfg)}, |
434 | {IWL_PCI_DEVICE(0x24F3, 0x0850, iwl8260_2ac_cfg)}, | |
435 | {IWL_PCI_DEVICE(0x24F3, 0x0950, iwl8260_2ac_cfg)}, | |
4ab75944 | 436 | {IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8260_2ac_cfg)}, |
8d0e4f8f | 437 | {IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8265_2ac_cfg)}, |
d669fc2d | 438 | {IWL_PCI_DEVICE(0x24F3, 0x4010, iwl8260_2ac_cfg)}, |
abf10f86 | 439 | {IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8265_2ac_cfg)}, |
d34475b9 OG |
440 | {IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8265_2ac_cfg)}, |
441 | {IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8265_2ac_cfg)}, | |
f24bbae5 OG |
442 | {IWL_PCI_DEVICE(0x24FD, 0x1130, iwl8265_2ac_cfg)}, |
443 | {IWL_PCI_DEVICE(0x24FD, 0x0130, iwl8265_2ac_cfg)}, | |
d34475b9 | 444 | {IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8265_2ac_cfg)}, |
8b6607cc | 445 | {IWL_PCI_DEVICE(0x24FD, 0x10D0, iwl8265_2ac_cfg)}, |
d34475b9 OG |
446 | {IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8265_2ac_cfg)}, |
447 | {IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8265_2ac_cfg)}, | |
448 | {IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8265_2ac_cfg)}, | |
449 | {IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8265_2ac_cfg)}, | |
450 | {IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8265_2ac_cfg)}, | |
8d0e4f8f | 451 | {IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8265_2ac_cfg)}, |
9baa0398 | 452 | {IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8265_2ac_cfg)}, |
d34475b9 OG |
453 | {IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8265_2ac_cfg)}, |
454 | {IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8265_2ac_cfg)}, | |
f24bbae5 OG |
455 | {IWL_PCI_DEVICE(0x24FD, 0x0910, iwl8265_2ac_cfg)}, |
456 | {IWL_PCI_DEVICE(0x24FD, 0x0930, iwl8265_2ac_cfg)}, | |
457 | {IWL_PCI_DEVICE(0x24FD, 0x0950, iwl8265_2ac_cfg)}, | |
458 | {IWL_PCI_DEVICE(0x24FD, 0x0850, iwl8265_2ac_cfg)}, | |
f2758893 TP |
459 | {IWL_PCI_DEVICE(0x24FD, 0x1014, iwl8265_2ac_cfg)}, |
460 | {IWL_PCI_DEVICE(0x24FD, 0x3E02, iwl8275_2ac_cfg)}, | |
461 | {IWL_PCI_DEVICE(0x24FD, 0x3E01, iwl8275_2ac_cfg)}, | |
462 | {IWL_PCI_DEVICE(0x24FD, 0x1012, iwl8275_2ac_cfg)}, | |
a3e939df | 463 | {IWL_PCI_DEVICE(0x24FD, 0x0012, iwl8275_2ac_cfg)}, |
7cddbef4 IZ |
464 | {IWL_PCI_DEVICE(0x24FD, 0x0014, iwl8265_2ac_cfg)}, |
465 | {IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8265_2ac_cfg)}, | |
89374fe6 DH |
466 | |
467 | /* 9000 Series */ | |
32ed101a | 468 | {IWL_PCI_DEVICE(0x2526, PCI_ANY_ID, iwl9000_trans_cfg)}, |
a48d400c LC |
469 | {IWL_PCI_DEVICE(0x271B, PCI_ANY_ID, iwl9000_trans_cfg)}, |
470 | {IWL_PCI_DEVICE(0x271C, PCI_ANY_ID, iwl9000_trans_cfg)}, | |
24436191 | 471 | {IWL_PCI_DEVICE(0x30DC, PCI_ANY_ID, iwl9560_long_latency_trans_cfg)}, |
32ed101a LC |
472 | {IWL_PCI_DEVICE(0x31DC, PCI_ANY_ID, iwl9560_shared_clk_trans_cfg)}, |
473 | {IWL_PCI_DEVICE(0x9DF0, PCI_ANY_ID, iwl9560_trans_cfg)}, | |
474 | {IWL_PCI_DEVICE(0xA370, PCI_ANY_ID, iwl9560_trans_cfg)}, | |
475 | ||
476 | /* Qu devices */ | |
477 | {IWL_PCI_DEVICE(0x02F0, PCI_ANY_ID, iwl_qu_trans_cfg)}, | |
478 | {IWL_PCI_DEVICE(0x06F0, PCI_ANY_ID, iwl_qu_trans_cfg)}, | |
9c9613f0 LC |
479 | |
480 | {IWL_PCI_DEVICE(0x34F0, PCI_ANY_ID, iwl_qu_medium_latency_trans_cfg)}, | |
481 | {IWL_PCI_DEVICE(0x3DF0, PCI_ANY_ID, iwl_qu_medium_latency_trans_cfg)}, | |
482 | {IWL_PCI_DEVICE(0x4DF0, PCI_ANY_ID, iwl_qu_medium_latency_trans_cfg)}, | |
a72abfca LC |
483 | |
484 | {IWL_PCI_DEVICE(0x43F0, PCI_ANY_ID, iwl_qu_long_latency_trans_cfg)}, | |
485 | {IWL_PCI_DEVICE(0xA0F0, PCI_ANY_ID, iwl_qu_long_latency_trans_cfg)}, | |
aa0cc7dd | 486 | |
612509d6 | 487 | {IWL_PCI_DEVICE(0x2720, PCI_ANY_ID, iwl_qnj_trans_cfg)}, |
e34d975e | 488 | |
5e003982 LC |
489 | {IWL_PCI_DEVICE(0x2723, PCI_ANY_ID, iwl_ax200_trans_cfg)}, |
490 | ||
6f60fb03 LC |
491 | /* So devices */ |
492 | {IWL_PCI_DEVICE(0x2725, PCI_ANY_ID, iwl_so_trans_cfg)}, | |
493 | {IWL_PCI_DEVICE(0x2726, PCI_ANY_ID, iwl_snj_trans_cfg)}, | |
1c4db761 | 494 | {IWL_PCI_DEVICE(0x7A70, PCI_ANY_ID, iwl_so_long_latency_imr_trans_cfg)}, |
6f60fb03 LC |
495 | {IWL_PCI_DEVICE(0x7AF0, PCI_ANY_ID, iwl_so_trans_cfg)}, |
496 | {IWL_PCI_DEVICE(0x51F0, PCI_ANY_ID, iwl_so_long_latency_trans_cfg)}, | |
1c4db761 | 497 | {IWL_PCI_DEVICE(0x51F1, PCI_ANY_ID, iwl_so_long_latency_imr_trans_cfg)}, |
6f60fb03 | 498 | {IWL_PCI_DEVICE(0x54F0, PCI_ANY_ID, iwl_so_long_latency_trans_cfg)}, |
eaf4e9d0 | 499 | {IWL_PCI_DEVICE(0x7F70, PCI_ANY_ID, iwl_so_trans_cfg)}, |
ff911dca | 500 | |
bc9296f4 IZ |
501 | /* Ma devices */ |
502 | {IWL_PCI_DEVICE(0x2729, PCI_ANY_ID, iwl_ma_trans_cfg)}, | |
1c094e5e | 503 | {IWL_PCI_DEVICE(0x7E40, PCI_ANY_ID, iwl_ma_trans_cfg)}, |
bc9296f4 | 504 | |
2be05dfd MG |
505 | /* Bz devices */ |
506 | {IWL_PCI_DEVICE(0x2727, PCI_ANY_ID, iwl_bz_trans_cfg)}, | |
c30a2a64 | 507 | {IWL_PCI_DEVICE(0x272b, PCI_ANY_ID, iwl_bz_trans_cfg)}, |
b6356d43 MG |
508 | {IWL_PCI_DEVICE(0xA840, PCI_ANY_ID, iwl_bz_trans_cfg)}, |
509 | {IWL_PCI_DEVICE(0x7740, PCI_ANY_ID, iwl_bz_trans_cfg)}, | |
4f25bbdb | 510 | #endif /* CONFIG_IWLMVM */ |
99cd4714 | 511 | |
48d1a211 EG |
512 | {0} |
513 | }; | |
514 | MODULE_DEVICE_TABLE(pci, iwl_hw_card_ids); | |
515 | ||
be2f6886 | 516 | #define _IWL_DEV_INFO(_device, _subdevice, _mac_type, _mac_step, _rf_type, \ |
72904029 MS |
517 | _rf_id, _rf_step, _no_160, _cores, _cdb, _jacket, _cfg, \ |
518 | _name) \ | |
519 | { .device = (_device), .subdevice = (_subdevice), .cfg = &(_cfg), \ | |
520 | .name = _name, .mac_type = _mac_type, .rf_type = _rf_type, .rf_step = _rf_step, \ | |
521 | .no_160 = _no_160, .cores = _cores, .rf_id = _rf_id, \ | |
2b0ceda9 | 522 | .mac_step = _mac_step, .cdb = _cdb, .jacket = _jacket } |
d6f2134a LC |
523 | |
524 | #define IWL_DEV_INFO(_device, _subdevice, _cfg, _name) \ | |
72904029 MS |
525 | _IWL_DEV_INFO(_device, _subdevice, IWL_CFG_ANY, IWL_CFG_ANY, \ |
526 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, \ | |
527 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, _cfg, _name) | |
2a612a60 LC |
528 | |
529 | static const struct iwl_dev_info iwl_dev_info_table[] = { | |
530 | #if IS_ENABLED(CONFIG_IWLMVM) | |
5e003982 | 531 | /* 9000 */ |
67eb556d | 532 | IWL_DEV_INFO(0x2526, 0x1550, iwl9260_2ac_cfg, iwl9260_killer_1550_name), |
67eb556d LC |
533 | IWL_DEV_INFO(0x2526, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name), |
534 | IWL_DEV_INFO(0x2526, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), | |
c8685937 LC |
535 | IWL_DEV_INFO(0x30DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name), |
536 | IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), | |
7897dfa2 LC |
537 | IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name), |
538 | IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), | |
b5ba46b8 AB |
539 | IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name), |
540 | IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), | |
33c99471 YB |
541 | IWL_DEV_INFO(0x54F0, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name), |
542 | IWL_DEV_INFO(0x54F0, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name), | |
c863797b | 543 | IWL_DEV_INFO(0x51F0, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name), |
544 | IWL_DEV_INFO(0x51F0, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name), | |
33c99471 YB |
545 | IWL_DEV_INFO(0x51F0, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name), |
546 | IWL_DEV_INFO(0x51F0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name), | |
547 | IWL_DEV_INFO(0x54F0, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name), | |
548 | IWL_DEV_INFO(0x54F0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name), | |
549 | IWL_DEV_INFO(0x7A70, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name), | |
550 | IWL_DEV_INFO(0x7A70, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name), | |
4e9f0ec3 MS |
551 | IWL_DEV_INFO(0x7AF0, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name), |
552 | IWL_DEV_INFO(0x7AF0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name), | |
d6f2134a | 553 | |
55cf5fb9 | 554 | IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name), |
33c99471 YB |
555 | IWL_DEV_INFO(0x7E40, 0x1691, iwl_cfg_ma_a0_gf4_a0, iwl_ax411_killer_1690s_name), |
556 | IWL_DEV_INFO(0x7E40, 0x1692, iwl_cfg_ma_a0_gf4_a0, iwl_ax411_killer_1690i_name), | |
55cf5fb9 | 557 | |
32ed101a | 558 | /* AX200 */ |
c7d3db99 | 559 | IWL_DEV_INFO(0x2723, IWL_CFG_ANY, iwl_ax200_cfg_cc, iwl_ax200_name), |
32ed101a LC |
560 | IWL_DEV_INFO(0x2723, 0x1653, iwl_ax200_cfg_cc, iwl_ax200_killer_1650w_name), |
561 | IWL_DEV_INFO(0x2723, 0x1654, iwl_ax200_cfg_cc, iwl_ax200_killer_1650x_name), | |
32ed101a | 562 | |
d5727b60 | 563 | /* Qu with Hr */ |
32ed101a LC |
564 | IWL_DEV_INFO(0x43F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL), |
565 | IWL_DEV_INFO(0x43F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL), | |
566 | IWL_DEV_INFO(0x43F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL), | |
567 | IWL_DEV_INFO(0x43F0, 0x007C, iwl_ax201_cfg_qu_hr, NULL), | |
fe5c735d VZ |
568 | IWL_DEV_INFO(0x43F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, iwl_ax201_killer_1650s_name), |
569 | IWL_DEV_INFO(0x43F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, iwl_ax201_killer_1650i_name), | |
32ed101a LC |
570 | IWL_DEV_INFO(0x43F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL), |
571 | IWL_DEV_INFO(0x43F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL), | |
32ed101a LC |
572 | IWL_DEV_INFO(0xA0F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL), |
573 | IWL_DEV_INFO(0xA0F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL), | |
574 | IWL_DEV_INFO(0xA0F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL), | |
575 | IWL_DEV_INFO(0xA0F0, 0x007C, iwl_ax201_cfg_qu_hr, NULL), | |
32ed101a LC |
576 | IWL_DEV_INFO(0xA0F0, 0x0A10, iwl_ax201_cfg_qu_hr, NULL), |
577 | IWL_DEV_INFO(0xA0F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL), | |
578 | IWL_DEV_INFO(0xA0F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL), | |
579 | IWL_DEV_INFO(0xA0F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL), | |
580 | IWL_DEV_INFO(0xA0F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL), | |
2f32c147 | 581 | IWL_DEV_INFO(0xA0F0, 0x6074, iwl_ax201_cfg_qu_hr, NULL), |
32ed101a LC |
582 | IWL_DEV_INFO(0x02F0, 0x0070, iwl_ax201_cfg_quz_hr, NULL), |
583 | IWL_DEV_INFO(0x02F0, 0x0074, iwl_ax201_cfg_quz_hr, NULL), | |
43dc85b5 | 584 | IWL_DEV_INFO(0x02F0, 0x6074, iwl_ax201_cfg_quz_hr, NULL), |
32ed101a LC |
585 | IWL_DEV_INFO(0x02F0, 0x0078, iwl_ax201_cfg_quz_hr, NULL), |
586 | IWL_DEV_INFO(0x02F0, 0x007C, iwl_ax201_cfg_quz_hr, NULL), | |
32ed101a LC |
587 | IWL_DEV_INFO(0x02F0, 0x0310, iwl_ax201_cfg_quz_hr, NULL), |
588 | IWL_DEV_INFO(0x02F0, 0x1651, iwl_ax1650s_cfg_quz_hr, NULL), | |
589 | IWL_DEV_INFO(0x02F0, 0x1652, iwl_ax1650i_cfg_quz_hr, NULL), | |
590 | IWL_DEV_INFO(0x02F0, 0x2074, iwl_ax201_cfg_quz_hr, NULL), | |
591 | IWL_DEV_INFO(0x02F0, 0x4070, iwl_ax201_cfg_quz_hr, NULL), | |
32ed101a LC |
592 | IWL_DEV_INFO(0x06F0, 0x0070, iwl_ax201_cfg_quz_hr, NULL), |
593 | IWL_DEV_INFO(0x06F0, 0x0074, iwl_ax201_cfg_quz_hr, NULL), | |
594 | IWL_DEV_INFO(0x06F0, 0x0078, iwl_ax201_cfg_quz_hr, NULL), | |
595 | IWL_DEV_INFO(0x06F0, 0x007C, iwl_ax201_cfg_quz_hr, NULL), | |
32ed101a LC |
596 | IWL_DEV_INFO(0x06F0, 0x0310, iwl_ax201_cfg_quz_hr, NULL), |
597 | IWL_DEV_INFO(0x06F0, 0x1651, iwl_ax1650s_cfg_quz_hr, NULL), | |
598 | IWL_DEV_INFO(0x06F0, 0x1652, iwl_ax1650i_cfg_quz_hr, NULL), | |
599 | IWL_DEV_INFO(0x06F0, 0x2074, iwl_ax201_cfg_quz_hr, NULL), | |
600 | IWL_DEV_INFO(0x06F0, 0x4070, iwl_ax201_cfg_quz_hr, NULL), | |
32ed101a LC |
601 | IWL_DEV_INFO(0x34F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL), |
602 | IWL_DEV_INFO(0x34F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL), | |
603 | IWL_DEV_INFO(0x34F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL), | |
604 | IWL_DEV_INFO(0x34F0, 0x007C, iwl_ax201_cfg_qu_hr, NULL), | |
32ed101a LC |
605 | IWL_DEV_INFO(0x34F0, 0x0310, iwl_ax201_cfg_qu_hr, NULL), |
606 | IWL_DEV_INFO(0x34F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL), | |
607 | IWL_DEV_INFO(0x34F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL), | |
608 | IWL_DEV_INFO(0x34F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL), | |
609 | IWL_DEV_INFO(0x34F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL), | |
32ed101a | 610 | |
32ed101a LC |
611 | IWL_DEV_INFO(0x3DF0, 0x0070, iwl_ax201_cfg_qu_hr, NULL), |
612 | IWL_DEV_INFO(0x3DF0, 0x0074, iwl_ax201_cfg_qu_hr, NULL), | |
613 | IWL_DEV_INFO(0x3DF0, 0x0078, iwl_ax201_cfg_qu_hr, NULL), | |
614 | IWL_DEV_INFO(0x3DF0, 0x007C, iwl_ax201_cfg_qu_hr, NULL), | |
32ed101a LC |
615 | IWL_DEV_INFO(0x3DF0, 0x0310, iwl_ax201_cfg_qu_hr, NULL), |
616 | IWL_DEV_INFO(0x3DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL), | |
617 | IWL_DEV_INFO(0x3DF0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL), | |
618 | IWL_DEV_INFO(0x3DF0, 0x2074, iwl_ax201_cfg_qu_hr, NULL), | |
619 | IWL_DEV_INFO(0x3DF0, 0x4070, iwl_ax201_cfg_qu_hr, NULL), | |
32ed101a | 620 | |
4ee27edd LC |
621 | IWL_DEV_INFO(0x4DF0, 0x0070, iwl_ax201_cfg_qu_hr, NULL), |
622 | IWL_DEV_INFO(0x4DF0, 0x0074, iwl_ax201_cfg_qu_hr, NULL), | |
623 | IWL_DEV_INFO(0x4DF0, 0x0078, iwl_ax201_cfg_qu_hr, NULL), | |
624 | IWL_DEV_INFO(0x4DF0, 0x007C, iwl_ax201_cfg_qu_hr, NULL), | |
4ee27edd LC |
625 | IWL_DEV_INFO(0x4DF0, 0x0310, iwl_ax201_cfg_qu_hr, NULL), |
626 | IWL_DEV_INFO(0x4DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL), | |
627 | IWL_DEV_INFO(0x4DF0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL), | |
628 | IWL_DEV_INFO(0x4DF0, 0x2074, iwl_ax201_cfg_qu_hr, NULL), | |
629 | IWL_DEV_INFO(0x4DF0, 0x4070, iwl_ax201_cfg_qu_hr, NULL), | |
97195d3c | 630 | IWL_DEV_INFO(0x4DF0, 0x6074, iwl_ax201_cfg_qu_hr, NULL), |
612509d6 | 631 | |
6f60fb03 LC |
632 | /* So with HR */ |
633 | IWL_DEV_INFO(0x2725, 0x0090, iwlax211_2ax_cfg_so_gf_a0, NULL), | |
634 | IWL_DEV_INFO(0x2725, 0x0020, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
806832c9 LC |
635 | IWL_DEV_INFO(0x2725, 0x2020, iwlax210_2ax_cfg_ty_gf_a0, NULL), |
636 | IWL_DEV_INFO(0x2725, 0x0024, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
6f60fb03 LC |
637 | IWL_DEV_INFO(0x2725, 0x0310, iwlax210_2ax_cfg_ty_gf_a0, NULL), |
638 | IWL_DEV_INFO(0x2725, 0x0510, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
639 | IWL_DEV_INFO(0x2725, 0x0A10, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
806832c9 LC |
640 | IWL_DEV_INFO(0x2725, 0xE020, iwlax210_2ax_cfg_ty_gf_a0, NULL), |
641 | IWL_DEV_INFO(0x2725, 0xE024, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
642 | IWL_DEV_INFO(0x2725, 0x4020, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
643 | IWL_DEV_INFO(0x2725, 0x6020, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
644 | IWL_DEV_INFO(0x2725, 0x6024, iwlax210_2ax_cfg_ty_gf_a0, NULL), | |
85b5fd94 | 645 | IWL_DEV_INFO(0x2725, 0x1673, iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675w_name), |
646 | IWL_DEV_INFO(0x2725, 0x1674, iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675x_name), | |
6f60fb03 LC |
647 | IWL_DEV_INFO(0x7A70, 0x0090, iwlax211_2ax_cfg_so_gf_a0_long, NULL), |
648 | IWL_DEV_INFO(0x7A70, 0x0098, iwlax211_2ax_cfg_so_gf_a0_long, NULL), | |
649 | IWL_DEV_INFO(0x7A70, 0x00B0, iwlax411_2ax_cfg_so_gf4_a0_long, NULL), | |
650 | IWL_DEV_INFO(0x7A70, 0x0310, iwlax211_2ax_cfg_so_gf_a0_long, NULL), | |
651 | IWL_DEV_INFO(0x7A70, 0x0510, iwlax211_2ax_cfg_so_gf_a0_long, NULL), | |
652 | IWL_DEV_INFO(0x7A70, 0x0A10, iwlax211_2ax_cfg_so_gf_a0_long, NULL), | |
653 | IWL_DEV_INFO(0x7AF0, 0x0090, iwlax211_2ax_cfg_so_gf_a0, NULL), | |
654 | IWL_DEV_INFO(0x7AF0, 0x0098, iwlax211_2ax_cfg_so_gf_a0, NULL), | |
655 | IWL_DEV_INFO(0x7AF0, 0x00B0, iwlax411_2ax_cfg_so_gf4_a0, NULL), | |
656 | IWL_DEV_INFO(0x7AF0, 0x0310, iwlax211_2ax_cfg_so_gf_a0, NULL), | |
657 | IWL_DEV_INFO(0x7AF0, 0x0510, iwlax211_2ax_cfg_so_gf_a0, NULL), | |
658 | IWL_DEV_INFO(0x7AF0, 0x0A10, iwlax211_2ax_cfg_so_gf_a0, NULL), | |
659 | ||
33c99471 YB |
660 | /* So with JF */ |
661 | IWL_DEV_INFO(0x7A70, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name), | |
662 | IWL_DEV_INFO(0x7A70, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name), | |
663 | IWL_DEV_INFO(0x7AF0, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name), | |
664 | IWL_DEV_INFO(0x7AF0, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name), | |
665 | ||
6f60fb03 LC |
666 | /* SnJ with HR */ |
667 | IWL_DEV_INFO(0x2725, 0x00B0, iwlax411_2ax_cfg_sosnj_gf4_a0, NULL), | |
6f60fb03 LC |
668 | IWL_DEV_INFO(0x2726, 0x0090, iwlax211_cfg_snj_gf_a0, NULL), |
669 | IWL_DEV_INFO(0x2726, 0x0098, iwlax211_cfg_snj_gf_a0, NULL), | |
670 | IWL_DEV_INFO(0x2726, 0x00B0, iwlax411_2ax_cfg_sosnj_gf4_a0, NULL), | |
806832c9 | 671 | IWL_DEV_INFO(0x2726, 0x00B4, iwlax411_2ax_cfg_sosnj_gf4_a0, NULL), |
6f60fb03 | 672 | IWL_DEV_INFO(0x2726, 0x0510, iwlax211_cfg_snj_gf_a0, NULL), |
930be4e7 LC |
673 | IWL_DEV_INFO(0x2726, 0x1651, iwl_cfg_snj_hr_b0, iwl_ax201_killer_1650s_name), |
674 | IWL_DEV_INFO(0x2726, 0x1652, iwl_cfg_snj_hr_b0, iwl_ax201_killer_1650i_name), | |
33c99471 YB |
675 | IWL_DEV_INFO(0x2726, 0x1691, iwlax411_2ax_cfg_sosnj_gf4_a0, iwl_ax411_killer_1690s_name), |
676 | IWL_DEV_INFO(0x2726, 0x1692, iwlax411_2ax_cfg_sosnj_gf4_a0, iwl_ax411_killer_1690i_name), | |
eaf4e9d0 YB |
677 | IWL_DEV_INFO(0x7F70, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name), |
678 | IWL_DEV_INFO(0x7F70, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name), | |
6f60fb03 | 679 | |
dbe6f76a YB |
680 | /* SO with GF2 */ |
681 | IWL_DEV_INFO(0x2726, 0x1671, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name), | |
682 | IWL_DEV_INFO(0x2726, 0x1672, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name), | |
683 | IWL_DEV_INFO(0x51F0, 0x1671, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name), | |
684 | IWL_DEV_INFO(0x51F0, 0x1672, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name), | |
685 | IWL_DEV_INFO(0x54F0, 0x1671, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name), | |
686 | IWL_DEV_INFO(0x54F0, 0x1672, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name), | |
687 | IWL_DEV_INFO(0x7A70, 0x1671, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name), | |
688 | IWL_DEV_INFO(0x7A70, 0x1672, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name), | |
689 | IWL_DEV_INFO(0x7AF0, 0x1671, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name), | |
690 | IWL_DEV_INFO(0x7AF0, 0x1672, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name), | |
eaf4e9d0 YB |
691 | IWL_DEV_INFO(0x7F70, 0x1671, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name), |
692 | IWL_DEV_INFO(0x7F70, 0x1672, iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name), | |
dbe6f76a YB |
693 | |
694 | /* MA with GF2 */ | |
695 | IWL_DEV_INFO(0x7E40, 0x1671, iwl_cfg_ma_a0_gf_a0, iwl_ax211_killer_1675s_name), | |
696 | IWL_DEV_INFO(0x7E40, 0x1672, iwl_cfg_ma_a0_gf_a0, iwl_ax211_killer_1675i_name), | |
697 | ||
c8685937 | 698 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
be2f6886 | 699 | IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, |
72904029 | 700 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 701 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
c8685937 LC |
702 | iwl9560_2ac_cfg_soc, iwl9461_160_name), |
703 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
be2f6886 | 704 | IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, |
72904029 | 705 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 706 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
c8685937 LC |
707 | iwl9560_2ac_cfg_soc, iwl9461_name), |
708 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
be2f6886 | 709 | IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, |
72904029 | 710 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 711 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
c8685937 LC |
712 | iwl9560_2ac_cfg_soc, iwl9462_160_name), |
713 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
be2f6886 | 714 | IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, |
72904029 | 715 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 716 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
c8685937 LC |
717 | iwl9560_2ac_cfg_soc, iwl9462_name), |
718 | ||
719 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
be2f6886 | 720 | IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, |
72904029 | 721 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 722 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
c8685937 LC |
723 | iwl9560_2ac_cfg_soc, iwl9560_160_name), |
724 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
be2f6886 | 725 | IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, |
72904029 | 726 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 727 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
c8685937 LC |
728 | iwl9560_2ac_cfg_soc, iwl9560_name), |
729 | ||
b200dba7 | 730 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, |
be2f6886 | 731 | IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, |
72904029 | 732 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 733 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1454edca | 734 | iwl9260_2ac_cfg, iwl9461_160_name), |
b200dba7 | 735 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, |
be2f6886 | 736 | IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, |
72904029 | 737 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 738 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1454edca | 739 | iwl9260_2ac_cfg, iwl9461_name), |
b200dba7 | 740 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, |
be2f6886 | 741 | IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, |
72904029 | 742 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 743 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1454edca | 744 | iwl9260_2ac_cfg, iwl9462_160_name), |
b200dba7 | 745 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, |
be2f6886 | 746 | IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, |
72904029 | 747 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 748 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1454edca | 749 | iwl9260_2ac_cfg, iwl9462_name), |
b200dba7 | 750 | |
f673a193 | 751 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, |
be2f6886 | 752 | IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, |
72904029 | 753 | IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 754 | IWL_CFG_160, IWL_CFG_CORES_BT_GNSS, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
95939551 LC |
755 | iwl9260_2ac_cfg, iwl9270_160_name), |
756 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, | |
be2f6886 | 757 | IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, |
72904029 | 758 | IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 759 | IWL_CFG_NO_160, IWL_CFG_CORES_BT_GNSS, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
95939551 LC |
760 | iwl9260_2ac_cfg, iwl9270_name), |
761 | ||
fe25b151 | 762 | _IWL_DEV_INFO(0x271B, IWL_CFG_ANY, |
be2f6886 | 763 | IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, |
72904029 | 764 | IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 765 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
fe25b151 LC |
766 | iwl9260_2ac_cfg, iwl9162_160_name), |
767 | _IWL_DEV_INFO(0x271B, IWL_CFG_ANY, | |
be2f6886 | 768 | IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, |
72904029 | 769 | IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 770 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
fe25b151 LC |
771 | iwl9260_2ac_cfg, iwl9162_name), |
772 | ||
95939551 | 773 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, |
be2f6886 | 774 | IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, |
72904029 | 775 | IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 776 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
d6f2134a LC |
777 | iwl9260_2ac_cfg, iwl9260_160_name), |
778 | _IWL_DEV_INFO(0x2526, IWL_CFG_ANY, | |
be2f6886 | 779 | IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, |
72904029 | 780 | IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 781 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
d6f2134a | 782 | iwl9260_2ac_cfg, iwl9260_name), |
5e003982 | 783 | |
d5727b60 | 784 | /* Qu with Jf */ |
32ed101a LC |
785 | /* Qu B step */ |
786 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
787 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 788 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 789 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
790 | iwl9560_qu_b0_jf_b0_cfg, iwl9461_160_name), |
791 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
792 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 793 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 794 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
795 | iwl9560_qu_b0_jf_b0_cfg, iwl9461_name), |
796 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
797 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 798 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 799 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
800 | iwl9560_qu_b0_jf_b0_cfg, iwl9462_160_name), |
801 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
802 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 803 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 804 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
805 | iwl9560_qu_b0_jf_b0_cfg, iwl9462_name), |
806 | ||
807 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
808 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 809 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 810 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
811 | iwl9560_qu_b0_jf_b0_cfg, iwl9560_160_name), |
812 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
813 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 814 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 815 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
816 | iwl9560_qu_b0_jf_b0_cfg, iwl9560_name), |
817 | ||
818 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1551, | |
819 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 820 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 821 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
822 | iwl9560_qu_b0_jf_b0_cfg, iwl9560_killer_1550s_name), |
823 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1552, | |
824 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 825 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 826 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a | 827 | iwl9560_qu_b0_jf_b0_cfg, iwl9560_killer_1550i_name), |
5e003982 | 828 | |
32ed101a LC |
829 | /* Qu C step */ |
830 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
831 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 832 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 833 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
834 | iwl9560_qu_c0_jf_b0_cfg, iwl9461_160_name), |
835 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
836 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 837 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 838 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
839 | iwl9560_qu_c0_jf_b0_cfg, iwl9461_name), |
840 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
841 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 842 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 843 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
844 | iwl9560_qu_c0_jf_b0_cfg, iwl9462_160_name), |
845 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
846 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 847 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 848 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
849 | iwl9560_qu_c0_jf_b0_cfg, iwl9462_name), |
850 | ||
851 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
852 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 853 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 854 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
855 | iwl9560_qu_c0_jf_b0_cfg, iwl9560_160_name), |
856 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
857 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 858 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 859 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
860 | iwl9560_qu_c0_jf_b0_cfg, iwl9560_name), |
861 | ||
862 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1551, | |
863 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 864 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 865 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
866 | iwl9560_qu_c0_jf_b0_cfg, iwl9560_killer_1550s_name), |
867 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1552, | |
868 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 869 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 870 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
871 | iwl9560_qu_c0_jf_b0_cfg, iwl9560_killer_1550i_name), |
872 | ||
873 | /* QuZ */ | |
874 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
875 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 876 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 877 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
878 | iwl9560_quz_a0_jf_b0_cfg, iwl9461_160_name), |
879 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
880 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 881 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 882 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
883 | iwl9560_quz_a0_jf_b0_cfg, iwl9461_name), |
884 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
885 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 886 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 887 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
888 | iwl9560_quz_a0_jf_b0_cfg, iwl9462_160_name), |
889 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
890 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 891 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 892 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
893 | iwl9560_quz_a0_jf_b0_cfg, iwl9462_name), |
894 | ||
895 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
896 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 897 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 898 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
899 | iwl9560_quz_a0_jf_b0_cfg, iwl9560_160_name), |
900 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
901 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 902 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 903 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
904 | iwl9560_quz_a0_jf_b0_cfg, iwl9560_name), |
905 | ||
906 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1551, | |
907 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 908 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 909 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a LC |
910 | iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550s_name), |
911 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1552, | |
912 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 913 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 914 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
32ed101a | 915 | iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550i_name), |
612509d6 LC |
916 | |
917 | /* QnJ */ | |
918 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
919 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 920 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 921 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
922 | iwl9560_qnj_b0_jf_b0_cfg, iwl9461_160_name), |
923 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
924 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 925 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 926 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
927 | iwl9560_qnj_b0_jf_b0_cfg, iwl9461_name), |
928 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
929 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 930 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 931 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
932 | iwl9560_qnj_b0_jf_b0_cfg, iwl9462_160_name), |
933 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
934 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 935 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 936 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
937 | iwl9560_qnj_b0_jf_b0_cfg, iwl9462_name), |
938 | ||
939 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
940 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 941 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 942 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
943 | iwl9560_qnj_b0_jf_b0_cfg, iwl9560_160_name), |
944 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
945 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 946 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 947 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
948 | iwl9560_qnj_b0_jf_b0_cfg, iwl9560_name), |
949 | ||
950 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1551, | |
951 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 952 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 953 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 LC |
954 | iwl9560_qnj_b0_jf_b0_cfg, iwl9560_killer_1550s_name), |
955 | _IWL_DEV_INFO(IWL_CFG_ANY, 0x1552, | |
956 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 957 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 958 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
612509d6 | 959 | iwl9560_qnj_b0_jf_b0_cfg, iwl9560_killer_1550i_name), |
3f910a25 LC |
960 | |
961 | /* Qu with Hr */ | |
962 | /* Qu B step */ | |
963 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
964 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, | |
72904029 | 965 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 966 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
3f910a25 | 967 | iwl_qu_b0_hr1_b0, iwl_ax101_name), |
16062c12 | 968 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
70382b08 | 969 | IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, |
72904029 | 970 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 971 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
16062c12 | 972 | iwl_qu_b0_hr_b0, iwl_ax203_name), |
3f910a25 LC |
973 | |
974 | /* Qu C step */ | |
975 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
976 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 977 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 978 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
3f910a25 | 979 | iwl_qu_c0_hr1_b0, iwl_ax101_name), |
16062c12 LC |
980 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
981 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 982 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 983 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
16062c12 | 984 | iwl_qu_c0_hr_b0, iwl_ax203_name), |
def423ea YB |
985 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
986 | IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, | |
72904029 | 987 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 988 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
def423ea | 989 | iwl_qu_c0_hr_b0, iwl_ax201_name), |
3f910a25 LC |
990 | |
991 | /* QuZ */ | |
992 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
993 | IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, | |
72904029 | 994 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 995 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
3f910a25 | 996 | iwl_quz_a0_hr1_b0, iwl_ax101_name), |
410f7585 IZ |
997 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
998 | IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP, | |
72904029 | 999 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1000 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
410f7585 | 1001 | iwl_cfg_quz_a0_hr_b0, iwl_ax203_name), |
0aa27be5 MS |
1002 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1003 | IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP, | |
72904029 | 1004 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
0aa27be5 MS |
1005 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1006 | iwl_cfg_quz_a0_hr_b0, iwl_ax201_name), | |
3f910a25 | 1007 | |
930be4e7 LC |
1008 | /* QnJ with Hr */ |
1009 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1010 | IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, | |
72904029 | 1011 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1012 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1013 | iwl_qnj_b0_hr_b0_cfg, iwl_ax201_name), |
1014 | ||
1015 | /* SnJ with Jf */ | |
1016 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1017 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1018 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 1019 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1020 | iwl_cfg_snj_a0_jf_b0, iwl9461_160_name), |
1021 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1022 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1023 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 1024 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1025 | iwl_cfg_snj_a0_jf_b0, iwl9461_name), |
1026 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1027 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1028 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 1029 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1030 | iwl_cfg_snj_a0_jf_b0, iwl9462_160_name), |
1031 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1032 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1033 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 1034 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1035 | iwl_cfg_snj_a0_jf_b0, iwl9462_name), |
1036 | ||
1037 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1038 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1039 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 1040 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1041 | iwl_cfg_snj_a0_jf_b0, iwl9560_160_name), |
1042 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1043 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1044 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 1045 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1046 | iwl_cfg_snj_a0_jf_b0, iwl9560_name), |
1047 | ||
1048 | /* SnJ with Hr */ | |
7f9c3bc4 LC |
1049 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1050 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1051 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1052 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
7f9c3bc4 LC |
1053 | iwl_cfg_snj_hr_b0, iwl_ax101_name), |
1054 | ||
930be4e7 LC |
1055 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1056 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1057 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1058 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
930be4e7 LC |
1059 | iwl_cfg_snj_hr_b0, iwl_ax201_name), |
1060 | ||
bc9296f4 | 1061 | /* Ma */ |
1205d7f7 | 1062 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
c5050696 | 1063 | IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, |
72904029 | 1064 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1065 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1205d7f7 | 1066 | iwl_cfg_ma_a0_hr_b0, iwl_ax201_name), |
bc9296f4 | 1067 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
c5050696 | 1068 | IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, |
72904029 | 1069 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1070 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
bc9296f4 | 1071 | iwl_cfg_ma_a0_gf_a0, iwl_ax211_name), |
1205d7f7 | 1072 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
c5050696 | 1073 | IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, |
72904029 | 1074 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1075 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY, |
1205d7f7 | 1076 | iwl_cfg_ma_a0_gf4_a0, iwl_ax211_name), |
bc9296f4 | 1077 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
c5050696 | 1078 | IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, |
72904029 | 1079 | IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1080 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
8932abef | 1081 | iwl_cfg_ma_a0_mr_a0, iwl_ax221_name), |
7e2c1437 | 1082 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
c5050696 | 1083 | IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, |
72904029 | 1084 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1085 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
7e2c1437 | 1086 | iwl_cfg_ma_a0_fm_a0, iwl_ax231_name), |
ac1a98e1 MG |
1087 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1088 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1089 | IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1090 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
8932abef | 1091 | iwl_cfg_snj_a0_mr_a0, iwl_ax221_name), |
c5050696 MS |
1092 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1093 | IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, | |
1094 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, | |
1095 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1096 | iwl_cfg_ma_b0_hr_b0, iwl_ax201_name), | |
1097 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1098 | IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, | |
1099 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, | |
1100 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1101 | iwl_cfg_ma_b0_gf_a0, iwl_ax211_name), | |
1102 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1103 | IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, | |
1104 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, | |
1105 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY, | |
1106 | iwl_cfg_ma_b0_gf4_a0, iwl_ax211_name), | |
1107 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1108 | IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, | |
1109 | IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY, | |
1110 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1111 | iwl_cfg_ma_b0_mr_a0, iwl_ax221_name), | |
1112 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1113 | IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, | |
1114 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, IWL_CFG_ANY, | |
1115 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1116 | iwl_cfg_ma_b0_fm_a0, iwl_ax231_name), | |
ac1a98e1 | 1117 | |
410f7585 IZ |
1118 | /* So with Hr */ |
1119 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1120 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1121 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1122 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
410f7585 | 1123 | iwl_cfg_so_a0_hr_a0, iwl_ax203_name), |
410f7585 IZ |
1124 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1125 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1126 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
0aa27be5 | 1127 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
410f7585 IZ |
1128 | iwl_cfg_so_a0_hr_a0, iwl_ax101_name), |
1129 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1130 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1131 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1132 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
08f4b0b1 LC |
1133 | iwl_cfg_so_a0_hr_a0, iwl_ax201_name), |
1134 | ||
1135 | /* So-F with Hr */ | |
1136 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1137 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1138 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1139 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
08f4b0b1 LC |
1140 | iwl_cfg_so_a0_hr_a0, iwl_ax203_name), |
1141 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1142 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1143 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
0aa27be5 | 1144 | IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
08f4b0b1 LC |
1145 | iwl_cfg_so_a0_hr_a0, iwl_ax101_name), |
1146 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1147 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1148 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1149 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
08f4b0b1 LC |
1150 | iwl_cfg_so_a0_hr_a0, iwl_ax201_name), |
1151 | ||
1152 | /* So-F with Gf */ | |
1153 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1154 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1155 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1156 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
08f4b0b1 | 1157 | iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name), |
4743a72f LC |
1158 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1159 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1160 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1161 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY, |
4743a72f | 1162 | iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name), |
bc9296f4 | 1163 | |
2be05dfd MG |
1164 | /* Bz */ |
1165 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1166 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
72904029 MS |
1167 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
1168 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1169 | iwl_cfg_bz_a0_hr_a0, iwl_bz_name), | |
1170 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1171 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
1172 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, | |
2b0ceda9 | 1173 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
d01408ee | 1174 | iwl_cfg_bz_a0_hr_b0, iwl_bz_name), |
2be05dfd MG |
1175 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1176 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
72904029 | 1177 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1178 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
d01408ee | 1179 | iwl_cfg_bz_a0_gf_a0, iwl_bz_name), |
2be05dfd MG |
1180 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1181 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
72904029 | 1182 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1183 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY, |
d01408ee | 1184 | iwl_cfg_bz_a0_gf4_a0, iwl_bz_name), |
2be05dfd MG |
1185 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1186 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
72904029 | 1187 | IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1188 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
d01408ee | 1189 | iwl_cfg_bz_a0_mr_a0, iwl_bz_name), |
af82c007 | 1190 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
72904029 MS |
1191 | IWL_CFG_MAC_TYPE_BZ, SILICON_A_STEP, |
1192 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP, | |
2b0ceda9 | 1193 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
af82c007 MG |
1194 | iwl_cfg_bz_a0_fm_a0, iwl_bz_name), |
1195 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
bcc58c83 | 1196 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, |
72904029 | 1197 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP, |
bcc58c83 YB |
1198 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_NO_JACKET, |
1199 | iwl_cfg_bz_a0_fm4_a0, iwl_bz_name), | |
c2db0175 MS |
1200 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1201 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
72904029 | 1202 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, |
c2db0175 MS |
1203 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, |
1204 | iwl_cfg_bz_a0_fm_b0, iwl_bz_name), | |
1205 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1206 | IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, | |
72904029 | 1207 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, |
c2db0175 MS |
1208 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, |
1209 | iwl_cfg_bz_a0_fm4_b0, iwl_bz_name), | |
bcc58c83 YB |
1210 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1211 | IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, | |
72904029 | 1212 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP, |
92fd0ce9 | 1213 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET, |
af82c007 | 1214 | iwl_cfg_gl_a0_fm_a0, iwl_bz_name), |
bcc58c83 YB |
1215 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1216 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, | |
72904029 | 1217 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, |
bcc58c83 YB |
1218 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET, |
1219 | iwl_cfg_gl_b0_fm_b0, iwl_bz_name), | |
af82c007 | 1220 | |
f738e705 MG |
1221 | /* BZ Z step */ |
1222 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1223 | IWL_CFG_MAC_TYPE_BZ, SILICON_Z_STEP, | |
72904029 | 1224 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1225 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
f738e705 MG |
1226 | iwl_cfg_bz_z0_gf_a0, iwl_bz_name), |
1227 | ||
92fd0ce9 MG |
1228 | /* BNJ */ |
1229 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
bcc58c83 | 1230 | IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, |
72904029 | 1231 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP, |
92fd0ce9 MG |
1232 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, |
1233 | iwl_cfg_bnj_a0_fm_a0, iwl_bz_name), | |
bcc58c83 YB |
1234 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1235 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, | |
72904029 | 1236 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, |
bcc58c83 YB |
1237 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, |
1238 | iwl_cfg_bnj_b0_fm_b0, iwl_bz_name), | |
92fd0ce9 | 1239 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
72904029 MS |
1240 | IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, |
1241 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP, | |
92fd0ce9 MG |
1242 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, |
1243 | iwl_cfg_bnj_a0_fm4_a0, iwl_bz_name), | |
b96e516c GBA |
1244 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1245 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, | |
72904029 | 1246 | IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, |
b96e516c GBA |
1247 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, |
1248 | iwl_cfg_bnj_b0_fm4_b0, iwl_bz_name), | |
92fd0ce9 MG |
1249 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1250 | IWL_CFG_MAC_TYPE_GL, IWL_CFG_ANY, | |
72904029 | 1251 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
92fd0ce9 MG |
1252 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, |
1253 | iwl_cfg_bnj_a0_gf_a0, iwl_bz_name), | |
c2db0175 MS |
1254 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1255 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, | |
72904029 | 1256 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
c2db0175 MS |
1257 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, |
1258 | iwl_cfg_bnj_b0_gf_a0, iwl_bz_name), | |
92fd0ce9 | 1259 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
3068248b | 1260 | IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, |
72904029 | 1261 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
92fd0ce9 MG |
1262 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, |
1263 | iwl_cfg_bnj_a0_gf4_a0, iwl_bz_name), | |
1264 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
3068248b | 1265 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, |
72904029 | 1266 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
3068248b MS |
1267 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, |
1268 | iwl_cfg_bnj_b0_gf4_a0, iwl_bz_name), | |
1269 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1270 | IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, | |
72904029 MS |
1271 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
1272 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1273 | iwl_cfg_bnj_a0_hr_a0, iwl_bz_name), | |
1274 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1275 | IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, | |
1276 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, | |
1277 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
92fd0ce9 | 1278 | iwl_cfg_bnj_a0_hr_b0, iwl_bz_name), |
3068248b MS |
1279 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1280 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, | |
72904029 MS |
1281 | IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, |
1282 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1283 | iwl_cfg_bnj_b0_hr_a0, iwl_bz_name), | |
f06bc8af | 1284 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
72904029 MS |
1285 | IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, |
1286 | IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, | |
1287 | IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, | |
1288 | iwl_cfg_bnj_b0_hr_b0, iwl_bz_name), | |
2be05dfd | 1289 | |
a5bf1d44 YB |
1290 | /* SoF with JF2 */ |
1291 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1292 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1293 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 1294 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
a5bf1d44 YB |
1295 | iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name), |
1296 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1297 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1298 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 1299 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
a5bf1d44 YB |
1300 | iwlax210_2ax_cfg_so_jf_b0, iwl9560_name), |
1301 | ||
1302 | /* SoF with JF */ | |
1303 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1304 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1305 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 1306 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
a5bf1d44 YB |
1307 | iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name), |
1308 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1309 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1310 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 1311 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
a5bf1d44 YB |
1312 | iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name), |
1313 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1314 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1315 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 1316 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
a5bf1d44 YB |
1317 | iwlax210_2ax_cfg_so_jf_b0, iwl9461_name), |
1318 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1319 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1320 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 1321 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
a5bf1d44 YB |
1322 | iwlax210_2ax_cfg_so_jf_b0, iwl9462_name), |
1323 | ||
9a0f28d8 | 1324 | /* So with GF */ |
1325 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1326 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1327 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1328 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
891332f6 | 1329 | iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name), |
4743a72f LC |
1330 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
1331 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1332 | IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, |
2b0ceda9 | 1333 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY, |
4743a72f | 1334 | iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name), |
891332f6 YB |
1335 | |
1336 | /* So with JF2 */ | |
1337 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1338 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1339 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 1340 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
891332f6 YB |
1341 | iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name), |
1342 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1343 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1344 | IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY, |
2b0ceda9 | 1345 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
891332f6 YB |
1346 | iwlax210_2ax_cfg_so_jf_b0, iwl9560_name), |
1347 | ||
1348 | /* So with JF */ | |
1349 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1350 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1351 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 1352 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
891332f6 YB |
1353 | iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name), |
1354 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1355 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1356 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 1357 | IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
891332f6 YB |
1358 | iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name), |
1359 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1360 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1361 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY, |
2b0ceda9 | 1362 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
891332f6 YB |
1363 | iwlax210_2ax_cfg_so_jf_b0, iwl9461_name), |
1364 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1365 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1366 | IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY, |
2b0ceda9 | 1367 | IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
ac4790dc YB |
1368 | iwlax210_2ax_cfg_so_jf_b0, iwl9462_name), |
1369 | ||
1370 | /* MsP */ | |
1371 | /* For now we use the same FW as MR, but this will change in the future. */ | |
1372 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1373 | IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, | |
72904029 | 1374 | IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY, |
ac4790dc YB |
1375 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1376 | iwl_cfg_so_a0_ms_a0, iwl_ax204_name), | |
1377 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1378 | IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, | |
72904029 | 1379 | IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY, |
ac4790dc YB |
1380 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1381 | iwl_cfg_so_a0_ms_a0, iwl_ax204_name), | |
1382 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1383 | IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, | |
72904029 | 1384 | IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY, |
ac4790dc YB |
1385 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1386 | iwl_cfg_ma_a0_ms_a0, iwl_ax204_name), | |
1387 | _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, | |
1388 | IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, | |
72904029 | 1389 | IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY, |
ac4790dc YB |
1390 | IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, |
1391 | iwl_cfg_snj_a0_ms_a0, iwl_ax204_name) | |
9a0f28d8 | 1392 | |
2a612a60 LC |
1393 | #endif /* CONFIG_IWLMVM */ |
1394 | }; | |
1395 | ||
1f171f4f | 1396 | /* |
3a27a1a1 | 1397 | * Read rf id and cdb info from prph register and store it |
1f171f4f MG |
1398 | */ |
1399 | static int get_crf_id(struct iwl_trans *iwl_trans) | |
1400 | { | |
1401 | int ret = 0; | |
1f171f4f | 1402 | u32 sd_reg_ver_addr; |
3a27a1a1 | 1403 | u32 val = 0; |
1f171f4f | 1404 | |
f1c0bb74 | 1405 | if (iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) |
1f171f4f | 1406 | sd_reg_ver_addr = SD_REG_VER_GEN2; |
f1c0bb74 | 1407 | else |
1f171f4f | 1408 | sd_reg_ver_addr = SD_REG_VER; |
1f171f4f MG |
1409 | |
1410 | if (!iwl_trans_grab_nic_access(iwl_trans)) { | |
1411 | IWL_ERR(iwl_trans, "Failed to grab nic access before reading crf id\n"); | |
1412 | ret = -EIO; | |
1413 | goto out; | |
1414 | } | |
1415 | ||
1416 | /* Enable access to peripheral registers */ | |
f1c0bb74 | 1417 | val = iwl_read_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG); |
1f171f4f | 1418 | val |= ENABLE_WFPM; |
f1c0bb74 | 1419 | iwl_write_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG, val); |
1f171f4f MG |
1420 | |
1421 | /* Read crf info */ | |
3a27a1a1 | 1422 | iwl_trans->hw_crf_id = iwl_read_prph_no_grab(iwl_trans, sd_reg_ver_addr); |
1f171f4f | 1423 | |
72904029 MS |
1424 | /* Read cnv info */ |
1425 | iwl_trans->hw_cnv_id = | |
1426 | iwl_read_prph_no_grab(iwl_trans, CNVI_AUX_MISC_CHIP); | |
1427 | ||
1f171f4f | 1428 | /* Read cdb info (also contains the jacket info if needed in the future */ |
72904029 MS |
1429 | iwl_trans->hw_wfpm_id = |
1430 | iwl_read_umac_prph_no_grab(iwl_trans, WFPM_OTP_CFG1_ADDR); | |
1431 | IWL_INFO(iwl_trans, "Detected crf-id 0x%x, cnv-id 0x%x wfpm id 0x%x\n", | |
1432 | iwl_trans->hw_crf_id, iwl_trans->hw_cnv_id, | |
1433 | iwl_trans->hw_wfpm_id); | |
3a27a1a1 MS |
1434 | |
1435 | iwl_trans_release_nic_access(iwl_trans); | |
1436 | ||
1437 | out: | |
1438 | return ret; | |
1439 | } | |
1440 | ||
1441 | /* | |
1442 | * In case that there is no OTP on the NIC, map the rf id and cdb info | |
1443 | * from the prph registers. | |
1444 | */ | |
1445 | static int map_crf_id(struct iwl_trans *iwl_trans) | |
1446 | { | |
1447 | int ret = 0; | |
1448 | u32 val = iwl_trans->hw_crf_id; | |
72904029 MS |
1449 | u32 step_id = REG_CRF_ID_STEP(val); |
1450 | u32 slave_id = REG_CRF_ID_SLAVE(val); | |
1451 | u32 jacket_id_cnv = REG_CRF_ID_SLAVE(iwl_trans->hw_cnv_id); | |
1452 | u32 jacket_id_wfpm = WFPM_OTP_CFG1_IS_JACKET(iwl_trans->hw_wfpm_id); | |
1453 | u32 cdb_id_wfpm = WFPM_OTP_CFG1_IS_CDB(iwl_trans->hw_wfpm_id); | |
1f171f4f MG |
1454 | |
1455 | /* Map between crf id to rf id */ | |
1456 | switch (REG_CRF_ID_TYPE(val)) { | |
1457 | case REG_CRF_ID_TYPE_JF_1: | |
1458 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF1 << 12); | |
1459 | break; | |
1460 | case REG_CRF_ID_TYPE_JF_2: | |
1461 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF2 << 12); | |
1462 | break; | |
72904029 | 1463 | case REG_CRF_ID_TYPE_HR_NONE_CDB_1X1: |
1f171f4f MG |
1464 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR1 << 12); |
1465 | break; | |
72904029 MS |
1466 | case REG_CRF_ID_TYPE_HR_NONE_CDB: |
1467 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12); | |
1468 | break; | |
1f171f4f MG |
1469 | case REG_CRF_ID_TYPE_HR_CDB: |
1470 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12); | |
1471 | break; | |
1472 | case REG_CRF_ID_TYPE_GF: | |
1473 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_GF << 12); | |
1474 | break; | |
1475 | case REG_CRF_ID_TYPE_MR: | |
1476 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_MR << 12); | |
1477 | break; | |
72904029 MS |
1478 | case REG_CRF_ID_TYPE_FM: |
1479 | case REG_CRF_ID_TYPE_FMI: | |
1480 | case REG_CRF_ID_TYPE_FMR: | |
1481 | iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_FM << 12); | |
1482 | break; | |
1f171f4f MG |
1483 | default: |
1484 | ret = -EIO; | |
1485 | IWL_ERR(iwl_trans, | |
72904029 | 1486 | "Can't find a correct rfid for crf id 0x%x\n", |
1f171f4f | 1487 | REG_CRF_ID_TYPE(val)); |
3a27a1a1 | 1488 | goto out; |
1f171f4f MG |
1489 | |
1490 | } | |
1491 | ||
72904029 MS |
1492 | /* Set Step-id */ |
1493 | iwl_trans->hw_rf_id |= (step_id << 8); | |
1494 | ||
1f171f4f | 1495 | /* Set CDB capabilities */ |
72904029 | 1496 | if (cdb_id_wfpm || slave_id) { |
1f171f4f MG |
1497 | iwl_trans->hw_rf_id += BIT(28); |
1498 | IWL_INFO(iwl_trans, "Adding cdb to rf id\n"); | |
1499 | } | |
1500 | ||
72904029 MS |
1501 | /* Set Jacket capabilities */ |
1502 | if (jacket_id_wfpm || jacket_id_cnv) { | |
1503 | iwl_trans->hw_rf_id += BIT(29); | |
1504 | IWL_INFO(iwl_trans, "Adding jacket to rf id\n"); | |
1505 | } | |
1f171f4f | 1506 | |
72904029 MS |
1507 | IWL_INFO(iwl_trans, |
1508 | "Detected rf-type 0x%x step-id 0x%x slave-id 0x%x from crf id 0x%x\n", | |
1509 | REG_CRF_ID_TYPE(val), step_id, slave_id, iwl_trans->hw_rf_id); | |
1510 | IWL_INFO(iwl_trans, | |
1511 | "Detected cdb-id 0x%x jacket-id 0x%x from wfpm id 0x%x\n", | |
1512 | cdb_id_wfpm, jacket_id_wfpm, iwl_trans->hw_wfpm_id); | |
1513 | IWL_INFO(iwl_trans, "Detected jacket-id 0x%x from cnvi id 0x%x\n", | |
1514 | jacket_id_cnv, iwl_trans->hw_cnv_id); | |
1f171f4f MG |
1515 | |
1516 | out: | |
1517 | return ret; | |
1518 | } | |
1519 | ||
99673ee5 EG |
1520 | /* PCI registers */ |
1521 | #define PCI_CFG_RETRY_TIMEOUT 0x041 | |
1522 | ||
0a1f96d5 JB |
1523 | static const struct iwl_dev_info * |
1524 | iwl_pci_find_dev_info(u16 device, u16 subsystem_device, | |
72904029 MS |
1525 | u16 mac_type, u8 mac_step, u16 rf_type, u8 cdb, |
1526 | u8 jacket, u8 rf_id, u8 no_160, u8 cores, u8 rf_step) | |
0a1f96d5 | 1527 | { |
fe785f56 | 1528 | int num_devices = ARRAY_SIZE(iwl_dev_info_table); |
0a1f96d5 JB |
1529 | int i; |
1530 | ||
fe785f56 AB |
1531 | if (!num_devices) |
1532 | return NULL; | |
1533 | ||
1534 | for (i = num_devices - 1; i >= 0; i--) { | |
0a1f96d5 JB |
1535 | const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i]; |
1536 | ||
1537 | if (dev_info->device != (u16)IWL_CFG_ANY && | |
1538 | dev_info->device != device) | |
1539 | continue; | |
1540 | ||
1541 | if (dev_info->subdevice != (u16)IWL_CFG_ANY && | |
1542 | dev_info->subdevice != subsystem_device) | |
1543 | continue; | |
1544 | ||
1545 | if (dev_info->mac_type != (u16)IWL_CFG_ANY && | |
1546 | dev_info->mac_type != mac_type) | |
1547 | continue; | |
1548 | ||
1549 | if (dev_info->mac_step != (u8)IWL_CFG_ANY && | |
1550 | dev_info->mac_step != mac_step) | |
1551 | continue; | |
1552 | ||
1553 | if (dev_info->rf_type != (u16)IWL_CFG_ANY && | |
1554 | dev_info->rf_type != rf_type) | |
1555 | continue; | |
1556 | ||
1557 | if (dev_info->cdb != (u8)IWL_CFG_ANY && | |
1558 | dev_info->cdb != cdb) | |
1559 | continue; | |
1560 | ||
2b0ceda9 MG |
1561 | if (dev_info->jacket != (u8)IWL_CFG_ANY && |
1562 | dev_info->jacket != jacket) | |
1563 | continue; | |
1564 | ||
0a1f96d5 JB |
1565 | if (dev_info->rf_id != (u8)IWL_CFG_ANY && |
1566 | dev_info->rf_id != rf_id) | |
1567 | continue; | |
1568 | ||
1569 | if (dev_info->no_160 != (u8)IWL_CFG_ANY && | |
1570 | dev_info->no_160 != no_160) | |
1571 | continue; | |
1572 | ||
1573 | if (dev_info->cores != (u8)IWL_CFG_ANY && | |
1574 | dev_info->cores != cores) | |
1575 | continue; | |
1576 | ||
72904029 MS |
1577 | if (dev_info->rf_step != (u8)IWL_CFG_ANY && |
1578 | dev_info->rf_step != rf_step) | |
1579 | continue; | |
1580 | ||
3f732042 | 1581 | return dev_info; |
0a1f96d5 JB |
1582 | } |
1583 | ||
3f732042 | 1584 | return NULL; |
0a1f96d5 JB |
1585 | } |
1586 | ||
48d1a211 EG |
1587 | static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
1588 | { | |
48a5494d | 1589 | const struct iwl_cfg_trans_params *trans; |
3fd0d3c1 | 1590 | const struct iwl_cfg *cfg_7265d __maybe_unused = NULL; |
0a1f96d5 | 1591 | const struct iwl_dev_info *dev_info; |
36a79223 | 1592 | struct iwl_trans *iwl_trans; |
c042f0c7 | 1593 | struct iwl_trans_pcie *trans_pcie; |
0a1f96d5 | 1594 | int ret; |
48a5494d JB |
1595 | const struct iwl_cfg *cfg; |
1596 | ||
1597 | trans = (void *)(ent->driver_data & ~TRANS_CFG_MARKER); | |
1598 | ||
b3bd6416 LC |
1599 | /* |
1600 | * This is needed for backwards compatibility with the old | |
1601 | * tables, so we don't need to change all the config structs | |
1602 | * at the same time. The cfg is used to compare with the old | |
1603 | * full cfg structs. | |
1604 | */ | |
48a5494d | 1605 | cfg = (void *)(ent->driver_data & ~TRANS_CFG_MARKER); |
87ce05a2 | 1606 | |
b3bd6416 LC |
1607 | /* make sure trans is the first element in iwl_cfg */ |
1608 | BUILD_BUG_ON(offsetof(struct iwl_cfg, trans)); | |
87ce05a2 | 1609 | |
b3bd6416 | 1610 | iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans); |
6965a354 LC |
1611 | if (IS_ERR(iwl_trans)) |
1612 | return PTR_ERR(iwl_trans); | |
87ce05a2 | 1613 | |
c042f0c7 JB |
1614 | trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans); |
1615 | ||
2fd8aaae JB |
1616 | /* |
1617 | * Let's try to grab NIC access early here. Sometimes, NICs may | |
1618 | * fail to initialize, and if that happens it's better if we see | |
1619 | * issues early on (and can reprobe, per the logic inside), than | |
1620 | * first trying to load the firmware etc. and potentially only | |
1621 | * detecting any problems when the first interface is brought up. | |
1622 | */ | |
6d19a5eb EG |
1623 | ret = iwl_pcie_prepare_card_hw(iwl_trans); |
1624 | if (!ret) { | |
1625 | ret = iwl_finish_nic_init(iwl_trans); | |
1626 | if (ret) | |
1627 | goto out_free_trans; | |
1628 | if (iwl_trans_grab_nic_access(iwl_trans)) { | |
1629 | /* all good */ | |
1630 | iwl_trans_release_nic_access(iwl_trans); | |
1631 | } else { | |
1632 | ret = -EIO; | |
1633 | goto out_free_trans; | |
1634 | } | |
2fd8aaae JB |
1635 | } |
1636 | ||
d6f2134a | 1637 | iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID); |
3a27a1a1 | 1638 | get_crf_id(iwl_trans); |
d6f2134a | 1639 | |
1f171f4f MG |
1640 | /* |
1641 | * The RF_ID is set to zero in blank OTP so read version to | |
1642 | * extract the RF_ID. | |
1643 | * This is relevant only for family 9000 and up. | |
1644 | */ | |
1645 | if (iwl_trans->trans_cfg->rf_id && | |
1646 | iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_9000 && | |
3a27a1a1 | 1647 | !CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id) && map_crf_id(iwl_trans)) { |
1b54403c | 1648 | ret = -EINVAL; |
1f171f4f | 1649 | goto out_free_trans; |
1b54403c | 1650 | } |
1f171f4f | 1651 | |
72904029 MS |
1652 | IWL_INFO(iwl_trans, "PCI dev %04x/%04x, rev=0x%x, rfid=0x%x\n", |
1653 | pdev->device, pdev->subsystem_device, | |
1654 | iwl_trans->hw_rev, iwl_trans->hw_rf_id); | |
1655 | ||
0a1f96d5 JB |
1656 | dev_info = iwl_pci_find_dev_info(pdev->device, pdev->subsystem_device, |
1657 | CSR_HW_REV_TYPE(iwl_trans->hw_rev), | |
55c6d8f8 | 1658 | iwl_trans->hw_rev_step, |
0a1f96d5 JB |
1659 | CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id), |
1660 | CSR_HW_RFID_IS_CDB(iwl_trans->hw_rf_id), | |
2b0ceda9 | 1661 | CSR_HW_RFID_IS_JACKET(iwl_trans->hw_rf_id), |
0a1f96d5 JB |
1662 | IWL_SUBDEVICE_RF_ID(pdev->subsystem_device), |
1663 | IWL_SUBDEVICE_NO_160(pdev->subsystem_device), | |
72904029 MS |
1664 | IWL_SUBDEVICE_CORES(pdev->subsystem_device), |
1665 | CSR_HW_RFID_STEP(iwl_trans->hw_rf_id)); | |
0a1f96d5 JB |
1666 | if (dev_info) { |
1667 | iwl_trans->cfg = dev_info->cfg; | |
1668 | iwl_trans->name = dev_info->name; | |
7d34a7d7 LC |
1669 | } |
1670 | ||
62541e26 KV |
1671 | #if IS_ENABLED(CONFIG_IWLMVM) |
1672 | ||
930be4e7 LC |
1673 | /* |
1674 | * Workaround for problematic SnJ device: sometimes when | |
1675 | * certain RF modules are connected to SnJ, the device ID | |
1676 | * changes to QnJ's ID. So we are using QnJ's trans_cfg until | |
1677 | * here. But if we detect that the MAC type is actually SnJ, | |
1678 | * we should switch to it here to avoid problems later. | |
1679 | */ | |
1680 | if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_SNJ) | |
1681 | iwl_trans->trans_cfg = &iwl_so_trans_cfg; | |
1682 | ||
3fd0d3c1 JB |
1683 | /* |
1684 | * special-case 7265D, it has the same PCI IDs. | |
1685 | * | |
1686 | * Note that because we already pass the cfg to the transport above, | |
1687 | * all the parameters that the transport uses must, until that is | |
1688 | * changed, be identical to the ones in the 7265D configuration. | |
1689 | */ | |
1690 | if (cfg == &iwl7265_2ac_cfg) | |
1691 | cfg_7265d = &iwl7265d_2ac_cfg; | |
1692 | else if (cfg == &iwl7265_2n_cfg) | |
1693 | cfg_7265d = &iwl7265d_2n_cfg; | |
1694 | else if (cfg == &iwl7265_n_cfg) | |
1695 | cfg_7265d = &iwl7265d_n_cfg; | |
1696 | if (cfg_7265d && | |
809805a8 | 1697 | (iwl_trans->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_7265D) |
b3bd6416 | 1698 | iwl_trans->cfg = cfg_7265d; |
1afb0ae4 | 1699 | |
a7d544d6 LC |
1700 | /* |
1701 | * This is a hack to switch from Qu B0 to Qu C0. We need to | |
68ceba3f LC |
1702 | * do this for all cfgs that use Qu B0, except for those using |
1703 | * Jf, which have already been moved to the new table. The | |
1704 | * rest must be removed once we convert Qu with Hr as well. | |
a7d544d6 LC |
1705 | */ |
1706 | if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QU_C0) { | |
3f910a25 | 1707 | if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr) |
b3bd6416 | 1708 | iwl_trans->cfg = &iwl_ax201_cfg_qu_c0_hr_b0; |
32ed101a | 1709 | else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0) |
b3bd6416 | 1710 | iwl_trans->cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0; |
32ed101a | 1711 | else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0) |
b3bd6416 | 1712 | iwl_trans->cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0; |
a7d544d6 | 1713 | } |
5a8c31aa LC |
1714 | |
1715 | /* same thing for QuZ... */ | |
1716 | if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) { | |
3f910a25 | 1717 | if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr) |
32ed101a | 1718 | iwl_trans->cfg = &iwl_ax201_cfg_quz_hr; |
f92f26f2 LC |
1719 | else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0) |
1720 | iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr; | |
1721 | else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0) | |
1722 | iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr; | |
5a8c31aa LC |
1723 | } |
1724 | ||
3fd0d3c1 | 1725 | #endif |
b3bd6416 | 1726 | /* |
48a5494d JB |
1727 | * If we didn't set the cfg yet, the PCI ID table entry should have |
1728 | * been a full config - if yes, use it, otherwise fail. | |
b3bd6416 | 1729 | */ |
48a5494d JB |
1730 | if (!iwl_trans->cfg) { |
1731 | if (ent->driver_data & TRANS_CFG_MARKER) { | |
1732 | pr_err("No config found for PCI dev %04x/%04x, rev=0x%x, rfid=0x%x\n", | |
1733 | pdev->device, pdev->subsystem_device, | |
1734 | iwl_trans->hw_rev, iwl_trans->hw_rf_id); | |
1735 | ret = -EINVAL; | |
1736 | goto out_free_trans; | |
1737 | } | |
b3bd6416 | 1738 | iwl_trans->cfg = cfg; |
48a5494d | 1739 | } |
3fd0d3c1 | 1740 | |
0b295a1e LC |
1741 | /* if we don't have a name yet, copy name from the old cfg */ |
1742 | if (!iwl_trans->name) | |
1743 | iwl_trans->name = iwl_trans->cfg->name; | |
1744 | ||
b3bd6416 LC |
1745 | if (iwl_trans->trans_cfg->mq_rx_supported) { |
1746 | if (WARN_ON(!iwl_trans->cfg->num_rbds)) { | |
c042f0c7 JB |
1747 | ret = -EINVAL; |
1748 | goto out_free_trans; | |
1749 | } | |
b3bd6416 | 1750 | trans_pcie->num_rx_bufs = iwl_trans->cfg->num_rbds; |
c042f0c7 JB |
1751 | } else { |
1752 | trans_pcie->num_rx_bufs = RX_QUEUE_SIZE; | |
1753 | } | |
3fd0d3c1 | 1754 | |
d12455fd JB |
1755 | ret = iwl_trans_init(iwl_trans); |
1756 | if (ret) | |
1757 | goto out_free_trans; | |
1758 | ||
36a79223 | 1759 | pci_set_drvdata(pdev, iwl_trans); |
6d19a5eb EG |
1760 | |
1761 | /* try to get ownership so that we'll know if we don't own it */ | |
1762 | iwl_pcie_prepare_card_hw(iwl_trans); | |
1763 | ||
49060383 | 1764 | iwl_trans->drv = iwl_drv_start(iwl_trans); |
36a79223 | 1765 | |
6f482e37 SS |
1766 | if (IS_ERR(iwl_trans->drv)) { |
1767 | ret = PTR_ERR(iwl_trans->drv); | |
b52e7ea1 | 1768 | goto out_free_trans; |
59f547ac | 1769 | } |
a42a1844 | 1770 | |
9da987ac | 1771 | /* register transport layer debugfs here */ |
cf5d5663 | 1772 | iwl_trans_pcie_dbgfs_register(iwl_trans); |
9da987ac | 1773 | |
a48709c5 EG |
1774 | return 0; |
1775 | ||
b52e7ea1 | 1776 | out_free_trans: |
d1ff5253 | 1777 | iwl_trans_pcie_free(iwl_trans); |
59f547ac | 1778 | return ret; |
48d1a211 EG |
1779 | } |
1780 | ||
d00064d4 | 1781 | static void iwl_pci_remove(struct pci_dev *pdev) |
084dd791 | 1782 | { |
9130bab1 | 1783 | struct iwl_trans *trans = pci_get_drvdata(pdev); |
65e291ac | 1784 | |
b655b9a9 DG |
1785 | if (!trans) |
1786 | return; | |
1787 | ||
6f482e37 | 1788 | iwl_drv_stop(trans->drv); |
4479a899 | 1789 | |
d1ff5253 | 1790 | iwl_trans_pcie_free(trans); |
084dd791 EG |
1791 | } |
1792 | ||
f090fba3 | 1793 | #ifdef CONFIG_PM_SLEEP |
48d1a211 EG |
1794 | |
1795 | static int iwl_pci_suspend(struct device *device) | |
1796 | { | |
b09b296d EG |
1797 | /* Before you put code here, think about WoWLAN. You cannot check here |
1798 | * whether WoWLAN is enabled or not, and your code will run even if | |
1799 | * WoWLAN is enabled - don't kill the NIC, someone may need it in Sx. | |
1800 | */ | |
1801 | ||
5fdda047 | 1802 | return 0; |
48d1a211 EG |
1803 | } |
1804 | ||
1805 | static int iwl_pci_resume(struct device *device) | |
1806 | { | |
1807 | struct pci_dev *pdev = to_pci_dev(device); | |
5fdda047 | 1808 | struct iwl_trans *trans = pci_get_drvdata(pdev); |
fa9f3281 | 1809 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); |
48d1a211 | 1810 | |
b09b296d EG |
1811 | /* Before you put code here, think about WoWLAN. You cannot check here |
1812 | * whether WoWLAN is enabled or not, and your code will run even if | |
1813 | * WoWLAN is enabled - the NIC may be alive. | |
1814 | */ | |
1815 | ||
48d1a211 EG |
1816 | /* |
1817 | * We disable the RETRY_TIMEOUT register (0x41) to keep | |
1818 | * PCI Tx retries from interfering with C3 CPU state. | |
1819 | */ | |
1820 | pci_write_config_byte(pdev, PCI_CFG_RETRY_TIMEOUT, 0x00); | |
1821 | ||
5fdda047 JB |
1822 | if (!trans->op_mode) |
1823 | return 0; | |
1824 | ||
f98ad635 EG |
1825 | /* In WOWLAN, let iwl_trans_pcie_d3_resume do the rest of the work */ |
1826 | if (test_bit(STATUS_DEVICE_ENABLED, &trans->status)) | |
1827 | return 0; | |
1828 | ||
52848a79 JB |
1829 | /* reconfigure the MSI-X mapping to get the correct IRQ for rfkill */ |
1830 | iwl_pcie_conf_msix_hw(trans_pcie); | |
1831 | ||
54154618 | 1832 | /* |
326477e4 JB |
1833 | * Enable rfkill interrupt (in order to keep track of the rfkill |
1834 | * status). Must be locked to avoid processing a possible rfkill | |
9ad8fd0b | 1835 | * interrupt while in iwl_pcie_check_hw_rf_kill(). |
54154618 | 1836 | */ |
23aeea94 | 1837 | mutex_lock(&trans_pcie->mutex); |
6dfb36c8 | 1838 | iwl_enable_rfkill_int(trans); |
9ad8fd0b | 1839 | iwl_pcie_check_hw_rf_kill(trans); |
fa9f3281 | 1840 | mutex_unlock(&trans_pcie->mutex); |
5fdda047 JB |
1841 | |
1842 | return 0; | |
48d1a211 EG |
1843 | } |
1844 | ||
b3ff1270 LC |
1845 | static const struct dev_pm_ops iwl_dev_pm_ops = { |
1846 | SET_SYSTEM_SLEEP_PM_OPS(iwl_pci_suspend, | |
1847 | iwl_pci_resume) | |
b3ff1270 | 1848 | }; |
48d1a211 EG |
1849 | |
1850 | #define IWL_PM_OPS (&iwl_dev_pm_ops) | |
1851 | ||
b3ff1270 | 1852 | #else /* CONFIG_PM_SLEEP */ |
48d1a211 EG |
1853 | |
1854 | #define IWL_PM_OPS NULL | |
1855 | ||
b3ff1270 | 1856 | #endif /* CONFIG_PM_SLEEP */ |
48d1a211 EG |
1857 | |
1858 | static struct pci_driver iwl_pci_driver = { | |
1859 | .name = DRV_NAME, | |
1860 | .id_table = iwl_hw_card_ids, | |
1861 | .probe = iwl_pci_probe, | |
d00064d4 | 1862 | .remove = iwl_pci_remove, |
48d1a211 EG |
1863 | .driver.pm = IWL_PM_OPS, |
1864 | }; | |
1865 | ||
1866 | int __must_check iwl_pci_register_driver(void) | |
1867 | { | |
1868 | int ret; | |
1869 | ret = pci_register_driver(&iwl_pci_driver); | |
1870 | if (ret) | |
1871 | pr_err("Unable to initialize PCI module\n"); | |
1872 | ||
1873 | return ret; | |
1874 | } | |
1875 | ||
1876 | void iwl_pci_unregister_driver(void) | |
1877 | { | |
1878 | pci_unregister_driver(&iwl_pci_driver); | |
1879 | } |