18c2ecf20Sopenharmony_ci/******************************************************************************
28c2ecf20Sopenharmony_ci *
38c2ecf20Sopenharmony_ci * This file is provided under a dual BSD/GPLv2 license.  When using or
48c2ecf20Sopenharmony_ci * redistributing this file, you may do so under either license.
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * GPL LICENSE SUMMARY
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
98c2ecf20Sopenharmony_ci * Copyright(c) 2016-2017 Intel Deutschland GmbH
108c2ecf20Sopenharmony_ci * Copyright(c) 2007 - 2014, 2018 - 2020 Intel Corporation
118c2ecf20Sopenharmony_ci *
128c2ecf20Sopenharmony_ci * This program is free software; you can redistribute it and/or modify
138c2ecf20Sopenharmony_ci * it under the terms of version 2 of the GNU General Public License as
148c2ecf20Sopenharmony_ci * published by the Free Software Foundation.
158c2ecf20Sopenharmony_ci *
168c2ecf20Sopenharmony_ci * This program is distributed in the hope that it will be useful, but
178c2ecf20Sopenharmony_ci * WITHOUT ANY WARRANTY; without even the implied warranty of
188c2ecf20Sopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
198c2ecf20Sopenharmony_ci * General Public License for more details.
208c2ecf20Sopenharmony_ci *
218c2ecf20Sopenharmony_ci * The full GNU General Public License is included in this distribution
228c2ecf20Sopenharmony_ci * in the file called COPYING.
238c2ecf20Sopenharmony_ci *
248c2ecf20Sopenharmony_ci * Contact Information:
258c2ecf20Sopenharmony_ci *  Intel Linux Wireless <linuxwifi@intel.com>
268c2ecf20Sopenharmony_ci * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
278c2ecf20Sopenharmony_ci *
288c2ecf20Sopenharmony_ci * BSD LICENSE
298c2ecf20Sopenharmony_ci *
308c2ecf20Sopenharmony_ci * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
318c2ecf20Sopenharmony_ci * All rights reserved.
328c2ecf20Sopenharmony_ci * Copyright(c) 2017 Intel Deutschland GmbH
338c2ecf20Sopenharmony_ci * Copyright(c) 2005 - 2014, 2018 - 2020 Intel Corporation
348c2ecf20Sopenharmony_ci *
358c2ecf20Sopenharmony_ci * Redistribution and use in source and binary forms, with or without
368c2ecf20Sopenharmony_ci * modification, are permitted provided that the following conditions
378c2ecf20Sopenharmony_ci * are met:
388c2ecf20Sopenharmony_ci *
398c2ecf20Sopenharmony_ci *  * Redistributions of source code must retain the above copyright
408c2ecf20Sopenharmony_ci *    notice, this list of conditions and the following disclaimer.
418c2ecf20Sopenharmony_ci *  * Redistributions in binary form must reproduce the above copyright
428c2ecf20Sopenharmony_ci *    notice, this list of conditions and the following disclaimer in
438c2ecf20Sopenharmony_ci *    the documentation and/or other materials provided with the
448c2ecf20Sopenharmony_ci *    distribution.
458c2ecf20Sopenharmony_ci *  * Neither the name Intel Corporation nor the names of its
468c2ecf20Sopenharmony_ci *    contributors may be used to endorse or promote products derived
478c2ecf20Sopenharmony_ci *    from this software without specific prior written permission.
488c2ecf20Sopenharmony_ci *
498c2ecf20Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
508c2ecf20Sopenharmony_ci * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
518c2ecf20Sopenharmony_ci * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
528c2ecf20Sopenharmony_ci * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
538c2ecf20Sopenharmony_ci * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
548c2ecf20Sopenharmony_ci * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
558c2ecf20Sopenharmony_ci * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
568c2ecf20Sopenharmony_ci * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
578c2ecf20Sopenharmony_ci * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
588c2ecf20Sopenharmony_ci * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
598c2ecf20Sopenharmony_ci * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
608c2ecf20Sopenharmony_ci *
618c2ecf20Sopenharmony_ci *****************************************************************************/
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci#include <linux/module.h>
668c2ecf20Sopenharmony_ci#include <linux/pci.h>
678c2ecf20Sopenharmony_ci#include <linux/acpi.h>
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci#include "fw/acpi.h"
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci#include "iwl-trans.h"
728c2ecf20Sopenharmony_ci#include "iwl-drv.h"
738c2ecf20Sopenharmony_ci#include "iwl-prph.h"
748c2ecf20Sopenharmony_ci#include "internal.h"
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci#define TRANS_CFG_MARKER BIT(0)
778c2ecf20Sopenharmony_ci#define _IS_A(cfg, _struct) __builtin_types_compatible_p(typeof(cfg),	\
788c2ecf20Sopenharmony_ci							 struct _struct)
798c2ecf20Sopenharmony_ciextern int _invalid_type;
808c2ecf20Sopenharmony_ci#define _TRANS_CFG_MARKER(cfg)						\
818c2ecf20Sopenharmony_ci	(__builtin_choose_expr(_IS_A(cfg, iwl_cfg_trans_params),	\
828c2ecf20Sopenharmony_ci			       TRANS_CFG_MARKER,			\
838c2ecf20Sopenharmony_ci	 __builtin_choose_expr(_IS_A(cfg, iwl_cfg), 0, _invalid_type)))
848c2ecf20Sopenharmony_ci#define _ASSIGN_CFG(cfg) (_TRANS_CFG_MARKER(cfg) + (kernel_ulong_t)&(cfg))
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci#define IWL_PCI_DEVICE(dev, subdev, cfg) \
878c2ecf20Sopenharmony_ci	.vendor = PCI_VENDOR_ID_INTEL,  .device = (dev), \
888c2ecf20Sopenharmony_ci	.subvendor = PCI_ANY_ID, .subdevice = (subdev), \
898c2ecf20Sopenharmony_ci	.driver_data = _ASSIGN_CFG(cfg)
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci/* Hardware specific file defines the PCI IDs table for that hardware module */
928c2ecf20Sopenharmony_cistatic const struct pci_device_id iwl_hw_card_ids[] = {
938c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_IWLDVM)
948c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1201, iwl5100_agn_cfg)}, /* Mini Card */
958c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1301, iwl5100_agn_cfg)}, /* Half Mini Card */
968c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1204, iwl5100_agn_cfg)}, /* Mini Card */
978c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1304, iwl5100_agn_cfg)}, /* Half Mini Card */
988c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1205, iwl5100_bgn_cfg)}, /* Mini Card */
998c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1305, iwl5100_bgn_cfg)}, /* Half Mini Card */
1008c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1206, iwl5100_abg_cfg)}, /* Mini Card */
1018c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1306, iwl5100_abg_cfg)}, /* Half Mini Card */
1028c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1221, iwl5100_agn_cfg)}, /* Mini Card */
1038c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1321, iwl5100_agn_cfg)}, /* Half Mini Card */
1048c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1224, iwl5100_agn_cfg)}, /* Mini Card */
1058c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1324, iwl5100_agn_cfg)}, /* Half Mini Card */
1068c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1225, iwl5100_bgn_cfg)}, /* Mini Card */
1078c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1325, iwl5100_bgn_cfg)}, /* Half Mini Card */
1088c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1226, iwl5100_abg_cfg)}, /* Mini Card */
1098c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4232, 0x1326, iwl5100_abg_cfg)}, /* Half Mini Card */
1108c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1211, iwl5100_agn_cfg)}, /* Mini Card */
1118c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1311, iwl5100_agn_cfg)}, /* Half Mini Card */
1128c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1214, iwl5100_agn_cfg)}, /* Mini Card */
1138c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1314, iwl5100_agn_cfg)}, /* Half Mini Card */
1148c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1215, iwl5100_bgn_cfg)}, /* Mini Card */
1158c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1315, iwl5100_bgn_cfg)}, /* Half Mini Card */
1168c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1216, iwl5100_abg_cfg)}, /* Mini Card */
1178c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4237, 0x1316, iwl5100_abg_cfg)}, /* Half Mini Card */
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci/* 5300 Series WiFi */
1208c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1021, iwl5300_agn_cfg)}, /* Mini Card */
1218c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1121, iwl5300_agn_cfg)}, /* Half Mini Card */
1228c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1024, iwl5300_agn_cfg)}, /* Mini Card */
1238c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1124, iwl5300_agn_cfg)}, /* Half Mini Card */
1248c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1001, iwl5300_agn_cfg)}, /* Mini Card */
1258c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1101, iwl5300_agn_cfg)}, /* Half Mini Card */
1268c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1004, iwl5300_agn_cfg)}, /* Mini Card */
1278c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4235, 0x1104, iwl5300_agn_cfg)}, /* Half Mini Card */
1288c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4236, 0x1011, iwl5300_agn_cfg)}, /* Mini Card */
1298c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4236, 0x1111, iwl5300_agn_cfg)}, /* Half Mini Card */
1308c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4236, 0x1014, iwl5300_agn_cfg)}, /* Mini Card */
1318c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4236, 0x1114, iwl5300_agn_cfg)}, /* Half Mini Card */
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci/* 5350 Series WiFi/WiMax */
1348c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423A, 0x1001, iwl5350_agn_cfg)}, /* Mini Card */
1358c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423A, 0x1021, iwl5350_agn_cfg)}, /* Mini Card */
1368c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423B, 0x1011, iwl5350_agn_cfg)}, /* Mini Card */
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci/* 5150 Series Wifi/WiMax */
1398c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1201, iwl5150_agn_cfg)}, /* Mini Card */
1408c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1301, iwl5150_agn_cfg)}, /* Half Mini Card */
1418c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1206, iwl5150_abg_cfg)}, /* Mini Card */
1428c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1306, iwl5150_abg_cfg)}, /* Half Mini Card */
1438c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1221, iwl5150_agn_cfg)}, /* Mini Card */
1448c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1321, iwl5150_agn_cfg)}, /* Half Mini Card */
1458c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423C, 0x1326, iwl5150_abg_cfg)}, /* Half Mini Card */
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423D, 0x1211, iwl5150_agn_cfg)}, /* Mini Card */
1488c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423D, 0x1311, iwl5150_agn_cfg)}, /* Half Mini Card */
1498c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423D, 0x1216, iwl5150_abg_cfg)}, /* Mini Card */
1508c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x423D, 0x1316, iwl5150_abg_cfg)}, /* Half Mini Card */
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci/* 6x00 Series */
1538c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422B, 0x1101, iwl6000_3agn_cfg)},
1548c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422B, 0x1108, iwl6000_3agn_cfg)},
1558c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422B, 0x1121, iwl6000_3agn_cfg)},
1568c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422B, 0x1128, iwl6000_3agn_cfg)},
1578c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422C, 0x1301, iwl6000i_2agn_cfg)},
1588c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422C, 0x1306, iwl6000i_2abg_cfg)},
1598c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422C, 0x1307, iwl6000i_2bg_cfg)},
1608c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422C, 0x1321, iwl6000i_2agn_cfg)},
1618c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x422C, 0x1326, iwl6000i_2abg_cfg)},
1628c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_3agn_cfg)},
1638c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4238, 0x1118, iwl6000_3agn_cfg)},
1648c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4239, 0x1311, iwl6000i_2agn_cfg)},
1658c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4239, 0x1316, iwl6000i_2abg_cfg)},
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci/* 6x05 Series */
1688c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1301, iwl6005_2agn_cfg)},
1698c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1306, iwl6005_2abg_cfg)},
1708c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1307, iwl6005_2bg_cfg)},
1718c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1308, iwl6005_2agn_cfg)},
1728c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1321, iwl6005_2agn_cfg)},
1738c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1326, iwl6005_2abg_cfg)},
1748c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1328, iwl6005_2agn_cfg)},
1758c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_2agn_cfg)},
1768c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0085, 0x1318, iwl6005_2agn_cfg)},
1778c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0085, 0x1316, iwl6005_2abg_cfg)},
1788c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0xC020, iwl6005_2agn_sff_cfg)},
1798c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0085, 0xC220, iwl6005_2agn_sff_cfg)},
1808c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0085, 0xC228, iwl6005_2agn_sff_cfg)},
1818c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x4820, iwl6005_2agn_d_cfg)},
1828c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1304, iwl6005_2agn_mow1_cfg)},/* low 5GHz active */
1838c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0082, 0x1305, iwl6005_2agn_mow2_cfg)},/* high 5GHz active */
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci/* 6x30 Series */
1868c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x008A, 0x5305, iwl1030_bgn_cfg)},
1878c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x008A, 0x5307, iwl1030_bg_cfg)},
1888c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x008A, 0x5325, iwl1030_bgn_cfg)},
1898c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x008A, 0x5327, iwl1030_bg_cfg)},
1908c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x008B, 0x5315, iwl1030_bgn_cfg)},
1918c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x008B, 0x5317, iwl1030_bg_cfg)},
1928c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0090, 0x5211, iwl6030_2agn_cfg)},
1938c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0090, 0x5215, iwl6030_2bgn_cfg)},
1948c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0090, 0x5216, iwl6030_2abg_cfg)},
1958c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5201, iwl6030_2agn_cfg)},
1968c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5205, iwl6030_2bgn_cfg)},
1978c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5206, iwl6030_2abg_cfg)},
1988c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5207, iwl6030_2bg_cfg)},
1998c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5221, iwl6030_2agn_cfg)},
2008c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5225, iwl6030_2bgn_cfg)},
2018c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0091, 0x5226, iwl6030_2abg_cfg)},
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ci/* 6x50 WiFi/WiMax Series */
2048c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0087, 0x1301, iwl6050_2agn_cfg)},
2058c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0087, 0x1306, iwl6050_2abg_cfg)},
2068c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0087, 0x1321, iwl6050_2agn_cfg)},
2078c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0087, 0x1326, iwl6050_2abg_cfg)},
2088c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0089, 0x1311, iwl6050_2agn_cfg)},
2098c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0089, 0x1316, iwl6050_2abg_cfg)},
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci/* 6150 WiFi/WiMax Series */
2128c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0885, 0x1305, iwl6150_bgn_cfg)},
2138c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0885, 0x1307, iwl6150_bg_cfg)},
2148c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0885, 0x1325, iwl6150_bgn_cfg)},
2158c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0885, 0x1327, iwl6150_bg_cfg)},
2168c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0886, 0x1315, iwl6150_bgn_cfg)},
2178c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0886, 0x1317, iwl6150_bg_cfg)},
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci/* 1000 Series WiFi */
2208c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1205, iwl1000_bgn_cfg)},
2218c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1305, iwl1000_bgn_cfg)},
2228c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1225, iwl1000_bgn_cfg)},
2238c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1325, iwl1000_bgn_cfg)},
2248c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0084, 0x1215, iwl1000_bgn_cfg)},
2258c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0084, 0x1315, iwl1000_bgn_cfg)},
2268c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1206, iwl1000_bg_cfg)},
2278c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1306, iwl1000_bg_cfg)},
2288c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1226, iwl1000_bg_cfg)},
2298c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0083, 0x1326, iwl1000_bg_cfg)},
2308c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0084, 0x1216, iwl1000_bg_cfg)},
2318c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0084, 0x1316, iwl1000_bg_cfg)},
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci/* 100 Series WiFi */
2348c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08AE, 0x1005, iwl100_bgn_cfg)},
2358c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08AE, 0x1007, iwl100_bg_cfg)},
2368c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08AF, 0x1015, iwl100_bgn_cfg)},
2378c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08AF, 0x1017, iwl100_bg_cfg)},
2388c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08AE, 0x1025, iwl100_bgn_cfg)},
2398c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08AE, 0x1027, iwl100_bg_cfg)},
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci/* 130 Series WiFi */
2428c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0896, 0x5005, iwl130_bgn_cfg)},
2438c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0896, 0x5007, iwl130_bg_cfg)},
2448c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0897, 0x5015, iwl130_bgn_cfg)},
2458c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0897, 0x5017, iwl130_bg_cfg)},
2468c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0896, 0x5025, iwl130_bgn_cfg)},
2478c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0896, 0x5027, iwl130_bg_cfg)},
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci/* 2x00 Series */
2508c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0890, 0x4022, iwl2000_2bgn_cfg)},
2518c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0891, 0x4222, iwl2000_2bgn_cfg)},
2528c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0890, 0x4422, iwl2000_2bgn_cfg)},
2538c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0890, 0x4822, iwl2000_2bgn_d_cfg)},
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci/* 2x30 Series */
2568c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0887, 0x4062, iwl2030_2bgn_cfg)},
2578c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0888, 0x4262, iwl2030_2bgn_cfg)},
2588c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0887, 0x4462, iwl2030_2bgn_cfg)},
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ci/* 6x35 Series */
2618c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088E, 0x4060, iwl6035_2agn_cfg)},
2628c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088E, 0x406A, iwl6035_2agn_sff_cfg)},
2638c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088F, 0x4260, iwl6035_2agn_cfg)},
2648c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088F, 0x426A, iwl6035_2agn_sff_cfg)},
2658c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088E, 0x4460, iwl6035_2agn_cfg)},
2668c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088E, 0x446A, iwl6035_2agn_sff_cfg)},
2678c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088E, 0x4860, iwl6035_2agn_cfg)},
2688c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x088F, 0x5260, iwl6035_2agn_cfg)},
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci/* 105 Series */
2718c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0894, 0x0022, iwl105_bgn_cfg)},
2728c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0895, 0x0222, iwl105_bgn_cfg)},
2738c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0894, 0x0422, iwl105_bgn_cfg)},
2748c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0894, 0x0822, iwl105_bgn_d_cfg)},
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci/* 135 Series */
2778c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0892, 0x0062, iwl135_bgn_cfg)},
2788c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0893, 0x0262, iwl135_bgn_cfg)},
2798c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x0892, 0x0462, iwl135_bgn_cfg)},
2808c2ecf20Sopenharmony_ci#endif /* CONFIG_IWLDVM */
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_IWLMVM)
2838c2ecf20Sopenharmony_ci/* 7260 Series */
2848c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)},
2858c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)},
2868c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)},
2878c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4C60, iwl7260_2ac_cfg)},
2888c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4C70, iwl7260_2ac_cfg)},
2898c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)},
2908c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)},
2918c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)},
2928c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_n_cfg)},
2938c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7260_n_cfg)},
2948c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7260_2ac_cfg)},
2958c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7260_2ac_cfg)},
2968c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7260_2n_cfg)},
2978c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7260_2n_cfg)},
2988c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7260_n_cfg)},
2998c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7260_2ac_cfg)},
3008c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7260_2ac_cfg)},
3018c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7260_2n_cfg)},
3028c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7260_2n_cfg)},
3038c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7260_n_cfg)},
3048c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7260_2ac_cfg)},
3058c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7260_2ac_cfg)},
3068c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7260_2ac_cfg_high_temp)},
3078c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7260_2ac_cfg_high_temp)},
3088c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7260_2ac_cfg_high_temp)},
3098c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7260_2ac_cfg)},
3108c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7260_2n_cfg)},
3118c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)},
3128c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)},
3138c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)},
3148c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7260_2ac_cfg)},
3158c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7260_2ac_cfg)},
3168c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7260_2ac_cfg)},
3178c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)},
3188c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)},
3198c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)},
3208c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7260_2n_cfg)},
3218c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)},
3228c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7260_2ac_cfg)},
3238c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7260_2ac_cfg)},
3248c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7260_2n_cfg)},
3258c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7260_2n_cfg)},
3268c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7260_2n_cfg)},
3278c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7260_n_cfg)},
3288c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7260_n_cfg)},
3298c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)},
3308c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)},
3318c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)},
3328c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xCC70, iwl7260_2ac_cfg)},
3338c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xCC60, iwl7260_2ac_cfg)},
3348c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)},
3358c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)},
3368c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)},
3378c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7260_n_cfg)},
3388c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7260_2ac_cfg)},
3398c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7260_2ac_cfg)},
3408c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7260_2n_cfg)},
3418c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7260_n_cfg)},
3428c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7260_2ac_cfg)},
3438c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7260_2n_cfg)},
3448c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7260_2ac_cfg)},
3458c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7260_2n_cfg)},
3468c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7260_2n_cfg)},
3478c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7260_2n_cfg)},
3488c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7260_2n_cfg)},
3498c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7260_2n_cfg)},
3508c2ecf20Sopenharmony_ci
3518c2ecf20Sopenharmony_ci/* 3160 Series */
3528c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_2ac_cfg)},
3538c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0072, iwl3160_2ac_cfg)},
3548c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0170, iwl3160_2ac_cfg)},
3558c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0172, iwl3160_2ac_cfg)},
3568c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0060, iwl3160_2n_cfg)},
3578c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0062, iwl3160_n_cfg)},
3588c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B4, 0x0270, iwl3160_2ac_cfg)},
3598c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B4, 0x0272, iwl3160_2ac_cfg)},
3608c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0470, iwl3160_2ac_cfg)},
3618c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x0472, iwl3160_2ac_cfg)},
3628c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B4, 0x0370, iwl3160_2ac_cfg)},
3638c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8070, iwl3160_2ac_cfg)},
3648c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8072, iwl3160_2ac_cfg)},
3658c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8170, iwl3160_2ac_cfg)},
3668c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8172, iwl3160_2ac_cfg)},
3678c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8060, iwl3160_2n_cfg)},
3688c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8062, iwl3160_n_cfg)},
3698c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B4, 0x8270, iwl3160_2ac_cfg)},
3708c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B4, 0x8370, iwl3160_2ac_cfg)},
3718c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B4, 0x8272, iwl3160_2ac_cfg)},
3728c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8470, iwl3160_2ac_cfg)},
3738c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x8570, iwl3160_2ac_cfg)},
3748c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x1070, iwl3160_2ac_cfg)},
3758c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x08B3, 0x1170, iwl3160_2ac_cfg)},
3768c2ecf20Sopenharmony_ci
3778c2ecf20Sopenharmony_ci/* 3165 Series */
3788c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x4010, iwl3165_2ac_cfg)},
3798c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x4012, iwl3165_2ac_cfg)},
3808c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3166, 0x4212, iwl3165_2ac_cfg)},
3818c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x4410, iwl3165_2ac_cfg)},
3828c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x4510, iwl3165_2ac_cfg)},
3838c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x4110, iwl3165_2ac_cfg)},
3848c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3166, 0x4310, iwl3165_2ac_cfg)},
3858c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3166, 0x4210, iwl3165_2ac_cfg)},
3868c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x8010, iwl3165_2ac_cfg)},
3878c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3165, 0x8110, iwl3165_2ac_cfg)},
3888c2ecf20Sopenharmony_ci
3898c2ecf20Sopenharmony_ci/* 3168 Series */
3908c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FB, 0x2010, iwl3168_2ac_cfg)},
3918c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FB, 0x2110, iwl3168_2ac_cfg)},
3928c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FB, 0x2050, iwl3168_2ac_cfg)},
3938c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FB, 0x2150, iwl3168_2ac_cfg)},
3948c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FB, 0x0000, iwl3168_2ac_cfg)},
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_ci/* 7265 Series */
3978c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5010, iwl7265_2ac_cfg)},
3988c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5110, iwl7265_2ac_cfg)},
3998c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5100, iwl7265_2ac_cfg)},
4008c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5310, iwl7265_2ac_cfg)},
4018c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_n_cfg)},
4028c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5210, iwl7265_2ac_cfg)},
4038c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5C10, iwl7265_2ac_cfg)},
4048c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5012, iwl7265_2ac_cfg)},
4058c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5412, iwl7265_2ac_cfg)},
4068c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5410, iwl7265_2ac_cfg)},
4078c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5510, iwl7265_2ac_cfg)},
4088c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5400, iwl7265_2ac_cfg)},
4098c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x1010, iwl7265_2ac_cfg)},
4108c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5000, iwl7265_2n_cfg)},
4118c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2n_cfg)},
4128c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5200, iwl7265_2n_cfg)},
4138c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5002, iwl7265_n_cfg)},
4148c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5102, iwl7265_n_cfg)},
4158c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5202, iwl7265_n_cfg)},
4168c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9010, iwl7265_2ac_cfg)},
4178c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9012, iwl7265_2ac_cfg)},
4188c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x900A, iwl7265_2ac_cfg)},
4198c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9110, iwl7265_2ac_cfg)},
4208c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9112, iwl7265_2ac_cfg)},
4218c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x9210, iwl7265_2ac_cfg)},
4228c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x9200, iwl7265_2ac_cfg)},
4238c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9510, iwl7265_2ac_cfg)},
4248c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x9310, iwl7265_2ac_cfg)},
4258c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9410, iwl7265_2ac_cfg)},
4268c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5020, iwl7265_2n_cfg)},
4278c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x502A, iwl7265_2n_cfg)},
4288c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5420, iwl7265_2n_cfg)},
4298c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5090, iwl7265_2ac_cfg)},
4308c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5190, iwl7265_2ac_cfg)},
4318c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5590, iwl7265_2ac_cfg)},
4328c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5290, iwl7265_2ac_cfg)},
4338c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5490, iwl7265_2ac_cfg)},
4348c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x5F10, iwl7265_2ac_cfg)},
4358c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x5212, iwl7265_2ac_cfg)},
4368c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095B, 0x520A, iwl7265_2ac_cfg)},
4378c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9000, iwl7265_2ac_cfg)},
4388c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9400, iwl7265_2ac_cfg)},
4398c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x095A, 0x9E10, iwl7265_2ac_cfg)},
4408c2ecf20Sopenharmony_ci
4418c2ecf20Sopenharmony_ci/* 8000 Series */
4428c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0010, iwl8260_2ac_cfg)},
4438c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1010, iwl8260_2ac_cfg)},
4448c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x10B0, iwl8260_2ac_cfg)},
4458c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0130, iwl8260_2ac_cfg)},
4468c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1130, iwl8260_2ac_cfg)},
4478c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0132, iwl8260_2ac_cfg)},
4488c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1132, iwl8260_2ac_cfg)},
4498c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0110, iwl8260_2ac_cfg)},
4508c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x01F0, iwl8260_2ac_cfg)},
4518c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0012, iwl8260_2ac_cfg)},
4528c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1012, iwl8260_2ac_cfg)},
4538c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1110, iwl8260_2ac_cfg)},
4548c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0050, iwl8260_2ac_cfg)},
4558c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0250, iwl8260_2ac_cfg)},
4568c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1050, iwl8260_2ac_cfg)},
4578c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0150, iwl8260_2ac_cfg)},
4588c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x1150, iwl8260_2ac_cfg)},
4598c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F4, 0x0030, iwl8260_2ac_cfg)},
4608c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F4, 0x1030, iwl8260_2ac_cfg)},
4618c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xC010, iwl8260_2ac_cfg)},
4628c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xC110, iwl8260_2ac_cfg)},
4638c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xD010, iwl8260_2ac_cfg)},
4648c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xC050, iwl8260_2ac_cfg)},
4658c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xD050, iwl8260_2ac_cfg)},
4668c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xD0B0, iwl8260_2ac_cfg)},
4678c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0xB0B0, iwl8260_2ac_cfg)},
4688c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x8010, iwl8260_2ac_cfg)},
4698c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x8110, iwl8260_2ac_cfg)},
4708c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x9010, iwl8260_2ac_cfg)},
4718c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x9110, iwl8260_2ac_cfg)},
4728c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F4, 0x8030, iwl8260_2ac_cfg)},
4738c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F4, 0x9030, iwl8260_2ac_cfg)},
4748c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F4, 0xC030, iwl8260_2ac_cfg)},
4758c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F4, 0xD030, iwl8260_2ac_cfg)},
4768c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x8130, iwl8260_2ac_cfg)},
4778c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x9130, iwl8260_2ac_cfg)},
4788c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x8132, iwl8260_2ac_cfg)},
4798c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x9132, iwl8260_2ac_cfg)},
4808c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x8050, iwl8260_2ac_cfg)},
4818c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x8150, iwl8260_2ac_cfg)},
4828c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x9050, iwl8260_2ac_cfg)},
4838c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x9150, iwl8260_2ac_cfg)},
4848c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0004, iwl8260_2n_cfg)},
4858c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0044, iwl8260_2n_cfg)},
4868c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F5, 0x0010, iwl4165_2ac_cfg)},
4878c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F6, 0x0030, iwl4165_2ac_cfg)},
4888c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0810, iwl8260_2ac_cfg)},
4898c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0910, iwl8260_2ac_cfg)},
4908c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0850, iwl8260_2ac_cfg)},
4918c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0950, iwl8260_2ac_cfg)},
4928c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8260_2ac_cfg)},
4938c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8265_2ac_cfg)},
4948c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24F3, 0x4010, iwl8260_2ac_cfg)},
4958c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8265_2ac_cfg)},
4968c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8265_2ac_cfg)},
4978c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8265_2ac_cfg)},
4988c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x1130, iwl8265_2ac_cfg)},
4998c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0130, iwl8265_2ac_cfg)},
5008c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8265_2ac_cfg)},
5018c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x10D0, iwl8265_2ac_cfg)},
5028c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8265_2ac_cfg)},
5038c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8265_2ac_cfg)},
5048c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8265_2ac_cfg)},
5058c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8265_2ac_cfg)},
5068c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8265_2ac_cfg)},
5078c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8265_2ac_cfg)},
5088c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8265_2ac_cfg)},
5098c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8265_2ac_cfg)},
5108c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8265_2ac_cfg)},
5118c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0910, iwl8265_2ac_cfg)},
5128c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0930, iwl8265_2ac_cfg)},
5138c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0950, iwl8265_2ac_cfg)},
5148c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0850, iwl8265_2ac_cfg)},
5158c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x1014, iwl8265_2ac_cfg)},
5168c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x3E02, iwl8275_2ac_cfg)},
5178c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x3E01, iwl8275_2ac_cfg)},
5188c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x1012, iwl8275_2ac_cfg)},
5198c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0012, iwl8275_2ac_cfg)},
5208c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x0014, iwl8265_2ac_cfg)},
5218c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8265_2ac_cfg)},
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ci/* 9000 Series */
5248c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2526, PCI_ANY_ID, iwl9000_trans_cfg)},
5258c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x271B, PCI_ANY_ID, iwl9000_trans_cfg)},
5268c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x271C, PCI_ANY_ID, iwl9000_trans_cfg)},
5278c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x30DC, PCI_ANY_ID, iwl9560_long_latency_trans_cfg)},
5288c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x31DC, PCI_ANY_ID, iwl9560_shared_clk_trans_cfg)},
5298c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x9DF0, PCI_ANY_ID, iwl9560_trans_cfg)},
5308c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0xA370, PCI_ANY_ID, iwl9560_trans_cfg)},
5318c2ecf20Sopenharmony_ci
5328c2ecf20Sopenharmony_ci/* Qu devices */
5338c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x02F0, PCI_ANY_ID, iwl_qu_trans_cfg)},
5348c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x06F0, PCI_ANY_ID, iwl_qu_trans_cfg)},
5358c2ecf20Sopenharmony_ci
5368c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x34F0, PCI_ANY_ID, iwl_qu_medium_latency_trans_cfg)},
5378c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x3DF0, PCI_ANY_ID, iwl_qu_medium_latency_trans_cfg)},
5388c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x4DF0, PCI_ANY_ID, iwl_qu_medium_latency_trans_cfg)},
5398c2ecf20Sopenharmony_ci
5408c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x43F0, PCI_ANY_ID, iwl_qu_long_latency_trans_cfg)},
5418c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0xA0F0, PCI_ANY_ID, iwl_qu_long_latency_trans_cfg)},
5428c2ecf20Sopenharmony_ci
5438c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2720, PCI_ANY_ID, iwl_qnj_trans_cfg)},
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2723, PCI_ANY_ID, iwl_ax200_trans_cfg)},
5468c2ecf20Sopenharmony_ci
5478c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x0090, iwlax211_2ax_cfg_so_gf_a0)},
5488c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x0020, iwlax210_2ax_cfg_ty_gf_a0)},
5498c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x0024, iwlax210_2ax_cfg_ty_gf_a0)},
5508c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x0310, iwlax210_2ax_cfg_ty_gf_a0)},
5518c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x0510, iwlax210_2ax_cfg_ty_gf_a0)},
5528c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x0A10, iwlax210_2ax_cfg_ty_gf_a0)},
5538c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0xE020, iwlax210_2ax_cfg_ty_gf_a0)},
5548c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0xE024, iwlax210_2ax_cfg_ty_gf_a0)},
5558c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x4020, iwlax210_2ax_cfg_ty_gf_a0)},
5568c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x6020, iwlax210_2ax_cfg_ty_gf_a0)},
5578c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x6024, iwlax210_2ax_cfg_ty_gf_a0)},
5588c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2725, 0x00B0, iwlax411_2ax_cfg_sosnj_gf4_a0)},
5598c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x0070, iwlax201_cfg_snj_hr_b0)},
5608c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x0074, iwlax201_cfg_snj_hr_b0)},
5618c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x0078, iwlax201_cfg_snj_hr_b0)},
5628c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x007C, iwlax201_cfg_snj_hr_b0)},
5638c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x0090, iwlax211_cfg_snj_gf_a0)},
5648c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x0098, iwlax211_cfg_snj_gf_a0)},
5658c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x00B0, iwlax411_2ax_cfg_sosnj_gf4_a0)},
5668c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x0510, iwlax211_cfg_snj_gf_a0)},
5678c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x2074, iwlax201_cfg_snj_hr_b0)},
5688c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2726, 0x4070, iwlax201_cfg_snj_hr_b0)},
5698c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7A70, 0x0090, iwlax211_2ax_cfg_so_gf_a0_long)},
5708c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7A70, 0x0098, iwlax211_2ax_cfg_so_gf_a0_long)},
5718c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7A70, 0x00B0, iwlax411_2ax_cfg_so_gf4_a0_long)},
5728c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7A70, 0x0310, iwlax211_2ax_cfg_so_gf_a0_long)},
5738c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7A70, 0x0510, iwlax211_2ax_cfg_so_gf_a0_long)},
5748c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7A70, 0x0A10, iwlax211_2ax_cfg_so_gf_a0_long)},
5758c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7AF0, 0x0090, iwlax211_2ax_cfg_so_gf_a0)},
5768c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7AF0, 0x0098, iwlax211_2ax_cfg_so_gf_a0)},
5778c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7AF0, 0x00B0, iwlax411_2ax_cfg_so_gf4_a0)},
5788c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7AF0, 0x0310, iwlax211_2ax_cfg_so_gf_a0)},
5798c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7AF0, 0x0510, iwlax211_2ax_cfg_so_gf_a0)},
5808c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7AF0, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)},
5818c2ecf20Sopenharmony_ci
5828c2ecf20Sopenharmony_ci/* Ma devices */
5838c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x2729, PCI_ANY_ID, iwl_ma_trans_cfg)},
5848c2ecf20Sopenharmony_ci	{IWL_PCI_DEVICE(0x7E80, PCI_ANY_ID, iwl_ma_trans_cfg)},
5858c2ecf20Sopenharmony_ci
5868c2ecf20Sopenharmony_ci#endif /* CONFIG_IWLMVM */
5878c2ecf20Sopenharmony_ci
5888c2ecf20Sopenharmony_ci	{0}
5898c2ecf20Sopenharmony_ci};
5908c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(pci, iwl_hw_card_ids);
5918c2ecf20Sopenharmony_ci
5928c2ecf20Sopenharmony_ci#define _IWL_DEV_INFO(_device, _subdevice, _mac_type, _mac_step, _rf_type, \
5938c2ecf20Sopenharmony_ci		      _rf_id, _no_160, _cores, _cfg, _name)		   \
5948c2ecf20Sopenharmony_ci	{ .device = (_device), .subdevice = (_subdevice), .cfg = &(_cfg),  \
5958c2ecf20Sopenharmony_ci	  .name = _name, .mac_type = _mac_type, .rf_type = _rf_type,	   \
5968c2ecf20Sopenharmony_ci	  .no_160 = _no_160, .cores = _cores, .rf_id = _rf_id,		   \
5978c2ecf20Sopenharmony_ci	  .mac_step = _mac_step }
5988c2ecf20Sopenharmony_ci
5998c2ecf20Sopenharmony_ci#define IWL_DEV_INFO(_device, _subdevice, _cfg, _name) \
6008c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(_device, _subdevice, IWL_CFG_ANY, IWL_CFG_ANY,	   \
6018c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY,  \
6028c2ecf20Sopenharmony_ci		      _cfg, _name)
6038c2ecf20Sopenharmony_ci
6048c2ecf20Sopenharmony_cistatic const struct iwl_dev_info iwl_dev_info_table[] = {
6058c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_IWLMVM)
6068c2ecf20Sopenharmony_ci/* 9000 */
6078c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2526, 0x1550, iwl9260_2ac_cfg, iwl9260_killer_1550_name),
6088c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2526, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
6098c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2526, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
6108c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x30DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
6118c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
6128c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
6138c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
6148c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
6158c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
6168c2ecf20Sopenharmony_ci
6178c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),
6188c2ecf20Sopenharmony_ci
6198c2ecf20Sopenharmony_ci/* AX200 */
6208c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2723, 0x1653, iwl_ax200_cfg_cc, iwl_ax200_killer_1650w_name),
6218c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2723, 0x1654, iwl_ax200_cfg_cc, iwl_ax200_killer_1650x_name),
6228c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2723, IWL_CFG_ANY, iwl_ax200_cfg_cc, iwl_ax200_name),
6238c2ecf20Sopenharmony_ci
6248c2ecf20Sopenharmony_ci	/* QnJ with Hr */
6258c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2720, IWL_CFG_ANY, iwl_qnj_b0_hr_b0_cfg, iwl_ax201_name),
6268c2ecf20Sopenharmony_ci
6278c2ecf20Sopenharmony_ci	/* SnJ with HR*/
6288c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2726, 0x0244, iwlax201_cfg_snj_hr_b0, iwl_ax101_name),
6298c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2726, 0x1651, iwlax201_cfg_snj_hr_b0, iwl_ax201_killer_1650s_name),
6308c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2726, 0x1652, iwlax201_cfg_snj_hr_b0, iwl_ax201_killer_1650i_name),
6318c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x2726, 0x4244, iwlax201_cfg_snj_hr_b0, iwl_ax101_name),
6328c2ecf20Sopenharmony_ci
6338c2ecf20Sopenharmony_ci	/* Qu with Hr */
6348c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL),
6358c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL),
6368c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL),
6378c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x007C, iwl_ax201_cfg_qu_hr, NULL),
6388c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, iwl_ax201_killer_1650s_name),
6398c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, iwl_ax201_killer_1650i_name),
6408c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL),
6418c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x43F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL),
6428c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL),
6438c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL),
6448c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL),
6458c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x007C, iwl_ax201_cfg_qu_hr, NULL),
6468c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x0A10, iwl_ax201_cfg_qu_hr, NULL),
6478c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
6488c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL),
6498c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL),
6508c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL),
6518c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0xA0F0, 0x6074, iwl_ax201_cfg_qu_hr, NULL),
6528c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x0070, iwl_ax201_cfg_quz_hr, NULL),
6538c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x0074, iwl_ax201_cfg_quz_hr, NULL),
6548c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x6074, iwl_ax201_cfg_quz_hr, NULL),
6558c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x0078, iwl_ax201_cfg_quz_hr, NULL),
6568c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x007C, iwl_ax201_cfg_quz_hr, NULL),
6578c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x0310, iwl_ax201_cfg_quz_hr, NULL),
6588c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x1651, iwl_ax1650s_cfg_quz_hr, NULL),
6598c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x1652, iwl_ax1650i_cfg_quz_hr, NULL),
6608c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x2074, iwl_ax201_cfg_quz_hr, NULL),
6618c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x02F0, 0x4070, iwl_ax201_cfg_quz_hr, NULL),
6628c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x0070, iwl_ax201_cfg_quz_hr, NULL),
6638c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x0074, iwl_ax201_cfg_quz_hr, NULL),
6648c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x0078, iwl_ax201_cfg_quz_hr, NULL),
6658c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x007C, iwl_ax201_cfg_quz_hr, NULL),
6668c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x0310, iwl_ax201_cfg_quz_hr, NULL),
6678c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x1651, iwl_ax1650s_cfg_quz_hr, NULL),
6688c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x1652, iwl_ax1650i_cfg_quz_hr, NULL),
6698c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x2074, iwl_ax201_cfg_quz_hr, NULL),
6708c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x06F0, 0x4070, iwl_ax201_cfg_quz_hr, NULL),
6718c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL),
6728c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL),
6738c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL),
6748c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x007C, iwl_ax201_cfg_qu_hr, NULL),
6758c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x0310, iwl_ax201_cfg_qu_hr, NULL),
6768c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
6778c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL),
6788c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL),
6798c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x34F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL),
6808c2ecf20Sopenharmony_ci
6818c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x0070, iwl_ax201_cfg_qu_hr, NULL),
6828c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x0074, iwl_ax201_cfg_qu_hr, NULL),
6838c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x0078, iwl_ax201_cfg_qu_hr, NULL),
6848c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x007C, iwl_ax201_cfg_qu_hr, NULL),
6858c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x0310, iwl_ax201_cfg_qu_hr, NULL),
6868c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
6878c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL),
6888c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x2074, iwl_ax201_cfg_qu_hr, NULL),
6898c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x3DF0, 0x4070, iwl_ax201_cfg_qu_hr, NULL),
6908c2ecf20Sopenharmony_ci
6918c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x0070, iwl_ax201_cfg_qu_hr, NULL),
6928c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x0074, iwl_ax201_cfg_qu_hr, NULL),
6938c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x0078, iwl_ax201_cfg_qu_hr, NULL),
6948c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x007C, iwl_ax201_cfg_qu_hr, NULL),
6958c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x0310, iwl_ax201_cfg_qu_hr, NULL),
6968c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, NULL),
6978c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, NULL),
6988c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x2074, iwl_ax201_cfg_qu_hr, NULL),
6998c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x4070, iwl_ax201_cfg_qu_hr, NULL),
7008c2ecf20Sopenharmony_ci	IWL_DEV_INFO(0x4DF0, 0x6074, iwl_ax201_cfg_qu_hr, NULL),
7018c2ecf20Sopenharmony_ci
7028c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
7038c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY,
7048c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
7058c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7068c2ecf20Sopenharmony_ci		      iwl9560_2ac_cfg_soc, iwl9461_160_name),
7078c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
7088c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY,
7098c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
7108c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7118c2ecf20Sopenharmony_ci		      iwl9560_2ac_cfg_soc, iwl9461_name),
7128c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
7138c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY,
7148c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
7158c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7168c2ecf20Sopenharmony_ci		      iwl9560_2ac_cfg_soc, iwl9462_160_name),
7178c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
7188c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY,
7198c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
7208c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7218c2ecf20Sopenharmony_ci		      iwl9560_2ac_cfg_soc, iwl9462_name),
7228c2ecf20Sopenharmony_ci
7238c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
7248c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY,
7258c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
7268c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7278c2ecf20Sopenharmony_ci		      iwl9560_2ac_cfg_soc, iwl9560_160_name),
7288c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
7298c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY,
7308c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
7318c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7328c2ecf20Sopenharmony_ci		      iwl9560_2ac_cfg_soc, iwl9560_name),
7338c2ecf20Sopenharmony_ci
7348c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7358c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY,
7368c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
7378c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7388c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9461_160_name),
7398c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7408c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY,
7418c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
7428c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7438c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9461_name),
7448c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7458c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY,
7468c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
7478c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7488c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9462_160_name),
7498c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7508c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY,
7518c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
7528c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7538c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9462_name),
7548c2ecf20Sopenharmony_ci
7558c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7568c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY,
7578c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
7588c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7598c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9560_160_name),
7608c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7618c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY,
7628c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
7638c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7648c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9560_name),
7658c2ecf20Sopenharmony_ci
7668c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7678c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY,
7688c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY,
7698c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT_GNSS,
7708c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9270_160_name),
7718c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7728c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY,
7738c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY,
7748c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT_GNSS,
7758c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9270_name),
7768c2ecf20Sopenharmony_ci
7778c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x271B, IWL_CFG_ANY,
7788c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY,
7798c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY,
7808c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7818c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9162_160_name),
7828c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x271B, IWL_CFG_ANY,
7838c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY,
7848c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY,
7858c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7868c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9162_name),
7878c2ecf20Sopenharmony_ci
7888c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7898c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY,
7908c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY,
7918c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
7928c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9260_160_name),
7938c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,
7948c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY,
7958c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY,
7968c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
7978c2ecf20Sopenharmony_ci		      iwl9260_2ac_cfg, iwl9260_name),
7988c2ecf20Sopenharmony_ci
7998c2ecf20Sopenharmony_ci/* Qu with Jf */
8008c2ecf20Sopenharmony_ci	/* Qu B step */
8018c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8028c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8038c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
8048c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8058c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9461_160_name),
8068c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8078c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8088c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
8098c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8108c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9461_name),
8118c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8128c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8138c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
8148c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8158c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9462_160_name),
8168c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8178c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8188c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
8198c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8208c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9462_name),
8218c2ecf20Sopenharmony_ci
8228c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8238c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8248c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8258c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8268c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_160_name),
8278c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8288c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8298c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8308c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8318c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_name),
8328c2ecf20Sopenharmony_ci
8338c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,
8348c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8358c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8368c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8378c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_killer_1550s_name),
8388c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,
8398c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
8408c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8418c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8428c2ecf20Sopenharmony_ci		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_killer_1550i_name),
8438c2ecf20Sopenharmony_ci
8448c2ecf20Sopenharmony_ci	/* Qu C step */
8458c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8468c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8478c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
8488c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8498c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9461_160_name),
8508c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8518c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8528c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
8538c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8548c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9461_name),
8558c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8568c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8578c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
8588c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8598c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9462_160_name),
8608c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8618c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8628c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
8638c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8648c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9462_name),
8658c2ecf20Sopenharmony_ci
8668c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8678c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8688c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8698c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8708c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_160_name),
8718c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8728c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8738c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8748c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8758c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_name),
8768c2ecf20Sopenharmony_ci
8778c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,
8788c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8798c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8808c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8818c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_killer_1550s_name),
8828c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,
8838c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
8848c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
8858c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8868c2ecf20Sopenharmony_ci		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_killer_1550i_name),
8878c2ecf20Sopenharmony_ci
8888c2ecf20Sopenharmony_ci	/* QuZ */
8898c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8908c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
8918c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
8928c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
8938c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9461_160_name),
8948c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
8958c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
8968c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
8978c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
8988c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9461_name),
8998c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9008c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
9018c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
9028c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9038c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9462_160_name),
9048c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9058c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
9068c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
9078c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9088c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9462_name),
9098c2ecf20Sopenharmony_ci
9108c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9118c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
9128c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9138c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9148c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_160_name),
9158c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9168c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
9178c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9188c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9198c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_name),
9208c2ecf20Sopenharmony_ci
9218c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,
9228c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
9238c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9248c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9258c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550s_name),
9268c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,
9278c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
9288c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9298c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9308c2ecf20Sopenharmony_ci		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550i_name),
9318c2ecf20Sopenharmony_ci
9328c2ecf20Sopenharmony_ci	/* QnJ */
9338c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9348c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9358c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
9368c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9378c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9461_160_name),
9388c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9398c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9408c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1,
9418c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9428c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9461_name),
9438c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9448c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9458c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
9468c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9478c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9462_160_name),
9488c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9498c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9508c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV,
9518c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9528c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9462_name),
9538c2ecf20Sopenharmony_ci
9548c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9558c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9568c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9578c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9588c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_160_name),
9598c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9608c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9618c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9628c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9638c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_name),
9648c2ecf20Sopenharmony_ci
9658c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,
9668c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9678c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9688c2ecf20Sopenharmony_ci		      IWL_CFG_160, IWL_CFG_CORES_BT,
9698c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_killer_1550s_name),
9708c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,
9718c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY,
9728c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF,
9738c2ecf20Sopenharmony_ci		      IWL_CFG_NO_160, IWL_CFG_CORES_BT,
9748c2ecf20Sopenharmony_ci		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_killer_1550i_name),
9758c2ecf20Sopenharmony_ci
9768c2ecf20Sopenharmony_ci/* Qu with Hr */
9778c2ecf20Sopenharmony_ci	/* Qu B step */
9788c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9798c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP,
9808c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
9818c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
9828c2ecf20Sopenharmony_ci		      iwl_qu_b0_hr1_b0, iwl_ax101_name),
9838c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9848c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
9858c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY,
9868c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
9878c2ecf20Sopenharmony_ci		      iwl_qu_b0_hr_b0, iwl_ax203_name),
9888c2ecf20Sopenharmony_ci
9898c2ecf20Sopenharmony_ci	/* Qu C step */
9908c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9918c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
9928c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
9938c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
9948c2ecf20Sopenharmony_ci		      iwl_qu_c0_hr1_b0, iwl_ax101_name),
9958c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
9968c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP,
9978c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY,
9988c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
9998c2ecf20Sopenharmony_ci		      iwl_qu_c0_hr_b0, iwl_ax203_name),
10008c2ecf20Sopenharmony_ci
10018c2ecf20Sopenharmony_ci	/* QuZ */
10028c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
10038c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY,
10048c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY,
10058c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
10068c2ecf20Sopenharmony_ci		      iwl_quz_a0_hr1_b0, iwl_ax101_name),
10078c2ecf20Sopenharmony_ci
10088c2ecf20Sopenharmony_ci/* Ma */
10098c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
10108c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY,
10118c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY,
10128c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
10138c2ecf20Sopenharmony_ci		      iwl_cfg_ma_a0_gf_a0, iwl_ax211_name),
10148c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
10158c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY,
10168c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY,
10178c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
10188c2ecf20Sopenharmony_ci		      iwl_cfg_ma_a0_mr_a0, iwl_ma_name),
10198c2ecf20Sopenharmony_ci	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
10208c2ecf20Sopenharmony_ci		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY,
10218c2ecf20Sopenharmony_ci		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY,
10228c2ecf20Sopenharmony_ci		      IWL_CFG_ANY, IWL_CFG_ANY,
10238c2ecf20Sopenharmony_ci		      iwl_cfg_snj_a0_mr_a0, iwl_ma_name),
10248c2ecf20Sopenharmony_ci
10258c2ecf20Sopenharmony_ci
10268c2ecf20Sopenharmony_ci#endif /* CONFIG_IWLMVM */
10278c2ecf20Sopenharmony_ci};
10288c2ecf20Sopenharmony_ci
10298c2ecf20Sopenharmony_ci/* PCI registers */
10308c2ecf20Sopenharmony_ci#define PCI_CFG_RETRY_TIMEOUT	0x041
10318c2ecf20Sopenharmony_ci
10328c2ecf20Sopenharmony_cistatic int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
10338c2ecf20Sopenharmony_ci{
10348c2ecf20Sopenharmony_ci	const struct iwl_cfg_trans_params *trans;
10358c2ecf20Sopenharmony_ci	const struct iwl_cfg *cfg_7265d __maybe_unused = NULL;
10368c2ecf20Sopenharmony_ci	struct iwl_trans *iwl_trans;
10378c2ecf20Sopenharmony_ci	struct iwl_trans_pcie *trans_pcie;
10388c2ecf20Sopenharmony_ci	unsigned long flags;
10398c2ecf20Sopenharmony_ci	int i, ret;
10408c2ecf20Sopenharmony_ci	const struct iwl_cfg *cfg;
10418c2ecf20Sopenharmony_ci
10428c2ecf20Sopenharmony_ci	trans = (void *)(ent->driver_data & ~TRANS_CFG_MARKER);
10438c2ecf20Sopenharmony_ci
10448c2ecf20Sopenharmony_ci	/*
10458c2ecf20Sopenharmony_ci	 * This is needed for backwards compatibility with the old
10468c2ecf20Sopenharmony_ci	 * tables, so we don't need to change all the config structs
10478c2ecf20Sopenharmony_ci	 * at the same time.  The cfg is used to compare with the old
10488c2ecf20Sopenharmony_ci	 * full cfg structs.
10498c2ecf20Sopenharmony_ci	 */
10508c2ecf20Sopenharmony_ci	cfg = (void *)(ent->driver_data & ~TRANS_CFG_MARKER);
10518c2ecf20Sopenharmony_ci
10528c2ecf20Sopenharmony_ci	/* make sure trans is the first element in iwl_cfg */
10538c2ecf20Sopenharmony_ci	BUILD_BUG_ON(offsetof(struct iwl_cfg, trans));
10548c2ecf20Sopenharmony_ci
10558c2ecf20Sopenharmony_ci	iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans);
10568c2ecf20Sopenharmony_ci	if (IS_ERR(iwl_trans))
10578c2ecf20Sopenharmony_ci		return PTR_ERR(iwl_trans);
10588c2ecf20Sopenharmony_ci
10598c2ecf20Sopenharmony_ci	trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans);
10608c2ecf20Sopenharmony_ci
10618c2ecf20Sopenharmony_ci	iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID);
10628c2ecf20Sopenharmony_ci
10638c2ecf20Sopenharmony_ci	for (i = 0; i < ARRAY_SIZE(iwl_dev_info_table); i++) {
10648c2ecf20Sopenharmony_ci		const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i];
10658c2ecf20Sopenharmony_ci		if ((dev_info->device == (u16)IWL_CFG_ANY ||
10668c2ecf20Sopenharmony_ci		     dev_info->device == pdev->device) &&
10678c2ecf20Sopenharmony_ci		    (dev_info->subdevice == (u16)IWL_CFG_ANY ||
10688c2ecf20Sopenharmony_ci		     dev_info->subdevice == pdev->subsystem_device) &&
10698c2ecf20Sopenharmony_ci		    (dev_info->mac_type == (u16)IWL_CFG_ANY ||
10708c2ecf20Sopenharmony_ci		     dev_info->mac_type ==
10718c2ecf20Sopenharmony_ci		     CSR_HW_REV_TYPE(iwl_trans->hw_rev)) &&
10728c2ecf20Sopenharmony_ci		    (dev_info->mac_step == (u8)IWL_CFG_ANY ||
10738c2ecf20Sopenharmony_ci		     dev_info->mac_step ==
10748c2ecf20Sopenharmony_ci		     CSR_HW_REV_STEP(iwl_trans->hw_rev)) &&
10758c2ecf20Sopenharmony_ci		    (dev_info->rf_type == (u16)IWL_CFG_ANY ||
10768c2ecf20Sopenharmony_ci		     dev_info->rf_type ==
10778c2ecf20Sopenharmony_ci		     CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id)) &&
10788c2ecf20Sopenharmony_ci		    (dev_info->rf_id == (u8)IWL_CFG_ANY ||
10798c2ecf20Sopenharmony_ci		     dev_info->rf_id ==
10808c2ecf20Sopenharmony_ci		     IWL_SUBDEVICE_RF_ID(pdev->subsystem_device)) &&
10818c2ecf20Sopenharmony_ci		    (dev_info->no_160 == (u8)IWL_CFG_ANY ||
10828c2ecf20Sopenharmony_ci		     dev_info->no_160 ==
10838c2ecf20Sopenharmony_ci		     IWL_SUBDEVICE_NO_160(pdev->subsystem_device)) &&
10848c2ecf20Sopenharmony_ci		    (dev_info->cores == (u8)IWL_CFG_ANY ||
10858c2ecf20Sopenharmony_ci		     dev_info->cores ==
10868c2ecf20Sopenharmony_ci		     IWL_SUBDEVICE_CORES(pdev->subsystem_device))) {
10878c2ecf20Sopenharmony_ci			iwl_trans->cfg = dev_info->cfg;
10888c2ecf20Sopenharmony_ci			iwl_trans->name = dev_info->name;
10898c2ecf20Sopenharmony_ci		}
10908c2ecf20Sopenharmony_ci	}
10918c2ecf20Sopenharmony_ci
10928c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_IWLMVM)
10938c2ecf20Sopenharmony_ci	/*
10948c2ecf20Sopenharmony_ci	 * special-case 7265D, it has the same PCI IDs.
10958c2ecf20Sopenharmony_ci	 *
10968c2ecf20Sopenharmony_ci	 * Note that because we already pass the cfg to the transport above,
10978c2ecf20Sopenharmony_ci	 * all the parameters that the transport uses must, until that is
10988c2ecf20Sopenharmony_ci	 * changed, be identical to the ones in the 7265D configuration.
10998c2ecf20Sopenharmony_ci	 */
11008c2ecf20Sopenharmony_ci	if (cfg == &iwl7265_2ac_cfg)
11018c2ecf20Sopenharmony_ci		cfg_7265d = &iwl7265d_2ac_cfg;
11028c2ecf20Sopenharmony_ci	else if (cfg == &iwl7265_2n_cfg)
11038c2ecf20Sopenharmony_ci		cfg_7265d = &iwl7265d_2n_cfg;
11048c2ecf20Sopenharmony_ci	else if (cfg == &iwl7265_n_cfg)
11058c2ecf20Sopenharmony_ci		cfg_7265d = &iwl7265d_n_cfg;
11068c2ecf20Sopenharmony_ci	if (cfg_7265d &&
11078c2ecf20Sopenharmony_ci	    (iwl_trans->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_7265D)
11088c2ecf20Sopenharmony_ci		iwl_trans->cfg = cfg_7265d;
11098c2ecf20Sopenharmony_ci
11108c2ecf20Sopenharmony_ci	if (cfg == &iwlax210_2ax_cfg_so_hr_a0) {
11118c2ecf20Sopenharmony_ci		if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_TY) {
11128c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwlax210_2ax_cfg_ty_gf_a0;
11138c2ecf20Sopenharmony_ci		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
11148c2ecf20Sopenharmony_ci			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_JF)) {
11158c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwlax210_2ax_cfg_so_jf_a0;
11168c2ecf20Sopenharmony_ci		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
11178c2ecf20Sopenharmony_ci			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF)) {
11188c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwlax211_2ax_cfg_so_gf_a0;
11198c2ecf20Sopenharmony_ci		} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(iwl_trans->hw_rf_id) ==
11208c2ecf20Sopenharmony_ci			   CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF4)) {
11218c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwlax411_2ax_cfg_so_gf4_a0;
11228c2ecf20Sopenharmony_ci		}
11238c2ecf20Sopenharmony_ci	}
11248c2ecf20Sopenharmony_ci
11258c2ecf20Sopenharmony_ci	/*
11268c2ecf20Sopenharmony_ci	 * This is a hack to switch from Qu B0 to Qu C0.  We need to
11278c2ecf20Sopenharmony_ci	 * do this for all cfgs that use Qu B0, except for those using
11288c2ecf20Sopenharmony_ci	 * Jf, which have already been moved to the new table.  The
11298c2ecf20Sopenharmony_ci	 * rest must be removed once we convert Qu with Hr as well.
11308c2ecf20Sopenharmony_ci	 */
11318c2ecf20Sopenharmony_ci	if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QU_C0) {
11328c2ecf20Sopenharmony_ci		if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
11338c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwl_ax201_cfg_qu_c0_hr_b0;
11348c2ecf20Sopenharmony_ci		else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
11358c2ecf20Sopenharmony_ci			iwl_trans->cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0;
11368c2ecf20Sopenharmony_ci		else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
11378c2ecf20Sopenharmony_ci			iwl_trans->cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0;
11388c2ecf20Sopenharmony_ci	}
11398c2ecf20Sopenharmony_ci
11408c2ecf20Sopenharmony_ci	/* same thing for QuZ... */
11418c2ecf20Sopenharmony_ci	if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) {
11428c2ecf20Sopenharmony_ci		if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
11438c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
11448c2ecf20Sopenharmony_ci		else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
11458c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr;
11468c2ecf20Sopenharmony_ci		else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
11478c2ecf20Sopenharmony_ci			iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr;
11488c2ecf20Sopenharmony_ci	}
11498c2ecf20Sopenharmony_ci
11508c2ecf20Sopenharmony_ci#endif
11518c2ecf20Sopenharmony_ci	/*
11528c2ecf20Sopenharmony_ci	 * If we didn't set the cfg yet, the PCI ID table entry should have
11538c2ecf20Sopenharmony_ci	 * been a full config - if yes, use it, otherwise fail.
11548c2ecf20Sopenharmony_ci	 */
11558c2ecf20Sopenharmony_ci	if (!iwl_trans->cfg) {
11568c2ecf20Sopenharmony_ci		if (ent->driver_data & TRANS_CFG_MARKER) {
11578c2ecf20Sopenharmony_ci			pr_err("No config found for PCI dev %04x/%04x, rev=0x%x, rfid=0x%x\n",
11588c2ecf20Sopenharmony_ci			       pdev->device, pdev->subsystem_device,
11598c2ecf20Sopenharmony_ci			       iwl_trans->hw_rev, iwl_trans->hw_rf_id);
11608c2ecf20Sopenharmony_ci			ret = -EINVAL;
11618c2ecf20Sopenharmony_ci			goto out_free_trans;
11628c2ecf20Sopenharmony_ci		}
11638c2ecf20Sopenharmony_ci		iwl_trans->cfg = cfg;
11648c2ecf20Sopenharmony_ci	}
11658c2ecf20Sopenharmony_ci
11668c2ecf20Sopenharmony_ci	/* if we don't have a name yet, copy name from the old cfg */
11678c2ecf20Sopenharmony_ci	if (!iwl_trans->name)
11688c2ecf20Sopenharmony_ci		iwl_trans->name = iwl_trans->cfg->name;
11698c2ecf20Sopenharmony_ci
11708c2ecf20Sopenharmony_ci	if (iwl_trans->trans_cfg->mq_rx_supported) {
11718c2ecf20Sopenharmony_ci		if (WARN_ON(!iwl_trans->cfg->num_rbds)) {
11728c2ecf20Sopenharmony_ci			ret = -EINVAL;
11738c2ecf20Sopenharmony_ci			goto out_free_trans;
11748c2ecf20Sopenharmony_ci		}
11758c2ecf20Sopenharmony_ci		trans_pcie->num_rx_bufs = iwl_trans->cfg->num_rbds;
11768c2ecf20Sopenharmony_ci	} else {
11778c2ecf20Sopenharmony_ci		trans_pcie->num_rx_bufs = RX_QUEUE_SIZE;
11788c2ecf20Sopenharmony_ci	}
11798c2ecf20Sopenharmony_ci
11808c2ecf20Sopenharmony_ci	if (iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_8000 &&
11818c2ecf20Sopenharmony_ci	    iwl_trans_grab_nic_access(iwl_trans, &flags)) {
11828c2ecf20Sopenharmony_ci		u32 hw_step;
11838c2ecf20Sopenharmony_ci
11848c2ecf20Sopenharmony_ci		hw_step = iwl_read_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG);
11858c2ecf20Sopenharmony_ci		hw_step |= ENABLE_WFPM;
11868c2ecf20Sopenharmony_ci		iwl_write_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG, hw_step);
11878c2ecf20Sopenharmony_ci		hw_step = iwl_read_prph_no_grab(iwl_trans, CNVI_AUX_MISC_CHIP);
11888c2ecf20Sopenharmony_ci		hw_step = (hw_step >> HW_STEP_LOCATION_BITS) & 0xF;
11898c2ecf20Sopenharmony_ci		if (hw_step == 0x3)
11908c2ecf20Sopenharmony_ci			iwl_trans->hw_rev = (iwl_trans->hw_rev & 0xFFFFFFF3) |
11918c2ecf20Sopenharmony_ci				(SILICON_C_STEP << 2);
11928c2ecf20Sopenharmony_ci		iwl_trans_release_nic_access(iwl_trans, &flags);
11938c2ecf20Sopenharmony_ci	}
11948c2ecf20Sopenharmony_ci
11958c2ecf20Sopenharmony_ci	pci_set_drvdata(pdev, iwl_trans);
11968c2ecf20Sopenharmony_ci	iwl_trans->drv = iwl_drv_start(iwl_trans);
11978c2ecf20Sopenharmony_ci
11988c2ecf20Sopenharmony_ci	if (IS_ERR(iwl_trans->drv)) {
11998c2ecf20Sopenharmony_ci		ret = PTR_ERR(iwl_trans->drv);
12008c2ecf20Sopenharmony_ci		goto out_free_trans;
12018c2ecf20Sopenharmony_ci	}
12028c2ecf20Sopenharmony_ci
12038c2ecf20Sopenharmony_ci	/* register transport layer debugfs here */
12048c2ecf20Sopenharmony_ci	iwl_trans_pcie_dbgfs_register(iwl_trans);
12058c2ecf20Sopenharmony_ci
12068c2ecf20Sopenharmony_ci	return 0;
12078c2ecf20Sopenharmony_ci
12088c2ecf20Sopenharmony_ciout_free_trans:
12098c2ecf20Sopenharmony_ci	iwl_trans_pcie_free(iwl_trans);
12108c2ecf20Sopenharmony_ci	return ret;
12118c2ecf20Sopenharmony_ci}
12128c2ecf20Sopenharmony_ci
12138c2ecf20Sopenharmony_cistatic void iwl_pci_remove(struct pci_dev *pdev)
12148c2ecf20Sopenharmony_ci{
12158c2ecf20Sopenharmony_ci	struct iwl_trans *trans = pci_get_drvdata(pdev);
12168c2ecf20Sopenharmony_ci
12178c2ecf20Sopenharmony_ci	if (!trans)
12188c2ecf20Sopenharmony_ci		return;
12198c2ecf20Sopenharmony_ci
12208c2ecf20Sopenharmony_ci	iwl_drv_stop(trans->drv);
12218c2ecf20Sopenharmony_ci
12228c2ecf20Sopenharmony_ci	iwl_trans_pcie_free(trans);
12238c2ecf20Sopenharmony_ci}
12248c2ecf20Sopenharmony_ci
12258c2ecf20Sopenharmony_ci#ifdef CONFIG_PM_SLEEP
12268c2ecf20Sopenharmony_ci
12278c2ecf20Sopenharmony_cistatic int iwl_pci_suspend(struct device *device)
12288c2ecf20Sopenharmony_ci{
12298c2ecf20Sopenharmony_ci	/* Before you put code here, think about WoWLAN. You cannot check here
12308c2ecf20Sopenharmony_ci	 * whether WoWLAN is enabled or not, and your code will run even if
12318c2ecf20Sopenharmony_ci	 * WoWLAN is enabled - don't kill the NIC, someone may need it in Sx.
12328c2ecf20Sopenharmony_ci	 */
12338c2ecf20Sopenharmony_ci
12348c2ecf20Sopenharmony_ci	return 0;
12358c2ecf20Sopenharmony_ci}
12368c2ecf20Sopenharmony_ci
12378c2ecf20Sopenharmony_cistatic int iwl_pci_resume(struct device *device)
12388c2ecf20Sopenharmony_ci{
12398c2ecf20Sopenharmony_ci	struct pci_dev *pdev = to_pci_dev(device);
12408c2ecf20Sopenharmony_ci	struct iwl_trans *trans = pci_get_drvdata(pdev);
12418c2ecf20Sopenharmony_ci	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
12428c2ecf20Sopenharmony_ci
12438c2ecf20Sopenharmony_ci	/* Before you put code here, think about WoWLAN. You cannot check here
12448c2ecf20Sopenharmony_ci	 * whether WoWLAN is enabled or not, and your code will run even if
12458c2ecf20Sopenharmony_ci	 * WoWLAN is enabled - the NIC may be alive.
12468c2ecf20Sopenharmony_ci	 */
12478c2ecf20Sopenharmony_ci
12488c2ecf20Sopenharmony_ci	/*
12498c2ecf20Sopenharmony_ci	 * We disable the RETRY_TIMEOUT register (0x41) to keep
12508c2ecf20Sopenharmony_ci	 * PCI Tx retries from interfering with C3 CPU state.
12518c2ecf20Sopenharmony_ci	 */
12528c2ecf20Sopenharmony_ci	pci_write_config_byte(pdev, PCI_CFG_RETRY_TIMEOUT, 0x00);
12538c2ecf20Sopenharmony_ci
12548c2ecf20Sopenharmony_ci	if (!trans->op_mode)
12558c2ecf20Sopenharmony_ci		return 0;
12568c2ecf20Sopenharmony_ci
12578c2ecf20Sopenharmony_ci	/* In WOWLAN, let iwl_trans_pcie_d3_resume do the rest of the work */
12588c2ecf20Sopenharmony_ci	if (test_bit(STATUS_DEVICE_ENABLED, &trans->status))
12598c2ecf20Sopenharmony_ci		return 0;
12608c2ecf20Sopenharmony_ci
12618c2ecf20Sopenharmony_ci	/* reconfigure the MSI-X mapping to get the correct IRQ for rfkill */
12628c2ecf20Sopenharmony_ci	iwl_pcie_conf_msix_hw(trans_pcie);
12638c2ecf20Sopenharmony_ci
12648c2ecf20Sopenharmony_ci	/*
12658c2ecf20Sopenharmony_ci	 * Enable rfkill interrupt (in order to keep track of the rfkill
12668c2ecf20Sopenharmony_ci	 * status). Must be locked to avoid processing a possible rfkill
12678c2ecf20Sopenharmony_ci	 * interrupt while in iwl_pcie_check_hw_rf_kill().
12688c2ecf20Sopenharmony_ci	 */
12698c2ecf20Sopenharmony_ci	mutex_lock(&trans_pcie->mutex);
12708c2ecf20Sopenharmony_ci	iwl_enable_rfkill_int(trans);
12718c2ecf20Sopenharmony_ci	iwl_pcie_check_hw_rf_kill(trans);
12728c2ecf20Sopenharmony_ci	mutex_unlock(&trans_pcie->mutex);
12738c2ecf20Sopenharmony_ci
12748c2ecf20Sopenharmony_ci	return 0;
12758c2ecf20Sopenharmony_ci}
12768c2ecf20Sopenharmony_ci
12778c2ecf20Sopenharmony_cistatic const struct dev_pm_ops iwl_dev_pm_ops = {
12788c2ecf20Sopenharmony_ci	SET_SYSTEM_SLEEP_PM_OPS(iwl_pci_suspend,
12798c2ecf20Sopenharmony_ci				iwl_pci_resume)
12808c2ecf20Sopenharmony_ci};
12818c2ecf20Sopenharmony_ci
12828c2ecf20Sopenharmony_ci#define IWL_PM_OPS	(&iwl_dev_pm_ops)
12838c2ecf20Sopenharmony_ci
12848c2ecf20Sopenharmony_ci#else /* CONFIG_PM_SLEEP */
12858c2ecf20Sopenharmony_ci
12868c2ecf20Sopenharmony_ci#define IWL_PM_OPS	NULL
12878c2ecf20Sopenharmony_ci
12888c2ecf20Sopenharmony_ci#endif /* CONFIG_PM_SLEEP */
12898c2ecf20Sopenharmony_ci
12908c2ecf20Sopenharmony_cistatic struct pci_driver iwl_pci_driver = {
12918c2ecf20Sopenharmony_ci	.name = DRV_NAME,
12928c2ecf20Sopenharmony_ci	.id_table = iwl_hw_card_ids,
12938c2ecf20Sopenharmony_ci	.probe = iwl_pci_probe,
12948c2ecf20Sopenharmony_ci	.remove = iwl_pci_remove,
12958c2ecf20Sopenharmony_ci	.driver.pm = IWL_PM_OPS,
12968c2ecf20Sopenharmony_ci};
12978c2ecf20Sopenharmony_ci
12988c2ecf20Sopenharmony_ciint __must_check iwl_pci_register_driver(void)
12998c2ecf20Sopenharmony_ci{
13008c2ecf20Sopenharmony_ci	int ret;
13018c2ecf20Sopenharmony_ci	ret = pci_register_driver(&iwl_pci_driver);
13028c2ecf20Sopenharmony_ci	if (ret)
13038c2ecf20Sopenharmony_ci		pr_err("Unable to initialize PCI module\n");
13048c2ecf20Sopenharmony_ci
13058c2ecf20Sopenharmony_ci	return ret;
13068c2ecf20Sopenharmony_ci}
13078c2ecf20Sopenharmony_ci
13088c2ecf20Sopenharmony_civoid iwl_pci_unregister_driver(void)
13098c2ecf20Sopenharmony_ci{
13108c2ecf20Sopenharmony_ci	pci_unregister_driver(&iwl_pci_driver);
13118c2ecf20Sopenharmony_ci}
1312