Commit 8093bb6d authored by Luca Coelho's avatar Luca Coelho
Browse files

iwlwifi: add PCI IDs for the 22260 device series



Add new structs and PCI IDs for 22260 devices.

Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 866a6a85
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@
#define IWL_22000_HR_A0_FW_PRE		"iwlwifi-QuQnj-a0-hr-a0-"
#define IWL_22000_SU_Z0_FW_PRE		"iwlwifi-su-z0-"
#define IWL_QU_B_JF_B_FW_PRE		"iwlwifi-Qu-b0-jf-b0-"
#define IWL_CC_A_FW_PRE			"iwlwifi-cc-a0-"

#define IWL_22000_HR_MODULE_FIRMWARE(api) \
	IWL_22000_HR_FW_PRE __stringify(api) ".ucode"
@@ -104,6 +105,8 @@
	IWL_22000_SU_Z0_FW_PRE __stringify(api) ".ucode"
#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
	IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
#define IWL_CC_A_MODULE_FIRMWARE(api) \
	IWL_CC_A_FW_PRE __stringify(api) ".ucode"

static const struct iwl_base_params iwl_22000_base_params = {
	.eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
@@ -207,6 +210,42 @@ const struct iwl_cfg iwl22000_2ax_cfg_hr = {
	.max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
};

const struct iwl_cfg iwl22260_2ax_cfg = {
	.name = "Intel(R) Wireless-AX 22260",
	.fw_name_pre = IWL_CC_A_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 killer1650x_2ax_cfg = {
	.name = "Killer(R) Wireless-AX 1650x Wireless Network Adapter (22260NGW)",
	.fw_name_pre = IWL_CC_A_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 killer1650w_2ax_cfg = {
	.name = "Killer(R) Wireless-AX 1650w Wireless Network Adapter (22260D2W)",
	.fw_name_pre = IWL_CC_A_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,
};

/*
 * All JF radio modules are part of the 9000 series, but the MAC part
 * looks more like 22000.  That's why this device is here, but called
@@ -324,3 +363,4 @@ MODULE_FIRMWARE(IWL_22000_JF_B0_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_SU_Z0_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+3 −0
Original line number Diff line number Diff line
@@ -571,6 +571,9 @@ extern const struct iwl_cfg iwl22000_2ac_cfg_hr;
extern const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb;
extern const struct iwl_cfg iwl22000_2ac_cfg_jf;
extern const struct iwl_cfg iwl22000_2ax_cfg_hr;
extern const struct iwl_cfg iwl22260_2ax_cfg;
extern const struct iwl_cfg killer1650x_2ax_cfg;
extern const struct iwl_cfg killer1650w_2ax_cfg;
extern const struct iwl_cfg iwl9461_2ac_cfg_qu_b0_jf_b0;
extern const struct iwl_cfg iwl9462_2ac_cfg_qu_b0_jf_b0;
extern const struct iwl_cfg iwl9560_2ac_cfg_qu_b0_jf_b0;
+10 −0
Original line number Diff line number Diff line
@@ -898,6 +898,16 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
	{IWL_PCI_DEVICE(0xA0F0, 0x00B0, iwl22000_2ax_cfg_hr)},
	{IWL_PCI_DEVICE(0xA0F0, 0x0A10, iwl22000_2ax_cfg_hr)},

	{IWL_PCI_DEVICE(0x2723, 0x0080, iwl22260_2ax_cfg)},
	{IWL_PCI_DEVICE(0x2723, 0x0084, iwl22260_2ax_cfg)},
	{IWL_PCI_DEVICE(0x2723, 0x0088, iwl22260_2ax_cfg)},
	{IWL_PCI_DEVICE(0x2723, 0x008C, iwl22260_2ax_cfg)},
	{IWL_PCI_DEVICE(0x2723, 0x4080, iwl22260_2ax_cfg)},
	{IWL_PCI_DEVICE(0x2723, 0x4088, iwl22260_2ax_cfg)},

	{IWL_PCI_DEVICE(0x1a56, 0x1653, killer1650w_2ax_cfg)},
	{IWL_PCI_DEVICE(0x1a56, 0x1654, killer1650x_2ax_cfg)},

#endif /* CONFIG_IWLMVM */

	{0}
+2 −1
Original line number Diff line number Diff line
@@ -3602,7 +3602,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
			goto out_no_pci;
		}
	} 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 != &iwl22260_2ax_cfg) {
		u32 hw_status;

		hw_status = iwl_read_prph(trans, UMAG_GEN_HW_STATUS);