iwlwifi: support a000 CDB product
Identify and load FW for a000 CDB product. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
fa1f2b617a
commit
386f49361a
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* GPL LICENSE SUMMARY
|
* GPL LICENSE SUMMARY
|
||||||
*
|
*
|
||||||
* Copyright(c) 2015-2016 Intel Deutschland GmbH
|
* Copyright(c) 2015-2017 Intel Deutschland GmbH
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of version 2 of the GNU General Public License as
|
* it under the terms of version 2 of the GNU General Public License as
|
||||||
@ -18,7 +18,7 @@
|
|||||||
*
|
*
|
||||||
* BSD LICENSE
|
* BSD LICENSE
|
||||||
*
|
*
|
||||||
* Copyright(c) 2015-2016 Intel Deutschland GmbH
|
* Copyright(c) 2015-2017 Intel Deutschland GmbH
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -74,6 +74,7 @@
|
|||||||
|
|
||||||
#define IWL_A000_JF_FW_PRE "iwlwifi-Qu-a0-jf-b0-"
|
#define IWL_A000_JF_FW_PRE "iwlwifi-Qu-a0-jf-b0-"
|
||||||
#define IWL_A000_HR_FW_PRE "iwlwifi-Qu-a0-hr-a0-"
|
#define IWL_A000_HR_FW_PRE "iwlwifi-Qu-a0-hr-a0-"
|
||||||
|
#define IWL_A000_HR_CDB_FW_PRE "iwlwifi-QuIcp-a0-hrcdb-a0-"
|
||||||
|
|
||||||
#define IWL_A000_HR_MODULE_FIRMWARE(api) \
|
#define IWL_A000_HR_MODULE_FIRMWARE(api) \
|
||||||
IWL_A000_HR_FW_PRE "-" __stringify(api) ".ucode"
|
IWL_A000_HR_FW_PRE "-" __stringify(api) ".ucode"
|
||||||
@ -134,6 +135,17 @@ const struct iwl_cfg iwla000_2ac_cfg_hr = {
|
|||||||
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
|
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct iwl_cfg iwla000_2ac_cfg_hr_cdb = {
|
||||||
|
.name = "Intel(R) Dual Band Wireless AC a000",
|
||||||
|
.fw_name_pre = IWL_A000_HR_CDB_FW_PRE,
|
||||||
|
IWL_DEVICE_A000,
|
||||||
|
.ht_params = &iwl_a000_ht_params,
|
||||||
|
.nvm_ver = IWL_A000_NVM_VERSION,
|
||||||
|
.nvm_calib_ver = IWL_A000_TX_POWER_VERSION,
|
||||||
|
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
|
||||||
|
.cdb = true,
|
||||||
|
};
|
||||||
|
|
||||||
const struct iwl_cfg iwla000_2ac_cfg_jf = {
|
const struct iwl_cfg iwla000_2ac_cfg_jf = {
|
||||||
.name = "Intel(R) Dual Band Wireless AC a000",
|
.name = "Intel(R) Dual Band Wireless AC a000",
|
||||||
.fw_name_pre = IWL_A000_JF_FW_PRE,
|
.fw_name_pre = IWL_A000_JF_FW_PRE,
|
||||||
|
@ -314,6 +314,7 @@ struct iwl_pwr_tx_backoff {
|
|||||||
* @rf_id: need to read rf_id to determine the firmware image
|
* @rf_id: need to read rf_id to determine the firmware image
|
||||||
* @integrated: discrete or integrated
|
* @integrated: discrete or integrated
|
||||||
* @gen2: a000 and on transport operation
|
* @gen2: a000 and on transport operation
|
||||||
|
* @cdb: CDB support
|
||||||
*
|
*
|
||||||
* We enable the driver to be backward compatible wrt. hardware features.
|
* We enable the driver to be backward compatible wrt. hardware features.
|
||||||
* API differences in uCode shouldn't be handled here but through TLVs
|
* API differences in uCode shouldn't be handled here but through TLVs
|
||||||
@ -360,7 +361,8 @@ struct iwl_cfg {
|
|||||||
rf_id:1,
|
rf_id:1,
|
||||||
integrated:1,
|
integrated:1,
|
||||||
use_tfh:1,
|
use_tfh:1,
|
||||||
gen2:1;
|
gen2:1,
|
||||||
|
cdb:1;
|
||||||
u8 valid_tx_ant;
|
u8 valid_tx_ant;
|
||||||
u8 valid_rx_ant;
|
u8 valid_rx_ant;
|
||||||
u8 non_shared_ant;
|
u8 non_shared_ant;
|
||||||
@ -450,6 +452,7 @@ 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 iwla000_2ac_cfg_hr;
|
extern const struct iwl_cfg iwla000_2ac_cfg_hr;
|
||||||
|
extern const struct iwl_cfg iwla000_2ac_cfg_hr_cdb;
|
||||||
extern const struct iwl_cfg iwla000_2ac_cfg_jf;
|
extern const struct iwl_cfg iwla000_2ac_cfg_jf;
|
||||||
#endif /* CONFIG_IWLMVM */
|
#endif /* CONFIG_IWLMVM */
|
||||||
|
|
||||||
|
@ -537,7 +537,8 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
|
|||||||
{IWL_PCI_DEVICE(0xA370, 0x1030, iwl9560_2ac_cfg)},
|
{IWL_PCI_DEVICE(0xA370, 0x1030, iwl9560_2ac_cfg)},
|
||||||
|
|
||||||
/* a000 Series */
|
/* a000 Series */
|
||||||
{IWL_PCI_DEVICE(0x2720, 0x0A10, iwla000_2ac_cfg_hr)},
|
{IWL_PCI_DEVICE(0x2720, 0x0A10, iwla000_2ac_cfg_hr_cdb)},
|
||||||
|
{IWL_PCI_DEVICE(0x2722, 0x0A10, iwla000_2ac_cfg_hr)},
|
||||||
#endif /* CONFIG_IWLMVM */
|
#endif /* CONFIG_IWLMVM */
|
||||||
|
|
||||||
{0}
|
{0}
|
||||||
@ -672,8 +673,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (iwl_trans->cfg->rf_id &&
|
if (iwl_trans->cfg->rf_id &&
|
||||||
(cfg == &iwla000_2ac_cfg_hr &&
|
(cfg == &iwla000_2ac_cfg_hr || cfg == &iwla000_2ac_cfg_hr_cdb) &&
|
||||||
iwl_trans->hw_rf_id == CSR_HW_RF_ID_TYPE_JF)) {
|
iwl_trans->hw_rf_id == CSR_HW_RF_ID_TYPE_JF) {
|
||||||
cfg = &iwla000_2ac_cfg_jf;
|
cfg = &iwla000_2ac_cfg_jf;
|
||||||
iwl_trans->cfg = cfg;
|
iwl_trans->cfg = cfg;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user