wifi: iwlwifi: fix STEP_URM register address for SC devices

The CNVI_PMU_STEP_FLOW register address differs between device families.
For SC and newer devices, the register is at 0xA2D688,
while for BZ devices it's at 0xA2D588.

Signed-off-by: Moriya Itzchaki <moriya.itzchaki@intel.com>
Link: https://patch.msgid.link/20260527230313.f0c115c4f74e.I3c66b2e39a97f754e853ac7e7dba8e433523619e@changeid
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
This commit is contained in:
Moriya Itzchaki 2026-05-27 23:05:02 +03:00 committed by Miri Korenblit
parent be443355da
commit f60f215921
2 changed files with 10 additions and 5 deletions

View File

@ -385,7 +385,8 @@ enum {
#define CNVI_SCU_REG_FOR_ECO_1_WIAMT_KNOWN BIT(4)
#define CNVI_SCU_REG_FOR_ECO_1_WIAMT_PRESENT BIT(5)
#define CNVI_PMU_STEP_FLOW 0xA2D588
#define CNVI_PMU_STEP_FLOW_BZ 0xA2D588
#define CNVI_PMU_STEP_FLOW_SC 0xA2D688
#define CNVI_PMU_STEP_FLOW_FORCE_URM BIT(2)
#define PREG_AUX_BUS_WPROT_0 0xA04CC0

View File

@ -376,6 +376,7 @@ static void iwl_pcie_get_rf_name(struct iwl_trans *trans)
void iwl_trans_pcie_gen2_fw_alive(struct iwl_trans *trans)
{
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
u32 step_reg;
iwl_pcie_reset_ict(trans);
@ -404,10 +405,13 @@ void iwl_trans_pcie_gen2_fw_alive(struct iwl_trans *trans)
iwl_pcie_get_rf_name(trans);
mutex_unlock(&trans_pcie->mutex);
if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_BZ)
trans->step_urm = !!(iwl_read_prph(trans,
CNVI_PMU_STEP_FLOW) &
CNVI_PMU_STEP_FLOW_FORCE_URM);
if (trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_BZ)
return;
step_reg = trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_SC ?
CNVI_PMU_STEP_FLOW_SC : CNVI_PMU_STEP_FLOW_BZ;
trans->step_urm = !!(iwl_read_prph(trans, step_reg) &
CNVI_PMU_STEP_FLOW_FORCE_URM);
}
static bool iwl_pcie_set_ltr(struct iwl_trans *trans)