mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-24 15:57:01 +07:00
First batch of fixes intended for v5.4
* fix for an ACPI table parsing bug; * a fix for a NULL pointer dereference in the cfg with specific devices; * fix the rb_allocator; * prevent multiple phy configuration with new devices; * fix a race-condition in the rx queue; * prevent a couple of memory leaks; * fix initialization of 3168 devices (the infamous BAD_COMMAND bug); * fix recognition of some newer systems with integrated MAC; -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEF3LNfgb2BPWm68smoUecoho8xfoFAl2dsG0ACgkQoUecoho8 xfrbxxAAmybc8OJjSMwvyhi0PFEftsDzkmTY1FxqO5TGLWnyhz5zRp/IUWb/uxUP 9V6Y0h5BLuwjzDIj6N3lLcNziLNhVzHBXZidUHOkxqkgor0rDXCDvvhKoB3+fUl5 1M3el/DwBUKrqd9hYkDXwzULJtErt9kji7BYtxufqBatxUIjSdWjy3DzKJV/oKt4 OKkpIE7nCiGt3motveeZ+Yah+aDjRpXoBk7SMZ1Um1Qa8myfnwO6o15yT9wBvFM/ 4oFjUe2IhJEI96102VSvE7aYCpMXsIaQYFWjlAzsp9peu6fd1rgMKcil+dumHFSW f/cJWvozk4SZwbiwlRzcOD4I7ryXmPFmj3GcuRIcc7lUC3XoIs4YMMRGGwzcj929 ubReH4Sjrl8FS1KiUItJsPETHUIUWYTKsldklIrsfgIm6PBwQnil+blVA+tVwGc7 m/pIQl5hoiP8l0H4X1cCXoGbihYS95eGzzh8soSs7pde40UVVKcwvce44/Mm5Qld /FMGOA5q+6cLNrhcKQ7FHLO8XX4R9yLYGmFRr3m9tTabzmuypiCN37Tf8u6SNgXV uGXacRhDBJKrjrI5sXdyIpKjn4BkYjSDs2iWA4k1bjIacnwVii/gFYXfEQTqEJ7s 4Sq5qwx7oTmHAlpy7d1Bl0i6un/3A7sBopqiHA6ibxjYWHuG8jQ= =/62J -----END PGP SIGNATURE----- Merge tag 'iwlwifi-for-kalle-2019-10-09' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes First batch of fixes intended for v5.4 * fix for an ACPI table parsing bug; * a fix for a NULL pointer dereference in the cfg with specific devices; * fix the rb_allocator; * prevent multiple phy configuration with new devices; * fix a race-condition in the rx queue; * prevent a couple of memory leaks; * fix initialization of 3168 devices (the infamous BAD_COMMAND bug); * fix recognition of some newer systems with integrated MAC;
This commit is contained in:
commit
3aed88373b
@ -162,12 +162,13 @@ int iwl_acpi_get_mcc(struct device *dev, char *mcc)
|
|||||||
|
|
||||||
wifi_pkg = iwl_acpi_get_wifi_pkg(dev, data, ACPI_WRDD_WIFI_DATA_SIZE,
|
wifi_pkg = iwl_acpi_get_wifi_pkg(dev, data, ACPI_WRDD_WIFI_DATA_SIZE,
|
||||||
&tbl_rev);
|
&tbl_rev);
|
||||||
if (IS_ERR(wifi_pkg) || tbl_rev != 0) {
|
if (IS_ERR(wifi_pkg)) {
|
||||||
ret = PTR_ERR(wifi_pkg);
|
ret = PTR_ERR(wifi_pkg);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER) {
|
if (wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER ||
|
||||||
|
tbl_rev != 0) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
@ -224,12 +225,13 @@ int iwl_acpi_get_eckv(struct device *dev, u32 *extl_clk)
|
|||||||
|
|
||||||
wifi_pkg = iwl_acpi_get_wifi_pkg(dev, data, ACPI_ECKV_WIFI_DATA_SIZE,
|
wifi_pkg = iwl_acpi_get_wifi_pkg(dev, data, ACPI_ECKV_WIFI_DATA_SIZE,
|
||||||
&tbl_rev);
|
&tbl_rev);
|
||||||
if (IS_ERR(wifi_pkg) || tbl_rev != 0) {
|
if (IS_ERR(wifi_pkg)) {
|
||||||
ret = PTR_ERR(wifi_pkg);
|
ret = PTR_ERR(wifi_pkg);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER) {
|
if (wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER ||
|
||||||
|
tbl_rev != 0) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
@ -646,6 +646,7 @@ static struct scatterlist *alloc_sgtable(int size)
|
|||||||
if (new_page)
|
if (new_page)
|
||||||
__free_page(new_page);
|
__free_page(new_page);
|
||||||
}
|
}
|
||||||
|
kfree(table);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
alloc_size = min_t(int, size, PAGE_SIZE);
|
alloc_size = min_t(int, size, PAGE_SIZE);
|
||||||
|
@ -112,38 +112,38 @@ int iwl_dump_fh(struct iwl_trans *trans, char **buf);
|
|||||||
*/
|
*/
|
||||||
static inline u32 iwl_umac_prph(struct iwl_trans *trans, u32 ofs)
|
static inline u32 iwl_umac_prph(struct iwl_trans *trans, u32 ofs)
|
||||||
{
|
{
|
||||||
return ofs + trans->cfg->trans.umac_prph_offset;
|
return ofs + trans->trans_cfg->umac_prph_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32 iwl_read_umac_prph_no_grab(struct iwl_trans *trans, u32 ofs)
|
static inline u32 iwl_read_umac_prph_no_grab(struct iwl_trans *trans, u32 ofs)
|
||||||
{
|
{
|
||||||
return iwl_read_prph_no_grab(trans, ofs +
|
return iwl_read_prph_no_grab(trans, ofs +
|
||||||
trans->cfg->trans.umac_prph_offset);
|
trans->trans_cfg->umac_prph_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32 iwl_read_umac_prph(struct iwl_trans *trans, u32 ofs)
|
static inline u32 iwl_read_umac_prph(struct iwl_trans *trans, u32 ofs)
|
||||||
{
|
{
|
||||||
return iwl_read_prph(trans, ofs + trans->cfg->trans.umac_prph_offset);
|
return iwl_read_prph(trans, ofs + trans->trans_cfg->umac_prph_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void iwl_write_umac_prph_no_grab(struct iwl_trans *trans, u32 ofs,
|
static inline void iwl_write_umac_prph_no_grab(struct iwl_trans *trans, u32 ofs,
|
||||||
u32 val)
|
u32 val)
|
||||||
{
|
{
|
||||||
iwl_write_prph_no_grab(trans, ofs + trans->cfg->trans.umac_prph_offset,
|
iwl_write_prph_no_grab(trans, ofs + trans->trans_cfg->umac_prph_offset,
|
||||||
val);
|
val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void iwl_write_umac_prph(struct iwl_trans *trans, u32 ofs,
|
static inline void iwl_write_umac_prph(struct iwl_trans *trans, u32 ofs,
|
||||||
u32 val)
|
u32 val)
|
||||||
{
|
{
|
||||||
iwl_write_prph(trans, ofs + trans->cfg->trans.umac_prph_offset, val);
|
iwl_write_prph(trans, ofs + trans->trans_cfg->umac_prph_offset, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int iwl_poll_umac_prph_bit(struct iwl_trans *trans, u32 addr,
|
static inline int iwl_poll_umac_prph_bit(struct iwl_trans *trans, u32 addr,
|
||||||
u32 bits, u32 mask, int timeout)
|
u32 bits, u32 mask, int timeout)
|
||||||
{
|
{
|
||||||
return iwl_poll_prph_bit(trans, addr +
|
return iwl_poll_prph_bit(trans, addr +
|
||||||
trans->cfg->trans.umac_prph_offset,
|
trans->trans_cfg->umac_prph_offset,
|
||||||
bits, mask, timeout);
|
bits, mask, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -420,6 +420,9 @@ static int iwl_run_unified_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm)
|
|||||||
};
|
};
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (mvm->trans->cfg->tx_with_siso_diversity)
|
||||||
|
init_cfg.init_flags |= cpu_to_le32(BIT(IWL_INIT_PHY));
|
||||||
|
|
||||||
lockdep_assert_held(&mvm->mutex);
|
lockdep_assert_held(&mvm->mutex);
|
||||||
|
|
||||||
mvm->rfkill_safe_init_done = false;
|
mvm->rfkill_safe_init_done = false;
|
||||||
@ -694,12 +697,13 @@ static int iwl_mvm_sar_get_wrds_table(struct iwl_mvm *mvm)
|
|||||||
|
|
||||||
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
||||||
ACPI_WRDS_WIFI_DATA_SIZE, &tbl_rev);
|
ACPI_WRDS_WIFI_DATA_SIZE, &tbl_rev);
|
||||||
if (IS_ERR(wifi_pkg) || tbl_rev != 0) {
|
if (IS_ERR(wifi_pkg)) {
|
||||||
ret = PTR_ERR(wifi_pkg);
|
ret = PTR_ERR(wifi_pkg);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER) {
|
if (wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER ||
|
||||||
|
tbl_rev != 0) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
@ -731,13 +735,14 @@ static int iwl_mvm_sar_get_ewrd_table(struct iwl_mvm *mvm)
|
|||||||
|
|
||||||
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
||||||
ACPI_EWRD_WIFI_DATA_SIZE, &tbl_rev);
|
ACPI_EWRD_WIFI_DATA_SIZE, &tbl_rev);
|
||||||
if (IS_ERR(wifi_pkg) || tbl_rev != 0) {
|
if (IS_ERR(wifi_pkg)) {
|
||||||
ret = PTR_ERR(wifi_pkg);
|
ret = PTR_ERR(wifi_pkg);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER) ||
|
if ((wifi_pkg->package.elements[1].type != ACPI_TYPE_INTEGER) ||
|
||||||
(wifi_pkg->package.elements[2].type != ACPI_TYPE_INTEGER)) {
|
(wifi_pkg->package.elements[2].type != ACPI_TYPE_INTEGER) ||
|
||||||
|
tbl_rev != 0) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
@ -791,11 +796,16 @@ static int iwl_mvm_sar_get_wgds_table(struct iwl_mvm *mvm)
|
|||||||
|
|
||||||
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
||||||
ACPI_WGDS_WIFI_DATA_SIZE, &tbl_rev);
|
ACPI_WGDS_WIFI_DATA_SIZE, &tbl_rev);
|
||||||
if (IS_ERR(wifi_pkg) || tbl_rev > 1) {
|
if (IS_ERR(wifi_pkg)) {
|
||||||
ret = PTR_ERR(wifi_pkg);
|
ret = PTR_ERR(wifi_pkg);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tbl_rev != 0) {
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto out_free;
|
||||||
|
}
|
||||||
|
|
||||||
mvm->geo_rev = tbl_rev;
|
mvm->geo_rev = tbl_rev;
|
||||||
for (i = 0; i < ACPI_NUM_GEO_PROFILES; i++) {
|
for (i = 0; i < ACPI_NUM_GEO_PROFILES; i++) {
|
||||||
for (j = 0; j < ACPI_GEO_TABLE_SIZE; j++) {
|
for (j = 0; j < ACPI_GEO_TABLE_SIZE; j++) {
|
||||||
@ -889,15 +899,17 @@ static bool iwl_mvm_sar_geo_support(struct iwl_mvm *mvm)
|
|||||||
* firmware versions. Unfortunately, we don't have a TLV API
|
* firmware versions. Unfortunately, we don't have a TLV API
|
||||||
* flag to rely on, so rely on the major version which is in
|
* flag to rely on, so rely on the major version which is in
|
||||||
* the first byte of ucode_ver. This was implemented
|
* the first byte of ucode_ver. This was implemented
|
||||||
* initially on version 38 and then backported to29 and 17.
|
* initially on version 38 and then backported to 17. It was
|
||||||
* The intention was to have it in 36 as well, but not all
|
* also backported to 29, but only for 7265D devices. The
|
||||||
* 8000 family got this feature enabled. The 8000 family is
|
* intention was to have it in 36 as well, but not all 8000
|
||||||
* the only one using version 36, so skip this version
|
* family got this feature enabled. The 8000 family is the
|
||||||
* entirely.
|
* only one using version 36, so skip this version entirely.
|
||||||
*/
|
*/
|
||||||
return IWL_UCODE_SERIAL(mvm->fw->ucode_ver) >= 38 ||
|
return IWL_UCODE_SERIAL(mvm->fw->ucode_ver) >= 38 ||
|
||||||
IWL_UCODE_SERIAL(mvm->fw->ucode_ver) == 29 ||
|
IWL_UCODE_SERIAL(mvm->fw->ucode_ver) == 17 ||
|
||||||
IWL_UCODE_SERIAL(mvm->fw->ucode_ver) == 17;
|
(IWL_UCODE_SERIAL(mvm->fw->ucode_ver) == 29 &&
|
||||||
|
((mvm->trans->hw_rev & CSR_HW_REV_TYPE_MSK) ==
|
||||||
|
CSR_HW_REV_TYPE_7265D));
|
||||||
}
|
}
|
||||||
|
|
||||||
int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm)
|
int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm)
|
||||||
@ -1020,11 +1032,16 @@ static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)
|
|||||||
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
wifi_pkg = iwl_acpi_get_wifi_pkg(mvm->dev, data,
|
||||||
ACPI_PPAG_WIFI_DATA_SIZE, &tbl_rev);
|
ACPI_PPAG_WIFI_DATA_SIZE, &tbl_rev);
|
||||||
|
|
||||||
if (IS_ERR(wifi_pkg) || tbl_rev != 0) {
|
if (IS_ERR(wifi_pkg)) {
|
||||||
ret = PTR_ERR(wifi_pkg);
|
ret = PTR_ERR(wifi_pkg);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tbl_rev != 0) {
|
||||||
|
ret = -EINVAL;
|
||||||
|
goto out_free;
|
||||||
|
}
|
||||||
|
|
||||||
enabled = &wifi_pkg->package.elements[1];
|
enabled = &wifi_pkg->package.elements[1];
|
||||||
if (enabled->type != ACPI_TYPE_INTEGER ||
|
if (enabled->type != ACPI_TYPE_INTEGER ||
|
||||||
(enabled->integer.value != 0 && enabled->integer.value != 1)) {
|
(enabled->integer.value != 0 && enabled->integer.value != 1)) {
|
||||||
|
@ -4881,11 +4881,11 @@ void iwl_mvm_sync_rx_queues_internal(struct iwl_mvm *mvm,
|
|||||||
if (!iwl_mvm_has_new_rx_api(mvm))
|
if (!iwl_mvm_has_new_rx_api(mvm))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
notif->cookie = mvm->queue_sync_cookie;
|
if (notif->sync) {
|
||||||
|
notif->cookie = mvm->queue_sync_cookie;
|
||||||
if (notif->sync)
|
|
||||||
atomic_set(&mvm->queue_sync_counter,
|
atomic_set(&mvm->queue_sync_counter,
|
||||||
mvm->trans->num_rx_queues);
|
mvm->trans->num_rx_queues);
|
||||||
|
}
|
||||||
|
|
||||||
ret = iwl_mvm_notify_rx_queue(mvm, qmask, (u8 *)notif,
|
ret = iwl_mvm_notify_rx_queue(mvm, qmask, (u8 *)notif,
|
||||||
size, !notif->sync);
|
size, !notif->sync);
|
||||||
@ -4905,7 +4905,8 @@ void iwl_mvm_sync_rx_queues_internal(struct iwl_mvm *mvm,
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
atomic_set(&mvm->queue_sync_counter, 0);
|
atomic_set(&mvm->queue_sync_counter, 0);
|
||||||
mvm->queue_sync_cookie++;
|
if (notif->sync)
|
||||||
|
mvm->queue_sync_cookie++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void iwl_mvm_sync_rx_queues(struct ieee80211_hw *hw)
|
static void iwl_mvm_sync_rx_queues(struct ieee80211_hw *hw)
|
||||||
|
@ -107,13 +107,9 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
|||||||
|
|
||||||
/* allocate ucode sections in dram and set addresses */
|
/* allocate ucode sections in dram and set addresses */
|
||||||
ret = iwl_pcie_init_fw_sec(trans, fw, &prph_scratch->dram);
|
ret = iwl_pcie_init_fw_sec(trans, fw, &prph_scratch->dram);
|
||||||
if (ret) {
|
if (ret)
|
||||||
dma_free_coherent(trans->dev,
|
goto err_free_prph_scratch;
|
||||||
sizeof(*prph_scratch),
|
|
||||||
prph_scratch,
|
|
||||||
trans_pcie->prph_scratch_dma_addr);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate prph information
|
/* Allocate prph information
|
||||||
* currently we don't assign to the prph info anything, but it would get
|
* currently we don't assign to the prph info anything, but it would get
|
||||||
@ -121,16 +117,20 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
|||||||
prph_info = dma_alloc_coherent(trans->dev, sizeof(*prph_info),
|
prph_info = dma_alloc_coherent(trans->dev, sizeof(*prph_info),
|
||||||
&trans_pcie->prph_info_dma_addr,
|
&trans_pcie->prph_info_dma_addr,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!prph_info)
|
if (!prph_info) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto err_free_prph_scratch;
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate context info */
|
/* Allocate context info */
|
||||||
ctxt_info_gen3 = dma_alloc_coherent(trans->dev,
|
ctxt_info_gen3 = dma_alloc_coherent(trans->dev,
|
||||||
sizeof(*ctxt_info_gen3),
|
sizeof(*ctxt_info_gen3),
|
||||||
&trans_pcie->ctxt_info_dma_addr,
|
&trans_pcie->ctxt_info_dma_addr,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!ctxt_info_gen3)
|
if (!ctxt_info_gen3) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto err_free_prph_info;
|
||||||
|
}
|
||||||
|
|
||||||
ctxt_info_gen3->prph_info_base_addr =
|
ctxt_info_gen3->prph_info_base_addr =
|
||||||
cpu_to_le64(trans_pcie->prph_info_dma_addr);
|
cpu_to_le64(trans_pcie->prph_info_dma_addr);
|
||||||
@ -186,6 +186,20 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
|
|||||||
iwl_set_bit(trans, CSR_GP_CNTRL, CSR_AUTO_FUNC_INIT);
|
iwl_set_bit(trans, CSR_GP_CNTRL, CSR_AUTO_FUNC_INIT);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_free_prph_info:
|
||||||
|
dma_free_coherent(trans->dev,
|
||||||
|
sizeof(*prph_info),
|
||||||
|
prph_info,
|
||||||
|
trans_pcie->prph_info_dma_addr);
|
||||||
|
|
||||||
|
err_free_prph_scratch:
|
||||||
|
dma_free_coherent(trans->dev,
|
||||||
|
sizeof(*prph_scratch),
|
||||||
|
prph_scratch,
|
||||||
|
trans_pcie->prph_scratch_dma_addr);
|
||||||
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void iwl_pcie_ctxt_info_gen3_free(struct iwl_trans *trans)
|
void iwl_pcie_ctxt_info_gen3_free(struct iwl_trans *trans)
|
||||||
|
@ -513,31 +513,33 @@ 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_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0034, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0038, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x003C, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0060, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0064, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x00A0, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x00A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x00A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0230, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0230, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0234, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0238, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x023C, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0260, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x0264, iwl9461_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x02A0, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x02A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x02A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x1551, iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1030, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x1552, iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1551, killer1550s_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x2030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x1552, killer1550i_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x2034, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x2030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x2034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4034, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x40A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x4234, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x40A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x02F0, 0x42A4, iwl9462_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x02F0, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
|
{IWL_PCI_DEVICE(0x02F0, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
|
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0030, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0034, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0034, iwl9560_2ac_cfg_quz_a0_jf_b0_soc)},
|
||||||
{IWL_PCI_DEVICE(0x06F0, 0x0038, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
{IWL_PCI_DEVICE(0x06F0, 0x0038, iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc)},
|
||||||
@ -643,34 +645,34 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
|||||||
{IWL_PCI_DEVICE(0x2720, 0x40A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x40A4, iwl9462_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x4234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x4234, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x42A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x2720, 0x42A4, iwl9462_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0060, iwl9460_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x00A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0230, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x00A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0230, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x02A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x1010, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x30DC, 0x02A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x1030, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x1030, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x1210, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x30DC, 0x1551, killer1550s_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x1551, iwl9560_killer_s_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x1552, killer1550i_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x1552, iwl9560_killer_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x2030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x2030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x2034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x2034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x4030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x4030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x4034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x4034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x40A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x40A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x4234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x30DC, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x30DC, 0x42A4, iwl9462_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x31DC, 0x0030, iwl9560_2ac_160_cfg_shared_clk)},
|
{IWL_PCI_DEVICE(0x31DC, 0x0030, iwl9560_2ac_160_cfg_shared_clk)},
|
||||||
{IWL_PCI_DEVICE(0x31DC, 0x0034, iwl9560_2ac_cfg_shared_clk)},
|
{IWL_PCI_DEVICE(0x31DC, 0x0034, iwl9560_2ac_cfg_shared_clk)},
|
||||||
{IWL_PCI_DEVICE(0x31DC, 0x0038, iwl9560_2ac_160_cfg_shared_clk)},
|
{IWL_PCI_DEVICE(0x31DC, 0x0038, iwl9560_2ac_160_cfg_shared_clk)},
|
||||||
@ -726,62 +728,60 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
|||||||
{IWL_PCI_DEVICE(0x34F0, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x34F0, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
{IWL_PCI_DEVICE(0x34F0, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
|
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x00A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x00A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0230, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0230, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x02A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x02A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x1010, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x1030, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x1030, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x1551, killer1550s_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x1210, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x1552, killer1550i_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x2030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x1552, iwl9560_killer_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x2034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x2030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x4030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x2034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x4034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x4030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x40A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x4034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x3DF0, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x4234, iwl9560_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x3DF0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x00A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x00A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0230, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0230, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x02A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x02A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x1030, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1010, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x43F0, 0x1551, killer1550s_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1030, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x1552, killer1550i_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1210, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0x43F0, 0x2030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x2034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x1552, iwl9560_killer_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x4030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x2030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x4034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x2034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x40A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x4030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x4034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x43F0, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x4234, iwl9560_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x43F0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0x9DF0, 0x0000, iwl9460_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x9DF0, 0x0000, iwl9460_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x9DF0, 0x0010, iwl9460_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x9DF0, 0x0010, iwl9460_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x9DF0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0x9DF0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
||||||
@ -821,34 +821,34 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
|||||||
{IWL_PCI_DEVICE(0x9DF0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x9DF0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x9DF0, 0x4234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x9DF0, 0x4234, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0x9DF0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0x9DF0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0034, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x003C, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0038, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0060, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x003C, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0064, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0060, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x00A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0064, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x00A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x00A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0230, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x00A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0230, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0238, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x023C, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0238, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0260, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x023C, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x0264, iwl9461_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0260, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x02A0, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x0264, iwl9461_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x02A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x02A0, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1010, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x02A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1030, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x1030, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1210, iwl9260_2ac_cfg)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x1551, killer1550s_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x1552, killer1550i_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x1552, iwl9560_killer_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x2030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x2030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x2034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x2034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x4030, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x4030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x4034, iwl9560_2ac_160_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x4034, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x40A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x40A4, iwl9462_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x4234, iwl9560_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x4234, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA0F0, 0x42A4, iwl9462_2ac_cfg_qu_b0_jf_b0)},
|
||||||
{IWL_PCI_DEVICE(0xA0F0, 0x42A4, iwl9462_2ac_cfg_soc)},
|
|
||||||
{IWL_PCI_DEVICE(0xA370, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA370, 0x0030, iwl9560_2ac_160_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA370, 0x0034, iwl9560_2ac_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA370, 0x0034, iwl9560_2ac_cfg_soc)},
|
||||||
{IWL_PCI_DEVICE(0xA370, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
{IWL_PCI_DEVICE(0xA370, 0x0038, iwl9560_2ac_160_cfg_soc)},
|
||||||
|
@ -3272,11 +3272,17 @@ static struct iwl_trans_dump_data
|
|||||||
ptr = cmdq->write_ptr;
|
ptr = cmdq->write_ptr;
|
||||||
for (i = 0; i < cmdq->n_window; i++) {
|
for (i = 0; i < cmdq->n_window; i++) {
|
||||||
u8 idx = iwl_pcie_get_cmd_index(cmdq, ptr);
|
u8 idx = iwl_pcie_get_cmd_index(cmdq, ptr);
|
||||||
|
u8 tfdidx;
|
||||||
u32 caplen, cmdlen;
|
u32 caplen, cmdlen;
|
||||||
|
|
||||||
|
if (trans->trans_cfg->use_tfh)
|
||||||
|
tfdidx = idx;
|
||||||
|
else
|
||||||
|
tfdidx = ptr;
|
||||||
|
|
||||||
cmdlen = iwl_trans_pcie_get_cmdlen(trans,
|
cmdlen = iwl_trans_pcie_get_cmdlen(trans,
|
||||||
cmdq->tfds +
|
(u8 *)cmdq->tfds +
|
||||||
tfd_size * ptr);
|
tfd_size * tfdidx);
|
||||||
caplen = min_t(u32, TFD_MAX_PAYLOAD_SIZE, cmdlen);
|
caplen = min_t(u32, TFD_MAX_PAYLOAD_SIZE, cmdlen);
|
||||||
|
|
||||||
if (cmdlen) {
|
if (cmdlen) {
|
||||||
@ -3450,6 +3456,15 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
|||||||
spin_lock_init(&trans_pcie->reg_lock);
|
spin_lock_init(&trans_pcie->reg_lock);
|
||||||
mutex_init(&trans_pcie->mutex);
|
mutex_init(&trans_pcie->mutex);
|
||||||
init_waitqueue_head(&trans_pcie->ucode_write_waitq);
|
init_waitqueue_head(&trans_pcie->ucode_write_waitq);
|
||||||
|
|
||||||
|
trans_pcie->rba.alloc_wq = alloc_workqueue("rb_allocator",
|
||||||
|
WQ_HIGHPRI | WQ_UNBOUND, 1);
|
||||||
|
if (!trans_pcie->rba.alloc_wq) {
|
||||||
|
ret = -ENOMEM;
|
||||||
|
goto out_free_trans;
|
||||||
|
}
|
||||||
|
INIT_WORK(&trans_pcie->rba.rx_alloc, iwl_pcie_rx_allocator_work);
|
||||||
|
|
||||||
trans_pcie->tso_hdr_page = alloc_percpu(struct iwl_tso_hdr_page);
|
trans_pcie->tso_hdr_page = alloc_percpu(struct iwl_tso_hdr_page);
|
||||||
if (!trans_pcie->tso_hdr_page) {
|
if (!trans_pcie->tso_hdr_page) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
@ -3584,10 +3599,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
|||||||
trans_pcie->inta_mask = CSR_INI_SET_MASK;
|
trans_pcie->inta_mask = CSR_INI_SET_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
trans_pcie->rba.alloc_wq = alloc_workqueue("rb_allocator",
|
|
||||||
WQ_HIGHPRI | WQ_UNBOUND, 1);
|
|
||||||
INIT_WORK(&trans_pcie->rba.rx_alloc, iwl_pcie_rx_allocator_work);
|
|
||||||
|
|
||||||
#ifdef CONFIG_IWLWIFI_DEBUGFS
|
#ifdef CONFIG_IWLWIFI_DEBUGFS
|
||||||
trans_pcie->fw_mon_data.state = IWL_FW_MON_DBGFS_STATE_CLOSED;
|
trans_pcie->fw_mon_data.state = IWL_FW_MON_DBGFS_STATE_CLOSED;
|
||||||
mutex_init(&trans_pcie->fw_mon_data.mutex);
|
mutex_init(&trans_pcie->fw_mon_data.mutex);
|
||||||
@ -3599,6 +3610,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
|
|||||||
iwl_pcie_free_ict(trans);
|
iwl_pcie_free_ict(trans);
|
||||||
out_no_pci:
|
out_no_pci:
|
||||||
free_percpu(trans_pcie->tso_hdr_page);
|
free_percpu(trans_pcie->tso_hdr_page);
|
||||||
|
destroy_workqueue(trans_pcie->rba.alloc_wq);
|
||||||
|
out_free_trans:
|
||||||
iwl_trans_free(trans);
|
iwl_trans_free(trans);
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user