Commit 99be6166 authored by Luca Coelho's avatar Luca Coelho
Browse files

iwlwifi: pcie: recognize NICs with hw_rev 0x364 correctly



Some devices with PCI ID 0x2723, which is supposed to be 22260, are
actually not.  So we need to differentiate them by checking the hw_rev
and change the cfg accordingly.

Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 8093bb6d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -325,6 +325,7 @@ enum {
#define CSR_HW_REV_TYPE_7265D		(0x0000210)
#define CSR_HW_REV_TYPE_NONE		(0x00001F0)
#define CSR_HW_REV_TYPE_QNJ		(0x0000360)
#define CSR_HW_REV_TYPE_QNJ_B0		(0x0000364)
#define CSR_HW_REV_TYPE_HR_CDB		(0x0000340)

/* RF_ID value */
+4 −1
Original line number Diff line number Diff line
@@ -3569,6 +3569,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
		}
	}

	IWL_DEBUG_INFO(trans, "HW REV: 0x%0x\n", trans->hw_rev);

	/*
	 * 9000-series integrated A-step has a problem with suspend/resume
	 * and sometimes even causes the whole platform to get stuck. This
@@ -3603,7 +3605,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
		}
	} 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) &&
		   trans->cfg != &iwl22260_2ax_cfg) {
		   (trans->cfg != &iwl22260_2ax_cfg ||
		    trans->hw_rev == CSR_HW_REV_TYPE_QNJ_B0)) {
		u32 hw_status;

		hw_status = iwl_read_prph(trans, UMAG_GEN_HW_STATUS);