wifi: iwlwifi: add support for BZ_W
BZ_W is another member of the BZ family. Just like BZ_U, we also need to override the STEP. While at it, add a few missing CNVi Chip ID values. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://msgid.link/20240320232419.40c315d51b22.I6b2b2083f8d5b4ec4119aa5b51c21b8428d96060@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
6795a37161
commit
73c184e1fe
@@ -422,6 +422,7 @@ struct iwl_cfg {
|
||||
#define IWL_CFG_MAC_TYPE_SC 0x48
|
||||
#define IWL_CFG_MAC_TYPE_SC2 0x49
|
||||
#define IWL_CFG_MAC_TYPE_SC2F 0x4A
|
||||
#define IWL_CFG_MAC_TYPE_BZ_W 0x4B
|
||||
|
||||
#define IWL_CFG_RF_TYPE_TH 0x105
|
||||
#define IWL_CFG_RF_TYPE_TH1 0x108
|
||||
|
||||
@@ -371,7 +371,10 @@ enum {
|
||||
#define CNVI_AUX_MISC_CHIP 0xA200B0
|
||||
#define CNVI_AUX_MISC_CHIP_MAC_STEP(_val) (((_val) & 0xf000000) >> 24)
|
||||
#define CNVI_AUX_MISC_CHIP_PROD_TYPE(_val) ((_val) & 0xfff)
|
||||
#define CNVI_AUX_MISC_CHIP_PROD_TYPE_GL 0x910
|
||||
#define CNVI_AUX_MISC_CHIP_PROD_TYPE_BZ_U 0x930
|
||||
#define CNVI_AUX_MISC_CHIP_PROD_TYPE_BZ_I 0x900
|
||||
#define CNVI_AUX_MISC_CHIP_PROD_TYPE_BZ_W 0x901
|
||||
|
||||
#define CNVR_AUX_MISC_CHIP 0xA2B800
|
||||
#define CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM 0xA29890
|
||||
|
||||
@@ -1004,6 +1004,12 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = {
|
||||
IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY,
|
||||
iwl_cfg_bz, iwl_fm_name),
|
||||
|
||||
_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
|
||||
IWL_CFG_MAC_TYPE_BZ_W, IWL_CFG_ANY,
|
||||
IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY,
|
||||
IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY,
|
||||
iwl_cfg_bz, iwl_fm_name),
|
||||
|
||||
/* Ga (Gl) */
|
||||
_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
|
||||
IWL_CFG_MAC_TYPE_GL, IWL_CFG_ANY,
|
||||
@@ -1128,6 +1134,7 @@ static void get_crf_id(struct iwl_trans *iwl_trans)
|
||||
{
|
||||
u32 sd_reg_ver_addr;
|
||||
u32 val = 0;
|
||||
u8 step;
|
||||
|
||||
if (iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
|
||||
sd_reg_ver_addr = SD_REG_VER_GEN2;
|
||||
@@ -1146,16 +1153,23 @@ static void get_crf_id(struct iwl_trans *iwl_trans)
|
||||
iwl_trans->hw_cnv_id =
|
||||
iwl_read_prph_no_grab(iwl_trans, CNVI_AUX_MISC_CHIP);
|
||||
|
||||
/* For BZ-W, take B step also when A step is indicated */
|
||||
if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ_W)
|
||||
step = SILICON_B_STEP;
|
||||
|
||||
/* In BZ, the MAC step must be read from the CNVI aux register */
|
||||
if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ) {
|
||||
u8 step = CNVI_AUX_MISC_CHIP_MAC_STEP(iwl_trans->hw_cnv_id);
|
||||
step = CNVI_AUX_MISC_CHIP_MAC_STEP(iwl_trans->hw_cnv_id);
|
||||
|
||||
/* For BZ-U, take B step also when A step is indicated */
|
||||
if ((CNVI_AUX_MISC_CHIP_PROD_TYPE(iwl_trans->hw_cnv_id) ==
|
||||
CNVI_AUX_MISC_CHIP_PROD_TYPE_BZ_U) &&
|
||||
step == SILICON_A_STEP)
|
||||
step = SILICON_B_STEP;
|
||||
}
|
||||
|
||||
if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ ||
|
||||
CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ_W) {
|
||||
iwl_trans->hw_rev_step = step;
|
||||
iwl_trans->hw_rev |= step;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user