Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 604c0cee authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "icnss: Do top level reset when timeout to pull register state"

parents 5b7da258 0b2474a9
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1318,7 +1318,7 @@ static int icnss_hw_reset_rf_reset_cmd(struct icnss_priv *priv)
	if (ret) {
		icnss_pr_err("RESET: RF reset command failed, state: 0x%lx\n",
			     priv->state);
		icnss_hw_wsi_cmd_error_recovery(priv);
		return ret;
	}

	icnss_hw_write_reg_field(priv->mem_base_va, PMM_WSI_CMD_OFFSET,
@@ -1389,7 +1389,7 @@ static int icnss_hw_reset_xo_disable_cmd(struct icnss_priv *priv)
	if (ret) {
		icnss_pr_err("RESET: XO disable command failed, state: 0x%lx\n",
			     priv->state);
		icnss_hw_wsi_cmd_error_recovery(priv);
		return ret;
	}

	icnss_hw_write_reg_field(priv->mem_base_va, PMM_WSI_CMD_OFFSET,
@@ -1406,6 +1406,7 @@ static int icnss_hw_reset(struct icnss_priv *priv)
	u32 rdata;
	u32 rdata1;
	int i;
	int ret = 0;

	if (test_bit(HW_ONLY_TOP_LEVEL_RESET, &quirks))
		goto top_level_reset;
@@ -1457,11 +1458,15 @@ static int icnss_hw_reset(struct icnss_priv *priv)

	icnss_hw_reset_wlan_rfactrl_power_down(priv);

	icnss_hw_reset_rf_reset_cmd(priv);
	ret = icnss_hw_reset_rf_reset_cmd(priv);
	if (ret)
		goto top_level_reset;

	icnss_hw_reset_switch_to_cxo(priv);

	icnss_hw_reset_xo_disable_cmd(priv);
	ret = icnss_hw_reset_xo_disable_cmd(priv);
	if (ret)
		goto top_level_reset;

	icnss_hw_write_reg_field(priv->mpm_config_va, MPM_WCSSAON_CONFIG_OFFSET,
				 MPM_WCSSAON_CONFIG_FORCE_ACTIVE, 0);