* add new device IDs for 8265
* fix a NULL pointer dereference when paging firmware asserts * remove a WARNING on gscan capabilities * fix MODULE_FIRMWARE for 8260 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJXDLeYAAoJEC0Llv5uNjIBRy4P/ixh8Qi3RzQdz/AQzjT8B5yA m5u/04kOPwjkvbkQaAI2AsYxw9eG4WdEMpb9f+IZPNWzP4HPBpX46LPsWsyssNvF OBrzExEB/opNNuQVqC+mHW1I+onWf4xyNVoeOKQQ9/Bn90FsuZ6F3dm0LhPC6Akx KOy1YJFZ5gx+p/HDRxEVrs4/245LfUvTrz1XuOMNpqW5qrhnIYdYtdPcX3Wv/kw2 LiYRDCVUBzUSFqfynlESwnQRCap5XsTVIh48uOqBhmtEGiE+wLS6vx/gj+4ZZY+e 2vhShuGWIvzX+0bnpEpz6tTOL78nCJpwA0/kObI1iFtbdNJLXgO0c+D+79qszk5u DBa9l3sZeCMAhSZkndYhpHRIenkKWwp+Q0mbjApxZe2zbFRhxKv4DIjckWs4u2Z6 SjQz3Zq43ARCoDPXDXtSf2CQB3dW7MCFjpdWC0H4IJlPGTA89oROWLd4fnjM9ahE ZrwbUMBDJLmxFFw2w7ypdDn/RA3vZ0IPFAVVh++/r1lqCWWELgOvKyfXgHsbTENR okBKoRBUeaWtEmzTmUEfc3I/GWcrqyTs5twURaX33NZlpZCA7wW5Lbv0p+FxCIGh GAk/k6dVLOIypFRffNQWvZFg2oTkXJoM+1uAdfyuOSsvgEXfxJ3qyOZ7sCsmX6y0 YGbAfIW5kzKW1wgjnbf6 =cxrI -----END PGP SIGNATURE----- Merge tag 'iwlwifi-for-kalle-2016-04-12_2' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes * add new device IDs for 8265 * fix a NULL pointer dereference when paging firmware asserts * remove a WARNING on gscan capabilities * fix MODULE_FIRMWARE for 8260
This commit is contained in:
commit
e2841ea916
|
@ -93,7 +93,7 @@
|
|||
#define IWL8260_SMEM_OFFSET 0x400000
|
||||
#define IWL8260_SMEM_LEN 0x68000
|
||||
|
||||
#define IWL8000_FW_PRE "iwlwifi-8000"
|
||||
#define IWL8000_FW_PRE "iwlwifi-8000C-"
|
||||
#define IWL8000_MODULE_FIRMWARE(api) \
|
||||
IWL8000_FW_PRE "-" __stringify(api) ".ucode"
|
||||
|
||||
|
|
|
@ -238,19 +238,6 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first)
|
|||
snprintf(drv->firmware_name, sizeof(drv->firmware_name), "%s%s.ucode",
|
||||
name_pre, tag);
|
||||
|
||||
/*
|
||||
* Starting 8000B - FW name format has changed. This overwrites the
|
||||
* previous name and uses the new format.
|
||||
*/
|
||||
if (drv->trans->cfg->device_family == IWL_DEVICE_FAMILY_8000) {
|
||||
char rev_step = 'A' + CSR_HW_REV_STEP(drv->trans->hw_rev);
|
||||
|
||||
if (rev_step != 'A')
|
||||
snprintf(drv->firmware_name,
|
||||
sizeof(drv->firmware_name), "%s%c-%s.ucode",
|
||||
name_pre, rev_step, tag);
|
||||
}
|
||||
|
||||
IWL_DEBUG_INFO(drv, "attempting to load firmware %s'%s'\n",
|
||||
(drv->fw_index == UCODE_EXPERIMENTAL_INDEX)
|
||||
? "EXPERIMENTAL " : "",
|
||||
|
@ -1060,11 +1047,18 @@ static int iwl_parse_tlv_firmware(struct iwl_drv *drv,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (WARN(fw_has_capa(capa, IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT) &&
|
||||
!gscan_capa,
|
||||
"GSCAN is supported but capabilities TLV is unavailable\n"))
|
||||
/*
|
||||
* If ucode advertises that it supports GSCAN but GSCAN
|
||||
* capabilities TLV is not present, or if it has an old format,
|
||||
* warn and continue without GSCAN.
|
||||
*/
|
||||
if (fw_has_capa(capa, IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT) &&
|
||||
!gscan_capa) {
|
||||
IWL_DEBUG_INFO(drv,
|
||||
"GSCAN is supported but capabilities TLV is unavailable\n");
|
||||
__clear_bit((__force long)IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT,
|
||||
capa->_capa);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -526,7 +526,8 @@ void iwl_mvm_fw_error_dump(struct iwl_mvm *mvm)
|
|||
file_len += sizeof(*dump_data) + sizeof(*dump_mem) + sram2_len;
|
||||
|
||||
/* Make room for fw's virtual image pages, if it exists */
|
||||
if (mvm->fw->img[mvm->cur_ucode].paging_mem_size)
|
||||
if (mvm->fw->img[mvm->cur_ucode].paging_mem_size &&
|
||||
mvm->fw_paging_db[0].fw_paging_block)
|
||||
file_len += mvm->num_of_paging_blk *
|
||||
(sizeof(*dump_data) +
|
||||
sizeof(struct iwl_fw_error_dump_paging) +
|
||||
|
@ -643,7 +644,8 @@ void iwl_mvm_fw_error_dump(struct iwl_mvm *mvm)
|
|||
}
|
||||
|
||||
/* Dump fw's virtual image */
|
||||
if (mvm->fw->img[mvm->cur_ucode].paging_mem_size) {
|
||||
if (mvm->fw->img[mvm->cur_ucode].paging_mem_size &&
|
||||
mvm->fw_paging_db[0].fw_paging_block) {
|
||||
for (i = 1; i < mvm->num_of_paging_blk + 1; i++) {
|
||||
struct iwl_fw_error_dump_paging *paging;
|
||||
struct page *pages =
|
||||
|
|
|
@ -144,9 +144,11 @@ void iwl_free_fw_paging(struct iwl_mvm *mvm)
|
|||
|
||||
__free_pages(mvm->fw_paging_db[i].fw_paging_block,
|
||||
get_order(mvm->fw_paging_db[i].fw_paging_size));
|
||||
mvm->fw_paging_db[i].fw_paging_block = NULL;
|
||||
}
|
||||
kfree(mvm->trans->paging_download_buf);
|
||||
mvm->trans->paging_download_buf = NULL;
|
||||
mvm->trans->paging_db = NULL;
|
||||
|
||||
memset(mvm->fw_paging_db, 0, sizeof(mvm->fw_paging_db));
|
||||
}
|
||||
|
|
|
@ -479,8 +479,18 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
|||
{IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8260_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8265_2ac_cfg)},
|
||||
{IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8265_2ac_cfg)},
|
||||
|
||||
/* 9000 Series */
|
||||
{IWL_PCI_DEVICE(0x9DF0, 0x2A10, iwl5165_2ac_cfg)},
|
||||
|
|
Loading…
Reference in New Issue