cnss2: Ignore ramdump init failure

Ramdump feature is not supported in GKI build. Ignore this feature
init failure.

CRs-fixed: 2648907
Change-Id: I1d2116159700be3ea0cab4290902ce8f3daf6f05
Signed-off-by: Manikandan Mohan <manikand@codeaurora.org>
This commit is contained in:
Manikandan Mohan 2020-03-24 17:02:55 -07:00
commit 52aaef0622
2 changed files with 34 additions and 2 deletions

View file

@ -1710,6 +1710,27 @@ static void cnss_unregister_ramdump_v1(struct cnss_plat_data *plat_priv)
ramdump_info->ramdump_pa);
}
/**
* cnss_ignore_dump_data_reg_fail - Ignore Ramdump table register failure
* @ret: Error returned by msm_dump_data_register_nominidump
*
* For Lahaina GKI boot, we dont have support for mem dump feature. So
* ignore failure.
*
* Return: Same given error code if mem dump feature enabled, 0 otherwise
*/
#ifdef CONFIG_QCOM_MEMORY_DUMP_V2
static int cnss_ignore_dump_data_reg_fail(int ret)
{
return ret;
}
#else
static int cnss_ignore_dump_data_reg_fail(int ret)
{
return 0;
}
#endif
static int cnss_register_ramdump_v2(struct cnss_plat_data *plat_priv)
{
int ret = 0;
@ -1746,7 +1767,9 @@ static int cnss_register_ramdump_v2(struct cnss_plat_data *plat_priv)
ret = msm_dump_data_register_nominidump(MSM_DUMP_TABLE_APPS,
&dump_entry);
if (ret) {
cnss_pr_err("Failed to setup dump table, err = %d\n", ret);
ret = cnss_ignore_dump_data_reg_fail(ret);
cnss_pr_err("Failed to setup dump table, %s (%d)\n",
ret ? "Error" : "Ignoring", ret);
goto free_ramdump;
}

View file

@ -1894,7 +1894,7 @@ static int cnss_qca6290_ramdump(struct cnss_pci_data *pci_priv)
struct cnss_dump_meta_info meta_info = {0};
int i, ret = 0;
if (!info_v2->dump_data_valid ||
if (!info_v2->dump_data_valid || !dump_seg ||
dump_data->nentries == 0)
return 0;
@ -3818,6 +3818,11 @@ void cnss_pci_collect_dump_info(struct cnss_pci_data *pci_priv, bool in_panic)
rddm_image = pci_priv->mhi_ctrl->rddm_image;
dump_data->nentries = 0;
if (!dump_seg) {
cnss_pr_warn("FW image dump collection not setup");
goto skip_dump;
}
cnss_pr_dbg("Collect FW image dump segment, nentries %d\n",
fw_image->entries);
@ -3863,6 +3868,7 @@ void cnss_pci_collect_dump_info(struct cnss_pci_data *pci_priv, bool in_panic)
if (dump_data->nentries > 0)
plat_priv->ramdump_info_v2.dump_data_valid = true;
skip_dump:
cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_RDDM_DONE);
complete(&plat_priv->rddm_complete);
}
@ -3876,6 +3882,9 @@ void cnss_pci_clear_dump_info(struct cnss_pci_data *pci_priv)
struct cnss_fw_mem *fw_mem = plat_priv->fw_mem;
int i, j;
if (!dump_seg)
return;
fw_image = pci_priv->mhi_ctrl->fbc_image;
rddm_image = pci_priv->mhi_ctrl->rddm_image;