mirror of https://gitee.com/openkylin/linux.git
wireless-drivers fixes for 5.2
Hopefully the last set of fixes for 5.2. Nothing special this around, only small fixes and support for new cards. iwlwifi * add new cards for 22000 series and smaller fixes wl18xx * fix a clang warning about unused variables mwifiex * properly handle small vendor IEs (a regression from the recent security fix) ath * fix few SPDX tags mt76 * fix A-MSDU aggregation which got broken in v5.2-rc1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJdFb43AAoJEG4XJFUm622bQyUH+wbr8/3mo1IQdz5Vm/UoK0P6 SyG0I94sNPRfvPBQF9CNV8/958Yg+OMLJ8pHpqsvx6qdjyCy6C0G8Oi9qlqbmcQ6 vT5XY2FODm/+AkmSpdjPnG9Ye77luwJ66Egkk5uTUwDHirMhiD4IaoszRwoTHce8 o8Wu5UZ2SXwkUDnrRJmQxR/l8Bqr5QeC/xgxxS1aZEVF9uH+wDECGFCXNrFBRQcI 2W5UZz+1gp4OoV9SemgFrBXdhS/l/shje4svAjLk4rZr+CSU1oQZCgjbkjVBHaiL R9iLVKq//p+LOiA9Hd5kwQwkTiILRy+mmPvhSAy4eesZEjF+le9vaitpERRfoBQ= =5q2s -----END PGP SIGNATURE----- Merge tag 'wireless-drivers-for-davem-2019-06-28' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== wireless-drivers fixes for 5.2 Hopefully the last set of fixes for 5.2. Nothing special this around, only small fixes and support for new cards. iwlwifi * add new cards for 22000 series and smaller fixes wl18xx * fix a clang warning about unused variables mwifiex * properly handle small vendor IEs (a regression from the recent security fix) ath * fix few SPDX tags mt76 * fix A-MSDU aggregation which got broken in v5.2-rc1 ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
e78557baa6
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config ATH_COMMON
|
config ATH_COMMON
|
||||||
tristate
|
tristate
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: ISC
|
||||||
obj-$(CONFIG_ATH5K) += ath5k/
|
obj-$(CONFIG_ATH5K) += ath5k/
|
||||||
obj-$(CONFIG_ATH9K_HW) += ath9k/
|
obj-$(CONFIG_ATH9K_HW) += ath9k/
|
||||||
obj-$(CONFIG_CARL9170) += carl9170/
|
obj-$(CONFIG_CARL9170) += carl9170/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config AR5523
|
config AR5523
|
||||||
tristate "Atheros AR5523 wireless driver support"
|
tristate "Atheros AR5523 wireless driver support"
|
||||||
depends on MAC80211 && USB
|
depends on MAC80211 && USB
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
obj-$(CONFIG_AR5523) := ar5523.o
|
obj-$(CONFIG_AR5523) := ar5523.o
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config ATH10K
|
config ATH10K
|
||||||
tristate "Atheros 802.11ac wireless cards support"
|
tristate "Atheros 802.11ac wireless cards support"
|
||||||
depends on MAC80211 && HAS_DMA
|
depends on MAC80211 && HAS_DMA
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config ATH5K
|
config ATH5K
|
||||||
tristate "Atheros 5xxx wireless cards support"
|
tristate "Atheros 5xxx wireless cards support"
|
||||||
depends on (PCI || ATH25) && MAC80211
|
depends on (PCI || ATH25) && MAC80211
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: ISC
|
||||||
ath5k-y += caps.o
|
ath5k-y += caps.o
|
||||||
ath5k-y += initvals.o
|
ath5k-y += initvals.o
|
||||||
ath5k-y += eeprom.o
|
ath5k-y += eeprom.o
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config ATH6KL
|
config ATH6KL
|
||||||
tristate "Atheros mobile chipsets support"
|
tristate "Atheros mobile chipsets support"
|
||||||
depends on CFG80211
|
depends on CFG80211
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0 */
|
/* SPDX-License-Identifier: ISC */
|
||||||
#if !defined(_ATH6KL_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
#if !defined(_ATH6KL_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||||
|
|
||||||
#include <net/cfg80211.h>
|
#include <net/cfg80211.h>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config ATH9K_HW
|
config ATH9K_HW
|
||||||
tristate
|
tristate
|
||||||
config ATH9K_COMMON
|
config ATH9K_COMMON
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: ISC
|
||||||
ath9k-y += beacon.o \
|
ath9k-y += beacon.o \
|
||||||
gpio.o \
|
gpio.o \
|
||||||
init.o \
|
init.o \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config WCN36XX
|
config WCN36XX
|
||||||
tristate "Qualcomm Atheros WCN3660/3680 support"
|
tristate "Qualcomm Atheros WCN3660/3680 support"
|
||||||
depends on MAC80211 && HAS_DMA
|
depends on MAC80211 && HAS_DMA
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: ISC
|
||||||
obj-$(CONFIG_WCN36XX) := wcn36xx.o
|
obj-$(CONFIG_WCN36XX) := wcn36xx.o
|
||||||
wcn36xx-y += main.o \
|
wcn36xx-y += main.o \
|
||||||
dxe.o \
|
dxe.o \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: ISC
|
||||||
config WIL6210
|
config WIL6210
|
||||||
tristate "Wilocity 60g WiFi card wil6210 support"
|
tristate "Wilocity 60g WiFi card wil6210 support"
|
||||||
select WANT_DEV_COREDUMP
|
select WANT_DEV_COREDUMP
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: ISC
|
||||||
obj-$(CONFIG_WIL6210) += wil6210.o
|
obj-$(CONFIG_WIL6210) += wil6210.o
|
||||||
|
|
||||||
wil6210-y := main.o
|
wil6210-y := main.o
|
||||||
|
|
|
@ -82,6 +82,7 @@
|
||||||
#define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-"
|
#define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-"
|
||||||
#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-"
|
#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-"
|
||||||
#define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0-"
|
#define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0-"
|
||||||
|
#define IWL_QUZ_A_JF_B_FW_PRE "iwlwifi-QuZ-a0-jf-b0-"
|
||||||
#define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-"
|
#define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-"
|
||||||
#define IWL_CC_A_FW_PRE "iwlwifi-cc-a0-"
|
#define IWL_CC_A_FW_PRE "iwlwifi-cc-a0-"
|
||||||
#define IWL_22000_SO_A_JF_B_FW_PRE "iwlwifi-so-a0-jf-b0-"
|
#define IWL_22000_SO_A_JF_B_FW_PRE "iwlwifi-so-a0-jf-b0-"
|
||||||
|
@ -106,6 +107,8 @@
|
||||||
IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode"
|
IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode"
|
||||||
#define IWL_QUZ_A_HR_B_MODULE_FIRMWARE(api) \
|
#define IWL_QUZ_A_HR_B_MODULE_FIRMWARE(api) \
|
||||||
IWL_QUZ_A_HR_B_FW_PRE __stringify(api) ".ucode"
|
IWL_QUZ_A_HR_B_FW_PRE __stringify(api) ".ucode"
|
||||||
|
#define IWL_QUZ_A_JF_B_MODULE_FIRMWARE(api) \
|
||||||
|
IWL_QUZ_A_JF_B_FW_PRE __stringify(api) ".ucode"
|
||||||
#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
|
#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
|
||||||
IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
|
IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
|
||||||
#define IWL_QNJ_B_JF_B_MODULE_FIRMWARE(api) \
|
#define IWL_QNJ_B_JF_B_MODULE_FIRMWARE(api) \
|
||||||
|
@ -241,6 +244,18 @@ const struct iwl_cfg iwl_ax101_cfg_qu_hr = {
|
||||||
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl_ax201_cfg_qu_hr = {
|
||||||
|
.name = "Intel(R) Wi-Fi 6 AX201 160MHz",
|
||||||
|
.fw_name_pre = IWL_22000_QU_B_HR_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
};
|
||||||
|
|
||||||
const struct iwl_cfg iwl_ax101_cfg_quz_hr = {
|
const struct iwl_cfg iwl_ax101_cfg_quz_hr = {
|
||||||
.name = "Intel(R) Wi-Fi 6 AX101",
|
.name = "Intel(R) Wi-Fi 6 AX101",
|
||||||
.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
|
.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
|
||||||
|
@ -253,6 +268,42 @@ const struct iwl_cfg iwl_ax101_cfg_quz_hr = {
|
||||||
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl_ax201_cfg_quz_hr = {
|
||||||
|
.name = "Intel(R) Wi-Fi 6 AX201 160MHz",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl_ax1650s_cfg_quz_hr = {
|
||||||
|
.name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl_ax1650i_cfg_quz_hr = {
|
||||||
|
.name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
};
|
||||||
|
|
||||||
const struct iwl_cfg iwl_ax200_cfg_cc = {
|
const struct iwl_cfg iwl_ax200_cfg_cc = {
|
||||||
.name = "Intel(R) Wi-Fi 6 AX200 160MHz",
|
.name = "Intel(R) Wi-Fi 6 AX200 160MHz",
|
||||||
.fw_name_pre = IWL_CC_A_FW_PRE,
|
.fw_name_pre = IWL_CC_A_FW_PRE,
|
||||||
|
@ -333,6 +384,90 @@ const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = {
|
||||||
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl9560_2ac_cfg_quz_a0_jf_b0_soc = {
|
||||||
|
.name = "Intel(R) Wireless-AC 9560 160MHz",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
.integrated = true,
|
||||||
|
.soc_latency = 5000,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc = {
|
||||||
|
.name = "Intel(R) Wireless-AC 9560 160MHz",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
.integrated = true,
|
||||||
|
.soc_latency = 5000,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl9461_2ac_cfg_quz_a0_jf_b0_soc = {
|
||||||
|
.name = "Intel(R) Dual Band Wireless AC 9461",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
.integrated = true,
|
||||||
|
.soc_latency = 5000,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl9462_2ac_cfg_quz_a0_jf_b0_soc = {
|
||||||
|
.name = "Intel(R) Dual Band Wireless AC 9462",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
.integrated = true,
|
||||||
|
.soc_latency = 5000,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc = {
|
||||||
|
.name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
.integrated = true,
|
||||||
|
.soc_latency = 5000,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc = {
|
||||||
|
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
|
||||||
|
.fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
|
||||||
|
IWL_DEVICE_22500,
|
||||||
|
/*
|
||||||
|
* This device doesn't support receiving BlockAck with a large bitmap
|
||||||
|
* so we need to restrict the size of transmitted aggregation to the
|
||||||
|
* HT size; mac80211 would otherwise pick the HE max (256) by default.
|
||||||
|
*/
|
||||||
|
.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
|
||||||
|
.integrated = true,
|
||||||
|
.soc_latency = 5000,
|
||||||
|
};
|
||||||
|
|
||||||
const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = {
|
const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = {
|
||||||
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
|
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
|
||||||
.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
|
.fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
|
||||||
|
@ -424,12 +559,12 @@ const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0 = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct iwl_cfg iwlax210_2ax_cfg_so_hr_a0 = {
|
const struct iwl_cfg iwlax210_2ax_cfg_so_hr_a0 = {
|
||||||
.name = "Intel(R) Wi-Fi 6 AX201 160MHz",
|
.name = "Intel(R) Wi-Fi 7 AX210 160MHz",
|
||||||
.fw_name_pre = IWL_22000_SO_A_HR_B_FW_PRE,
|
.fw_name_pre = IWL_22000_SO_A_HR_B_FW_PRE,
|
||||||
IWL_DEVICE_AX210,
|
IWL_DEVICE_AX210,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct iwl_cfg iwlax210_2ax_cfg_so_gf_a0 = {
|
const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = {
|
||||||
.name = "Intel(R) Wi-Fi 7 AX211 160MHz",
|
.name = "Intel(R) Wi-Fi 7 AX211 160MHz",
|
||||||
.fw_name_pre = IWL_22000_SO_A_GF_A_FW_PRE,
|
.fw_name_pre = IWL_22000_SO_A_GF_A_FW_PRE,
|
||||||
.uhb_supported = true,
|
.uhb_supported = true,
|
||||||
|
@ -443,8 +578,8 @@ const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = {
|
||||||
IWL_DEVICE_AX210,
|
IWL_DEVICE_AX210,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct iwl_cfg iwlax210_2ax_cfg_so_gf4_a0 = {
|
const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = {
|
||||||
.name = "Intel(R) Wi-Fi 7 AX210 160MHz",
|
.name = "Intel(R) Wi-Fi 7 AX411 160MHz",
|
||||||
.fw_name_pre = IWL_22000_SO_A_GF4_A_FW_PRE,
|
.fw_name_pre = IWL_22000_SO_A_GF4_A_FW_PRE,
|
||||||
IWL_DEVICE_AX210,
|
IWL_DEVICE_AX210,
|
||||||
};
|
};
|
||||||
|
@ -457,6 +592,7 @@ MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
|
MODULE_FIRMWARE(IWL_QUZ_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
MODULE_FIRMWARE(IWL_QNJ_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
MODULE_FIRMWARE(IWL_QNJ_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
|
||||||
|
|
|
@ -540,14 +540,20 @@ extern const struct iwl_cfg iwl9260_killer_2ac_cfg;
|
||||||
extern const struct iwl_cfg iwl9270_2ac_cfg;
|
extern const struct iwl_cfg iwl9270_2ac_cfg;
|
||||||
extern const struct iwl_cfg iwl9460_2ac_cfg;
|
extern const struct iwl_cfg iwl9460_2ac_cfg;
|
||||||
extern const struct iwl_cfg iwl9560_2ac_cfg;
|
extern const struct iwl_cfg iwl9560_2ac_cfg;
|
||||||
|
extern const struct iwl_cfg iwl9560_2ac_cfg_quz_a0_jf_b0_soc;
|
||||||
extern const struct iwl_cfg iwl9560_2ac_160_cfg;
|
extern const struct iwl_cfg iwl9560_2ac_160_cfg;
|
||||||
|
extern const struct iwl_cfg iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc;
|
||||||
extern const struct iwl_cfg iwl9460_2ac_cfg_soc;
|
extern const struct iwl_cfg iwl9460_2ac_cfg_soc;
|
||||||
extern const struct iwl_cfg iwl9461_2ac_cfg_soc;
|
extern const struct iwl_cfg iwl9461_2ac_cfg_soc;
|
||||||
|
extern const struct iwl_cfg iwl9461_2ac_cfg_quz_a0_jf_b0_soc;
|
||||||
extern const struct iwl_cfg iwl9462_2ac_cfg_soc;
|
extern const struct iwl_cfg iwl9462_2ac_cfg_soc;
|
||||||
|
extern const struct iwl_cfg iwl9462_2ac_cfg_quz_a0_jf_b0_soc;
|
||||||
extern const struct iwl_cfg iwl9560_2ac_cfg_soc;
|
extern const struct iwl_cfg iwl9560_2ac_cfg_soc;
|
||||||
extern const struct iwl_cfg iwl9560_2ac_160_cfg_soc;
|
extern const struct iwl_cfg iwl9560_2ac_160_cfg_soc;
|
||||||
extern const struct iwl_cfg iwl9560_killer_2ac_cfg_soc;
|
extern const struct iwl_cfg iwl9560_killer_2ac_cfg_soc;
|
||||||
extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc;
|
extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc;
|
||||||
|
extern const struct iwl_cfg iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc;
|
||||||
|
extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc;
|
||||||
extern const struct iwl_cfg iwl9460_2ac_cfg_shared_clk;
|
extern const struct iwl_cfg iwl9460_2ac_cfg_shared_clk;
|
||||||
extern const struct iwl_cfg iwl9461_2ac_cfg_shared_clk;
|
extern const struct iwl_cfg iwl9461_2ac_cfg_shared_clk;
|
||||||
extern const struct iwl_cfg iwl9462_2ac_cfg_shared_clk;
|
extern const struct iwl_cfg iwl9462_2ac_cfg_shared_clk;
|
||||||
|
@ -562,6 +568,10 @@ extern const struct iwl_cfg iwl_ax101_cfg_qu_hr;
|
||||||
extern const struct iwl_cfg iwl_ax101_cfg_quz_hr;
|
extern const struct iwl_cfg iwl_ax101_cfg_quz_hr;
|
||||||
extern const struct iwl_cfg iwl22000_2ax_cfg_hr;
|
extern const struct iwl_cfg iwl22000_2ax_cfg_hr;
|
||||||
extern const struct iwl_cfg iwl_ax200_cfg_cc;
|
extern const struct iwl_cfg iwl_ax200_cfg_cc;
|
||||||
|
extern const struct iwl_cfg iwl_ax201_cfg_qu_hr;
|
||||||
|
extern const struct iwl_cfg iwl_ax201_cfg_quz_hr;
|
||||||
|
extern const struct iwl_cfg iwl_ax1650i_cfg_quz_hr;
|
||||||
|
extern const struct iwl_cfg iwl_ax1650s_cfg_quz_hr;
|
||||||
extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0;
|
extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0;
|
||||||
extern const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0;
|
extern const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0;
|
||||||
extern const struct iwl_cfg killer1650x_2ax_cfg;
|
extern const struct iwl_cfg killer1650x_2ax_cfg;
|
||||||
|
@ -580,9 +590,9 @@ extern const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0;
|
||||||
extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0;
|
extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0;
|
||||||
extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0;
|
extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0;
|
||||||
extern const struct iwl_cfg iwlax210_2ax_cfg_so_hr_a0;
|
extern const struct iwl_cfg iwlax210_2ax_cfg_so_hr_a0;
|
||||||
extern const struct iwl_cfg iwlax210_2ax_cfg_so_gf_a0;
|
extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0;
|
||||||
extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0;
|
extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0;
|
||||||
extern const struct iwl_cfg iwlax210_2ax_cfg_so_gf4_a0;
|
extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0;
|
||||||
#endif /* CPTCFG_IWLMVM || CPTCFG_IWLFMAC */
|
#endif /* CPTCFG_IWLMVM || CPTCFG_IWLFMAC */
|
||||||
|
|
||||||
#endif /* __IWL_CONFIG_H__ */
|
#endif /* __IWL_CONFIG_H__ */
|
||||||
|
|
|
@ -336,6 +336,7 @@ enum {
|
||||||
/* RF_ID value */
|
/* RF_ID value */
|
||||||
#define CSR_HW_RF_ID_TYPE_JF (0x00105100)
|
#define CSR_HW_RF_ID_TYPE_JF (0x00105100)
|
||||||
#define CSR_HW_RF_ID_TYPE_HR (0x0010A000)
|
#define CSR_HW_RF_ID_TYPE_HR (0x0010A000)
|
||||||
|
#define CSR_HW_RF_ID_TYPE_HR1 (0x0010c100)
|
||||||
#define CSR_HW_RF_ID_TYPE_HRCDB (0x00109F00)
|
#define CSR_HW_RF_ID_TYPE_HRCDB (0x00109F00)
|
||||||
#define CSR_HW_RF_ID_TYPE_GF (0x0010D000)
|
#define CSR_HW_RF_ID_TYPE_GF (0x0010D000)
|
||||||
#define CSR_HW_RF_ID_TYPE_GF4 (0x0010E000)
|
#define CSR_HW_RF_ID_TYPE_GF4 (0x0010E000)
|
||||||
|
|
|
@ -513,62 +513,56 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8265_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8265_2ac_cfg)},
|
||||||
|
|
||||||
/* 9000 Series */
|
/* 9000 Series */
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0034, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0038, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x003C, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0040, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0060, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0064, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x00A0, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x00A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0230, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x00A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0234, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0230, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0238, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x023C, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0260, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0264, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x02A0, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x02A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1551, iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1552, iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x02A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x2030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x2034, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x1552, iwl9560_killer_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x2030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4034, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x2034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x40A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4234, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x42A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0034, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0038, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x003C, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0060, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0064, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x00A0, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0040, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x06F0, 0x00A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0230, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0234, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0238, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x023C, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x00A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0260, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0230, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0264, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x02A0, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x02A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x1551, iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x06F0, 0x1552, iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x2030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x2034, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x4030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x02A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x4034, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x40A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x1552, iwl9560_killer_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x4234, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x2030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x42A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x2034, iwl9560_2ac_160_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x4030, iwl9560_2ac_160_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x4034, iwl9560_2ac_160_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x4234, iwl9560_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x2526, 0x0010, iwl9260_2ac_160_cfg)},
|
{IWL_PCI_DEVICE(0x2526, 0x0010, iwl9260_2ac_160_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2526, 0x0014, iwl9260_2ac_160_cfg)},
|
{IWL_PCI_DEVICE(0x2526, 0x0014, iwl9260_2ac_160_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2526, 0x0018, iwl9260_2ac_160_cfg)},
|
{IWL_PCI_DEVICE(0x2526, 0x0018, iwl9260_2ac_160_cfg)},
|
||||||
|
@ -621,7 +615,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0034, iwl9560_2ac_160_cfg)},
|
{IWL_PCI_DEVICE(0x2720, 0x0034, iwl9560_2ac_160_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0038, iwl9560_2ac_160_cfg)},
|
{IWL_PCI_DEVICE(0x2720, 0x0038, iwl9560_2ac_160_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x003C, iwl9560_2ac_160_cfg)},
|
{IWL_PCI_DEVICE(0x2720, 0x003C, iwl9560_2ac_160_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0044, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x0060, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x0064, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x00A0, iwl9462_2ac_cfg_soc)},
|
||||||
|
@ -630,7 +623,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0234, iwl9560_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x2720, 0x0234, iwl9560_2ac_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0238, iwl9560_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x2720, 0x0238, iwl9560_2ac_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x023C, iwl9560_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x2720, 0x023C, iwl9560_2ac_cfg)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0244, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x0260, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x0264, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x02A0, iwl9462_2ac_cfg_soc)},
|
||||||
|
@ -708,7 +700,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
|
@ -717,7 +708,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
|
@ -764,7 +754,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
||||||
|
@ -773,7 +762,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
||||||
|
@ -833,7 +821,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
||||||
|
@ -842,7 +829,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
||||||
|
@ -890,63 +876,80 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0030, iwl9560_2ac_cfg_qnj_jf_b0)},
|
{IWL_PCI_DEVICE(0x2720, 0x0030, iwl9560_2ac_cfg_qnj_jf_b0)},
|
||||||
|
|
||||||
/* 22000 Series */
|
/* 22000 Series */
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0070, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0074, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0074, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0078, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0078, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x007C, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x007C, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0310, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0244, iwl_ax101_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0310, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1651, iwl_ax1650s_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1652, iwl_ax1650i_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x2074, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0074, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4070, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0078, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4244, iwl_ax101_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x007C, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0070, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0310, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0074, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0078, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x06F0, 0x007C, iwl_ax201_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x4070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0244, iwl_ax101_cfg_quz_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x06F0, 0x0310, iwl_ax201_cfg_quz_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x06F0, 0x1651, iwl_ax1650s_cfg_quz_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x06F0, 0x1652, iwl_ax1650i_cfg_quz_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x06F0, 0x2074, iwl_ax201_cfg_quz_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x06F0, 0x4070, iwl_ax201_cfg_quz_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x06F0, 0x4244, iwl_ax101_cfg_quz_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0000, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x0000, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0040, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x0040, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0070, iwl22000_2ac_cfg_hr_cdb)},
|
{IWL_PCI_DEVICE(0x2720, 0x0044, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0074, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x0070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0078, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x0074, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x007C, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x0078, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x2720, 0x007C, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0090, iwl22000_2ac_cfg_hr_cdb)},
|
{IWL_PCI_DEVICE(0x2720, 0x0090, iwl22000_2ac_cfg_hr_cdb)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0310, iwl22000_2ac_cfg_hr_cdb)},
|
{IWL_PCI_DEVICE(0x2720, 0x0244, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0A10, iwl22000_2ac_cfg_hr_cdb)},
|
{IWL_PCI_DEVICE(0x2720, 0x0310, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x2720, 0x0A10, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x1080, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x1080, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x2720, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x2720, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x4070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x2074, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0040, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x4070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x4244, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0074, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0078, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x007C, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0074, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x0310, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x0078, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x34F0, 0x007C, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x34F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x34F0, 0x0310, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x4070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x2074, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0040, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x4070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x34F0, 0x4244, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0074, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0078, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x007C, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0074, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x43F0, 0x0078, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x43F0, 0x007C, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0x43F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x43F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0x43F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x4070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x43F0, 0x2074, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0000, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x43F0, 0x4070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0040, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0x43F0, 0x4244, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0044, iwl_ax101_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0074, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0070, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0078, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0074, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x007C, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0078, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x00B0, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x007C, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0A10, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0244, iwl_ax101_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0xA0F0, 0x0A10, iwl_ax201_cfg_qu_hr)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x4070, iwl_ax101_cfg_qu_hr)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x2074, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0xA0F0, 0x4070, iwl_ax201_cfg_qu_hr)},
|
||||||
|
{IWL_PCI_DEVICE(0xA0F0, 0x4244, iwl_ax101_cfg_qu_hr)},
|
||||||
|
|
||||||
{IWL_PCI_DEVICE(0x2723, 0x0080, iwl_ax200_cfg_cc)},
|
{IWL_PCI_DEVICE(0x2723, 0x0080, iwl_ax200_cfg_cc)},
|
||||||
{IWL_PCI_DEVICE(0x2723, 0x0084, iwl_ax200_cfg_cc)},
|
{IWL_PCI_DEVICE(0x2723, 0x0084, iwl_ax200_cfg_cc)},
|
||||||
|
@ -958,13 +961,19 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
||||||
{IWL_PCI_DEVICE(0x2723, 0x4080, iwl_ax200_cfg_cc)},
|
{IWL_PCI_DEVICE(0x2723, 0x4080, iwl_ax200_cfg_cc)},
|
||||||
{IWL_PCI_DEVICE(0x2723, 0x4088, iwl_ax200_cfg_cc)},
|
{IWL_PCI_DEVICE(0x2723, 0x4088, iwl_ax200_cfg_cc)},
|
||||||
|
|
||||||
{IWL_PCI_DEVICE(0x2725, 0x0090, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x2725, 0x0090, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
{IWL_PCI_DEVICE(0x7A70, 0x0090, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x2725, 0x0020, iwlax210_2ax_cfg_ty_gf_a0)},
|
||||||
{IWL_PCI_DEVICE(0x7A70, 0x0310, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x2725, 0x0310, iwlax210_2ax_cfg_ty_gf_a0)},
|
||||||
{IWL_PCI_DEVICE(0x2725, 0x0020, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x2725, 0x0510, iwlax210_2ax_cfg_ty_gf_a0)},
|
||||||
{IWL_PCI_DEVICE(0x2725, 0x0310, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x2725, 0x0A10, iwlax210_2ax_cfg_ty_gf_a0)},
|
||||||
{IWL_PCI_DEVICE(0x2725, 0x0A10, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x2725, 0x00B0, iwlax411_2ax_cfg_so_gf4_a0)},
|
||||||
{IWL_PCI_DEVICE(0x2725, 0x00B0, iwlax210_2ax_cfg_so_hr_a0)},
|
{IWL_PCI_DEVICE(0x7A70, 0x0090, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
{IWL_PCI_DEVICE(0x7A70, 0x0310, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
{IWL_PCI_DEVICE(0x7A70, 0x0510, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
{IWL_PCI_DEVICE(0x7A70, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
{IWL_PCI_DEVICE(0x7AF0, 0x0310, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
{IWL_PCI_DEVICE(0x7AF0, 0x0510, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
{IWL_PCI_DEVICE(0x7AF0, 0x0A10, iwlax211_2ax_cfg_so_gf_a0)},
|
||||||
|
|
||||||
#endif /* CONFIG_IWLMVM */
|
#endif /* CONFIG_IWLMVM */
|
||||||
|
|
||||||
|
|
|
@ -3569,15 +3569,17 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
||||||
trans->cfg = &iwlax210_2ax_cfg_so_jf_a0;
|
trans->cfg = &iwlax210_2ax_cfg_so_jf_a0;
|
||||||
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
||||||
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF)) {
|
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF)) {
|
||||||
trans->cfg = &iwlax210_2ax_cfg_so_gf_a0;
|
trans->cfg = &iwlax211_2ax_cfg_so_gf_a0;
|
||||||
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
||||||
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF4)) {
|
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_GF4)) {
|
||||||
trans->cfg = &iwlax210_2ax_cfg_so_gf4_a0;
|
trans->cfg = &iwlax411_2ax_cfg_so_gf4_a0;
|
||||||
}
|
}
|
||||||
} else if (cfg == &iwl_ax101_cfg_qu_hr) {
|
} else if (cfg == &iwl_ax101_cfg_qu_hr) {
|
||||||
if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
if ((CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
||||||
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
|
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
|
||||||
trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) {
|
trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) ||
|
||||||
|
(CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
||||||
|
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR1))) {
|
||||||
trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0;
|
trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0;
|
||||||
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
||||||
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR)) {
|
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR)) {
|
||||||
|
@ -3599,8 +3601,9 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
||||||
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
} else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==
|
||||||
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
|
CSR_HW_RF_ID_TYPE_CHIP_ID(CSR_HW_RF_ID_TYPE_HR) &&
|
||||||
((trans->cfg != &iwl_ax200_cfg_cc &&
|
((trans->cfg != &iwl_ax200_cfg_cc &&
|
||||||
trans->cfg != &killer1650x_2ax_cfg &&
|
trans->cfg != &killer1650x_2ax_cfg &&
|
||||||
trans->cfg != &killer1650w_2ax_cfg) ||
|
trans->cfg != &killer1650w_2ax_cfg &&
|
||||||
|
trans->cfg != &iwl_ax201_cfg_quz_hr) ||
|
||||||
trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0)) {
|
trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0)) {
|
||||||
u32 hw_status;
|
u32 hw_status;
|
||||||
|
|
||||||
|
|
|
@ -1759,9 +1759,10 @@ struct mwifiex_ie_types_wmm_queue_status {
|
||||||
struct ieee_types_vendor_header {
|
struct ieee_types_vendor_header {
|
||||||
u8 element_id;
|
u8 element_id;
|
||||||
u8 len;
|
u8 len;
|
||||||
u8 oui[4]; /* 0~2: oui, 3: oui_type */
|
struct {
|
||||||
u8 oui_subtype;
|
u8 oui[3];
|
||||||
u8 version;
|
u8 oui_type;
|
||||||
|
} __packed oui;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
struct ieee_types_wmm_parameter {
|
struct ieee_types_wmm_parameter {
|
||||||
|
@ -1775,6 +1776,9 @@ struct ieee_types_wmm_parameter {
|
||||||
* Version [1]
|
* Version [1]
|
||||||
*/
|
*/
|
||||||
struct ieee_types_vendor_header vend_hdr;
|
struct ieee_types_vendor_header vend_hdr;
|
||||||
|
u8 oui_subtype;
|
||||||
|
u8 version;
|
||||||
|
|
||||||
u8 qos_info_bitmap;
|
u8 qos_info_bitmap;
|
||||||
u8 reserved;
|
u8 reserved;
|
||||||
struct ieee_types_wmm_ac_parameters ac_params[IEEE80211_NUM_ACS];
|
struct ieee_types_wmm_ac_parameters ac_params[IEEE80211_NUM_ACS];
|
||||||
|
@ -1792,6 +1796,8 @@ struct ieee_types_wmm_info {
|
||||||
* Version [1]
|
* Version [1]
|
||||||
*/
|
*/
|
||||||
struct ieee_types_vendor_header vend_hdr;
|
struct ieee_types_vendor_header vend_hdr;
|
||||||
|
u8 oui_subtype;
|
||||||
|
u8 version;
|
||||||
|
|
||||||
u8 qos_info_bitmap;
|
u8 qos_info_bitmap;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
|
@ -1361,21 +1361,25 @@ int mwifiex_update_bss_desc_with_ie(struct mwifiex_adapter *adapter,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WLAN_EID_VENDOR_SPECIFIC:
|
case WLAN_EID_VENDOR_SPECIFIC:
|
||||||
if (element_len + 2 < sizeof(vendor_ie->vend_hdr))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
vendor_ie = (struct ieee_types_vendor_specific *)
|
vendor_ie = (struct ieee_types_vendor_specific *)
|
||||||
current_ptr;
|
current_ptr;
|
||||||
|
|
||||||
if (!memcmp
|
/* 802.11 requires at least 3-byte OUI. */
|
||||||
(vendor_ie->vend_hdr.oui, wpa_oui,
|
if (element_len < sizeof(vendor_ie->vend_hdr.oui.oui))
|
||||||
sizeof(wpa_oui))) {
|
return -EINVAL;
|
||||||
|
|
||||||
|
/* Not long enough for a match? Skip it. */
|
||||||
|
if (element_len < sizeof(wpa_oui))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (!memcmp(&vendor_ie->vend_hdr.oui, wpa_oui,
|
||||||
|
sizeof(wpa_oui))) {
|
||||||
bss_entry->bcn_wpa_ie =
|
bss_entry->bcn_wpa_ie =
|
||||||
(struct ieee_types_vendor_specific *)
|
(struct ieee_types_vendor_specific *)
|
||||||
current_ptr;
|
current_ptr;
|
||||||
bss_entry->wpa_offset = (u16)
|
bss_entry->wpa_offset = (u16)
|
||||||
(current_ptr - bss_entry->beacon_buf);
|
(current_ptr - bss_entry->beacon_buf);
|
||||||
} else if (!memcmp(vendor_ie->vend_hdr.oui, wmm_oui,
|
} else if (!memcmp(&vendor_ie->vend_hdr.oui, wmm_oui,
|
||||||
sizeof(wmm_oui))) {
|
sizeof(wmm_oui))) {
|
||||||
if (total_ie_len ==
|
if (total_ie_len ==
|
||||||
sizeof(struct ieee_types_wmm_parameter) ||
|
sizeof(struct ieee_types_wmm_parameter) ||
|
||||||
|
|
|
@ -1351,7 +1351,7 @@ mwifiex_set_gen_ie_helper(struct mwifiex_private *priv, u8 *ie_data_ptr,
|
||||||
/* Test to see if it is a WPA IE, if not, then
|
/* Test to see if it is a WPA IE, if not, then
|
||||||
* it is a gen IE
|
* it is a gen IE
|
||||||
*/
|
*/
|
||||||
if (!memcmp(pvendor_ie->oui, wpa_oui,
|
if (!memcmp(&pvendor_ie->oui, wpa_oui,
|
||||||
sizeof(wpa_oui))) {
|
sizeof(wpa_oui))) {
|
||||||
/* IE is a WPA/WPA2 IE so call set_wpa function
|
/* IE is a WPA/WPA2 IE so call set_wpa function
|
||||||
*/
|
*/
|
||||||
|
@ -1361,7 +1361,7 @@ mwifiex_set_gen_ie_helper(struct mwifiex_private *priv, u8 *ie_data_ptr,
|
||||||
goto next_ie;
|
goto next_ie;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!memcmp(pvendor_ie->oui, wps_oui,
|
if (!memcmp(&pvendor_ie->oui, wps_oui,
|
||||||
sizeof(wps_oui))) {
|
sizeof(wps_oui))) {
|
||||||
/* Test to see if it is a WPS IE,
|
/* Test to see if it is a WPS IE,
|
||||||
* if so, enable wps session flag
|
* if so, enable wps session flag
|
||||||
|
|
|
@ -240,7 +240,7 @@ mwifiex_wmm_setup_queue_priorities(struct mwifiex_private *priv,
|
||||||
mwifiex_dbg(priv->adapter, INFO,
|
mwifiex_dbg(priv->adapter, INFO,
|
||||||
"info: WMM Parameter IE: version=%d,\t"
|
"info: WMM Parameter IE: version=%d,\t"
|
||||||
"qos_info Parameter Set Count=%d, Reserved=%#x\n",
|
"qos_info Parameter Set Count=%d, Reserved=%#x\n",
|
||||||
wmm_ie->vend_hdr.version, wmm_ie->qos_info_bitmap &
|
wmm_ie->version, wmm_ie->qos_info_bitmap &
|
||||||
IEEE80211_WMM_IE_AP_QOSINFO_PARAM_SET_CNT_MASK,
|
IEEE80211_WMM_IE_AP_QOSINFO_PARAM_SET_CNT_MASK,
|
||||||
wmm_ie->reserved);
|
wmm_ie->reserved);
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#define MT_TX_RING_SIZE 256
|
#define MT_TX_RING_SIZE 256
|
||||||
#define MT_MCU_RING_SIZE 32
|
#define MT_MCU_RING_SIZE 32
|
||||||
#define MT_RX_BUF_SIZE 2048
|
#define MT_RX_BUF_SIZE 2048
|
||||||
|
#define MT_SKB_HEAD_LEN 128
|
||||||
|
|
||||||
struct mt76_dev;
|
struct mt76_dev;
|
||||||
struct mt76_wcid;
|
struct mt76_wcid;
|
||||||
|
|
|
@ -429,6 +429,42 @@ static int mt76u_get_rx_entry_len(u8 *data, u32 data_len)
|
||||||
return dma_len;
|
return dma_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct sk_buff *
|
||||||
|
mt76u_build_rx_skb(void *data, int len, int buf_size)
|
||||||
|
{
|
||||||
|
struct sk_buff *skb;
|
||||||
|
|
||||||
|
if (SKB_WITH_OVERHEAD(buf_size) < MT_DMA_HDR_LEN + len) {
|
||||||
|
struct page *page;
|
||||||
|
|
||||||
|
/* slow path, not enough space for data and
|
||||||
|
* skb_shared_info
|
||||||
|
*/
|
||||||
|
skb = alloc_skb(MT_SKB_HEAD_LEN, GFP_ATOMIC);
|
||||||
|
if (!skb)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
skb_put_data(skb, data + MT_DMA_HDR_LEN, MT_SKB_HEAD_LEN);
|
||||||
|
data += (MT_DMA_HDR_LEN + MT_SKB_HEAD_LEN);
|
||||||
|
page = virt_to_head_page(data);
|
||||||
|
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
|
||||||
|
page, data - page_address(page),
|
||||||
|
len - MT_SKB_HEAD_LEN, buf_size);
|
||||||
|
|
||||||
|
return skb;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* fast path */
|
||||||
|
skb = build_skb(data, buf_size);
|
||||||
|
if (!skb)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
skb_reserve(skb, MT_DMA_HDR_LEN);
|
||||||
|
__skb_put(skb, len);
|
||||||
|
|
||||||
|
return skb;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mt76u_process_rx_entry(struct mt76_dev *dev, struct urb *urb)
|
mt76u_process_rx_entry(struct mt76_dev *dev, struct urb *urb)
|
||||||
{
|
{
|
||||||
|
@ -446,19 +482,11 @@ mt76u_process_rx_entry(struct mt76_dev *dev, struct urb *urb)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
data_len = min_t(int, len, data_len - MT_DMA_HDR_LEN);
|
data_len = min_t(int, len, data_len - MT_DMA_HDR_LEN);
|
||||||
if (MT_DMA_HDR_LEN + data_len > SKB_WITH_OVERHEAD(q->buf_size)) {
|
skb = mt76u_build_rx_skb(data, data_len, q->buf_size);
|
||||||
dev_err_ratelimited(dev->dev, "rx data too big %d\n", data_len);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
skb = build_skb(data, q->buf_size);
|
|
||||||
if (!skb)
|
if (!skb)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
skb_reserve(skb, MT_DMA_HDR_LEN);
|
|
||||||
__skb_put(skb, data_len);
|
|
||||||
len -= data_len;
|
len -= data_len;
|
||||||
|
|
||||||
while (len > 0 && nsgs < urb->num_sgs) {
|
while (len > 0 && nsgs < urb->num_sgs) {
|
||||||
data_len = min_t(int, len, urb->sg[nsgs].length);
|
data_len = min_t(int, len, urb->sg[nsgs].length);
|
||||||
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
|
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
|
||||||
|
|
|
@ -1847,44 +1847,6 @@ static const struct ieee80211_iface_limit wl18xx_iface_ap_limits[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ieee80211_iface_limit wl18xx_iface_ap_cl_limits[] = {
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_STATION),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_AP),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_P2P_CLIENT),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_P2P_DEVICE),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct ieee80211_iface_limit wl18xx_iface_ap_go_limits[] = {
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_STATION),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_AP),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_P2P_GO),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.max = 1,
|
|
||||||
.types = BIT(NL80211_IFTYPE_P2P_DEVICE),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct ieee80211_iface_combination
|
static const struct ieee80211_iface_combination
|
||||||
wl18xx_iface_combinations[] = {
|
wl18xx_iface_combinations[] = {
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue