Message ID | 20190322124744.17924-4-luca@coelho.fi (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Luca Coelho |
Headers | show |
Series | iwlwifi: fixes intended for 5.1 2019-03-22 | expand |
Luca Coelho <luca@coelho.fi> writes: > --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h > @@ -549,6 +549,7 @@ 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 iwl_ax101_cfg_qu_hr; > +extern const struct iwl_cfg iwl_ax101_cfg_quz_hr; > extern const struct iwl_cfg iwl22000_2ax_cfg_hr; > extern const struct iwl_cfg iwl_ax200_cfg_cc; > extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0; > diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h > index aea6d03e545a..e539bc94eff7 100644 > --- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h > @@ -327,6 +327,7 @@ enum { > #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_QUZ (0x0000354) > #define CSR_HW_REV_TYPE_HR_CDB (0x0000340) > #define CSR_HW_REV_TYPE_SO (0x0000370) > #define CSR_HW_REV_TYPE_TY (0x0000420) > diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c > index 1d6f3053f233..79c1dc05f948 100644 > --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c > +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c > @@ -3543,6 +3543,10 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, > } > } else if (cfg == &iwl_ax101_cfg_qu_hr) { > 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->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) { > + trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0; > + } 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 = &iwl_ax101_cfg_qu_hr; > } else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) == Did you intend to use CSR_HW_REV_TYPE_QUZ and iwl_cfg iwl_ax101_cfg_quz_hr here, or am I misunderstanding something? Must admit that I didn't actually read the code. Just happend to look at this patch briefly while glancing through linux-wireless... Sorry if I'just adding noise. Bjørn
On Mon, 2019-05-20 at 10:42 +0200, Bjørn Mork wrote: > Luca Coelho <luca@coelho.fi> writes: > > > --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h > > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h > > @@ -549,6 +549,7 @@ 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 iwl_ax101_cfg_qu_hr; > > +extern const struct iwl_cfg iwl_ax101_cfg_quz_hr; > > extern const struct iwl_cfg iwl22000_2ax_cfg_hr; > > extern const struct iwl_cfg iwl_ax200_cfg_cc; > > extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0; > > diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h > > index aea6d03e545a..e539bc94eff7 100644 > > --- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h > > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h > > @@ -327,6 +327,7 @@ enum { > > #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_QUZ (0x0000354) > > #define CSR_HW_REV_TYPE_HR_CDB (0x0000340) > > #define CSR_HW_REV_TYPE_SO (0x0000370) > > #define CSR_HW_REV_TYPE_TY (0x0000420) > > diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c > > index 1d6f3053f233..79c1dc05f948 100644 > > --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c > > +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c > > @@ -3543,6 +3543,10 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, > > } > > } else if (cfg == &iwl_ax101_cfg_qu_hr) { > > 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->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) { > > + trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0; > > + } 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 = &iwl_ax101_cfg_qu_hr; > > } else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) == > > Did you intend to use CSR_HW_REV_TYPE_QUZ and iwl_cfg > iwl_ax101_cfg_quz_hr here, or am I misunderstanding something? > > Must admit that I didn't actually read the code. Just happend to look > at this patch briefly while glancing through linux-wireless... Sorry if > I'just adding noise. Sorry for the late reply! But yes, you are right, this was a merge damage. I'll send a patch fixing it. Thanks a lot for the attentive eyes! -- Cheers, Luca.
diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c index d5c29298ae3e..eb6defb6d0cd 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c @@ -82,6 +82,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_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0-" #define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-" #define IWL_CC_A_FW_PRE "iwlwifi-cc-a0-" #define IWL_22000_SO_A_JF_B_FW_PRE "iwlwifi-so-a0-jf-b0-" @@ -105,8 +106,8 @@ IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode" #define IWL_22000_SU_Z0_MODULE_FIRMWARE(api) \ 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_QUZ_A_HR_B_MODULE_FIRMWARE(api) \ + IWL_QUZ_A_HR_B_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_QNJ_B_JF_B_MODULE_FIRMWARE(api) \ @@ -235,6 +236,18 @@ const struct iwl_cfg iwl_ax101_cfg_qu_hr = { .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, }; +const struct iwl_cfg iwl_ax101_cfg_quz_hr = { + .name = "Intel(R) Wi-Fi 6 AX101", + .fw_name_pre = IWL_QUZ_A_HR_B_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 iwl_ax200_cfg_cc = { .name = "Intel(R) Wi-Fi 6 AX200 160MHz", .fw_name_pre = IWL_CC_A_FW_PRE, @@ -444,6 +457,7 @@ MODULE_FIRMWARE(IWL_22000_HR_B_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_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_QNJ_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index c91b537fa7ff..93070848280a 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -549,6 +549,7 @@ 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 iwl_ax101_cfg_qu_hr; +extern const struct iwl_cfg iwl_ax101_cfg_quz_hr; extern const struct iwl_cfg iwl22000_2ax_cfg_hr; extern const struct iwl_cfg iwl_ax200_cfg_cc; extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0; diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h index aea6d03e545a..e539bc94eff7 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h @@ -327,6 +327,7 @@ enum { #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_QUZ (0x0000354) #define CSR_HW_REV_TYPE_HR_CDB (0x0000340) #define CSR_HW_REV_TYPE_SO (0x0000370) #define CSR_HW_REV_TYPE_TY (0x0000420) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index 1d6f3053f233..79c1dc05f948 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -3543,6 +3543,10 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, } } else if (cfg == &iwl_ax101_cfg_qu_hr) { 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->hw_rev == CSR_HW_REV_TYPE_QNJ_B0) { + trans->cfg = &iwl22000_2ax_cfg_qnj_hr_b0; + } 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 = &iwl_ax101_cfg_qu_hr; } else if (CSR_HW_RF_ID_TYPE_CHIP_ID(trans->hw_rf_id) ==