qcacld-3.0: Reset the soc before htc_stop when failure in cds_pre_enable

Reset the soc before htc_stop when failure in the cds_pre_enable to stop
the copy engine which might continue deliver the data to host after
cleaning up the destination ring buffers to avoid the poison overwritten.

Change-Id: I2ef111926af4a889f1ee005681d68eafba7e5564
CRs-Fixed: 2250860
This commit is contained in:
Tiger Yu 2018-06-06 13:54:22 +08:00 committed by nshrivas
parent 0927102d08
commit 9973e36524

View File

@ -740,6 +740,7 @@ QDF_STATUS cds_pre_enable(void)
int errno;
void *scn;
void *soc;
void *hif_ctx;
cds_enter();
@ -814,7 +815,17 @@ QDF_STATUS cds_pre_enable(void)
return QDF_STATUS_SUCCESS;
stop_wmi:
hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
if (!hif_ctx)
cds_err("%s: Failed to get hif_handle!", __func__);
wma_wmi_stop();
if (hif_ctx) {
cds_err("%s: Disable the isr & reset the soc!", __func__);
hif_disable_isr(hif_ctx);
hif_reset_soc(hif_ctx);
}
htc_stop(gp_cds_context->htc_ctx);
exit_with_status: