Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5594d80e authored by Sara Sharon's avatar Sara Sharon Committed by Luca Coelho
Browse files

iwlwifi: support two phys for a000 devices



Support differentiating between two phys for a000 devices
in order to load the correct firmware.
Eventually when moving completely to the new phy we will be
able to remove this.

Signed-off-by: default avatarSara Sharon <sara.sharon@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 0c4881ce
Loading
Loading
Loading
Loading
+23 −7
Original line number Diff line number Diff line
@@ -72,9 +72,13 @@
#define IWL_A000_SMEM_OFFSET		0x400000
#define IWL_A000_SMEM_LEN		0x68000

#define IWL_A000_FW_PRE "iwlwifi-Qu-a0-jf-b0-"
#define IWL_A000_MODULE_FIRMWARE(api) \
	IWL_A000_FW_PRE "-" __stringify(api) ".ucode"
#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_MODULE_FIRMWARE(api) \
	IWL_A000_HR_FW_PRE "-" __stringify(api) ".ucode"
#define IWL_A000_JF_MODULE_FIRMWARE(api) \
	IWL_A000_JF_FW_PRE "-" __stringify(api) ".ucode"

#define NVM_HW_SECTION_NUM_FAMILY_A000		10

@@ -116,11 +120,22 @@ static const struct iwl_ht_params iwl_a000_ht_params = {
	.mq_rx_supported = true,					\
	.vht_mu_mimo_supported = true,					\
	.mac_addr_from_csr = true,					\
	.use_tfh = true
	.use_tfh = true,						\
	.rf_id = true

const struct iwl_cfg iwla000_2ac_cfg_hr = {
		.name = "Intel(R) Dual Band Wireless AC a000",
		.fw_name_pre = IWL_A000_HR_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,
};

const struct iwl_cfg iwla000_2ac_cfg = {
const struct iwl_cfg iwla000_2ac_cfg_jf = {
		.name = "Intel(R) Dual Band Wireless AC a000",
		.fw_name_pre = IWL_A000_FW_PRE,
		.fw_name_pre = IWL_A000_JF_FW_PRE,
		IWL_DEVICE_A000,
		.ht_params = &iwl_a000_ht_params,
		.nvm_ver = IWL_A000_NVM_VERSION,
@@ -128,4 +143,5 @@ const struct iwl_cfg iwla000_2ac_cfg = {
		.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
};

MODULE_FIRMWARE(IWL_A000_MODULE_FIRMWARE(IWL_A000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_A000_HR_MODULE_FIRMWARE(IWL_A000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_A000_JF_MODULE_FIRMWARE(IWL_A000_UCODE_API_MAX));
+2 −1
Original line number Diff line number Diff line
@@ -455,7 +455,8 @@ extern const struct iwl_cfg iwl9260_2ac_cfg;
extern const struct iwl_cfg iwl9270_2ac_cfg;
extern const struct iwl_cfg iwl9460_2ac_cfg;
extern const struct iwl_cfg iwl9560_2ac_cfg;
extern const struct iwl_cfg iwla000_2ac_cfg;
extern const struct iwl_cfg iwla000_2ac_cfg_hr;
extern const struct iwl_cfg iwla000_2ac_cfg_jf;
#endif /* CONFIG_IWLMVM */

#endif /* __IWL_CONFIG_H__ */
+1 −0
Original line number Diff line number Diff line
@@ -349,6 +349,7 @@ enum {
/* RF_ID value */
#define CSR_HW_RF_ID_TYPE_JF		(0x00105000)
#define CSR_HW_RF_ID_TYPE_LC		(0x00101000)
#define CSR_HW_RF_ID_TYPE_HR		(0x00109000)

/* EEPROM REG */
#define CSR_EEPROM_REG_READ_VALID_MSK	(0x00000001)
+7 −1
Original line number Diff line number Diff line
@@ -533,7 +533,7 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
	{IWL_PCI_DEVICE(0xA370, 0x1030, iwl9560_2ac_cfg)},

/* a000 Series */
	{IWL_PCI_DEVICE(0x2720, 0x0A10, iwla000_2ac_cfg)},
	{IWL_PCI_DEVICE(0x2720, 0x0A10, iwla000_2ac_cfg_hr)},
#endif /* CONFIG_IWLMVM */

	{0}
@@ -673,6 +673,12 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
			cfg = &iwl9000lc_2ac_cfg;
			iwl_trans->cfg = cfg;
		}

		if (cfg == &iwla000_2ac_cfg_hr &&
		    iwl_trans->hw_rf_id == CSR_HW_RF_ID_TYPE_JF) {
			cfg = &iwla000_2ac_cfg_jf;
			iwl_trans->cfg = cfg;
		}
	}
#endif