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

This commit is contained in:
Linux Build Service Account 2016-10-26 13:13:21 -07:00 committed by Gerrit - the friendly Code Review server
commit 604c0ceedb

View file

@ -1318,7 +1318,7 @@ static int icnss_hw_reset_rf_reset_cmd(struct icnss_priv *priv)
if (ret) { if (ret) {
icnss_pr_err("RESET: RF reset command failed, state: 0x%lx\n", icnss_pr_err("RESET: RF reset command failed, state: 0x%lx\n",
priv->state); priv->state);
icnss_hw_wsi_cmd_error_recovery(priv); return ret;
} }
icnss_hw_write_reg_field(priv->mem_base_va, PMM_WSI_CMD_OFFSET, 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) { if (ret) {
icnss_pr_err("RESET: XO disable command failed, state: 0x%lx\n", icnss_pr_err("RESET: XO disable command failed, state: 0x%lx\n",
priv->state); priv->state);
icnss_hw_wsi_cmd_error_recovery(priv); return ret;
} }
icnss_hw_write_reg_field(priv->mem_base_va, PMM_WSI_CMD_OFFSET, 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 rdata;
u32 rdata1; u32 rdata1;
int i; int i;
int ret = 0;
if (test_bit(HW_ONLY_TOP_LEVEL_RESET, &quirks)) if (test_bit(HW_ONLY_TOP_LEVEL_RESET, &quirks))
goto top_level_reset; 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_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_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, icnss_hw_write_reg_field(priv->mpm_config_va, MPM_WCSSAON_CONFIG_OFFSET,
MPM_WCSSAON_CONFIG_FORCE_ACTIVE, 0); MPM_WCSSAON_CONFIG_FORCE_ACTIVE, 0);